História
Como Paciente da plataforma Psycs
Quero contratar consultas recorrentes com um profissional no checkout, escolhendo dias fixos da semana com os mesmos horários
Para manter uma rotina de atendimento contínua com praticidade e previsibilidade de pagamento
Critérios de Aceitação
CA01 - Checkout com opção de recorrência
- Dado que o paciente está na tela de checkout com um profissional selecionado, quando escolher qualquer meio de pagamento (cartão de crédito, boleto ou Pix), então o sistema deve exibir a opção de contratar recorrência de consultas.
CA02 - Configuração dos dias da recorrência
- Dado que o paciente optou pela recorrência, quando informar a quantidade de vezes por semana e selecionar os dias (segunda a sexta), então o sistema deve garantir automaticamente o mesmo horário da disponibilidade escolhida para cada dia selecionado.
CA03 - Cálculo da cobrança inicial
- Dado que o paciente configurou a recorrência, quando finalizar a compra, então o sistema deve calcular automaticamente quantas consultas existem até o próximo fechamento mensal (data da primeira consulta até data de fechamento) e cobrar o valor total integralmente no ato da compra.
CA04 - Cobranças mensais recorrentes
- Dado que a cobrança inicial foi realizada, então as próximas cobranças devem ocorrer mensalmente. As faturas serão geradas sempre 5 dias antes do próximo fechamento do ciclo.
- Dessa forma, o paciente terá conhecimento prévio sobre as datas de cobrança e poderá planejar seu orçamento com antecedência.
- A cobrança será realizada utilizando o mesmo meio de pagamento escolhido na compra, garantindo a continuidade do serviço sem necessidade de intervenção do paciente no dia da cobrança que inicia o próximo ciclo.
- O valor cobrado será equivalente ao número de sessões do ciclo vigente, considerando os dias selecionados na recorrência e o valor da consulta, mesmo que haja variação no número de dias do mês.
- O calculo deverá levar em consdiração os feriados nacionais cadastrados na base interna, desde que o profissional não tenha optado por trabalhar no feriado, para não cobrar por dias em que o profissional não atenderia normalmente.
CA05 - Agendamento automático por cron job
- Dado que existe um cron job diário, quando executado, então ele deve identificar recorrências ativas, gerar cobranças programadas para o dia, criar agendamentos do período subsequente e verificar cobranças pendentes dentro da tolerância.
CA06 - Bloqueio de horários do profissional
- Dado que a recorrência foi contratada, então os horários do profissional nos dias e horários selecionados devem ficar indisponíveis para novos pacientes enquanto a recorrência estiver ativa e adimplente.
CA07 - Falha na cobrança com tentativas
- Dado que uma cobrança não foi concluída, então o sistema deve tentar nova cobrança diariamente por até 5 dias, mantendo os horários reservados e notificando o paciente sobre o prazo restante para regularização.
CA08 - Cancelamento por inadimplência
- Dado que o pagamento não foi confirmado após 5 dias úteis, então a recorrência deve ser marcada como inadimplente, os horários liberados para outros pacientes e novas consultas do ciclo não devem ser geradas.
CA09 - Transparência no checkout
- Dado que o paciente está finalizando a compra com recorrência, então o sistema deve exibir de forma clara: como funciona a recorrência, dias e horários reservados, período cobrado inicialmente, data do próximo fechamento, data da próxima cobrança, política de tentativas e consequências em caso de não pagamento.
CA10 - Visualização das sessões na área do paciente
- Dado que o paciente acessa a área de consultas, então devem ser exibidas todas as sessões já pagas do mês vigente, com identificador visual para consultas de recorrência e resumo contendo dias reservados, período atual, data da próxima cobrança e status.
CA11 - Notificação de fatura gerada
- Dado que uma nova fatura mensal foi gerada, então o paciente deve receber uma notificação por e-mail e/ou dentro da plataforma, informando sobre a nova cobrança, data de vencimento e instruções para regularização caso necessário.
- Lembrá-lo em caso de não pagamento poderá perder seu horário reservado.
CA12 - Após Regularização do pagamento
- Dado que o paciente regularizou um pagamento pendente, então a recorrência deve ser reativada, os horários reservados bloqueados novamente e as próximas sessões do ciclo geradas normalmente.
CA13 - Horários não mais disponíveis
- Caso o paciente perca o horário por inadimplência e outro paciente tenha comprado, então o sistema deve informar o paciente inadimplente sobre a perda do horário e sugerir que escolha novos dias e horários para contratar uma nova recorrência, caso deseje manter a rotina de atendimento.
Notas Técnicas
Telas/rotas envolvidas:
- Checkout (finalização da compra)
- Área do paciente / Minhas Consultas
- Modal de configuração de recorrência no checkout
Controllers envolvidos:
- CheckoutController
- RecorrenciaController
- AgendamentoController
- CobrancaController
Tabelas afetadas:
- financeiro.recorrencia (paciente, profissional, meio de pagamento, data fechamento mensal, status, data próxima cobrança)
- financeiro.recorrencia_item (id_recorrencia, id_disponibilidade, dia_semana: seg=2, ter=3, qua=4, qui=5, sex=6)
- operacional.agendamento (adicional: id_recorrencia para rastrear agendamentos gerados pela assinatura)
APIs consumidas:
- API de pagamento (cartão, boleto, Pix)
- Cron job de processamento diário de recorrências
Observações:
- Se houver múltiplos profissionais na compra, criar uma recorrência independente para cada profissional.
- O horário da consulta é obtido dinamicamente da disponibilidade vinculada ao profissional, não armazenado no recorrencia_item.
- O fechamento mensal é definido com base na data da primeira consulta (ex: primeira consulta em 25/11/2025, período inicial vai até 24/12/2025).
- Criar view ou função no backend PHP para listar sessões futuras da recorrência e calcular sessões do ciclo vigente, servindo tanto o checkout quanto o cron job.