Reserva confirmada só após pagamento de 20%. Se o prazo vence sem pagar, a data volta ao calendário — automaticamente. Os proprietários ajustam tarifas, cupons e política de cancelamento pelo painel, sem tocar no código.
01
Visão Geral
Recanto do Trovador é uma plataforma de reservas para uma chácara em Imbituva, Paraná. Os proprietários precisavam de um sistema que automatizasse a confirmação de pagamentos, impedisse conflitos de datas e oferecesse aos clientes visibilidade real sobre o processo — sem depender de troca de mensagens para cada etapa.
O sistema exige um pagamento antecipado de 20% para confirmar a reserva. Se o pagamento não ocorre dentro do prazo, a reserva é cancelada automaticamente e a data volta a ficar disponível. A plataforma oferece política de cancelamento configurável — o administrador define se o valor pago é reembolsado ou convertido em cupom de desconto — e precificação dinâmica que diferencia dias comuns, finais de semana e períodos especiais. O sistema de cupons permite emitir códigos com regras de uso, limite de reutilização e restrição por usuário.
O painel administrativo centraliza reservas, tarifas, cupons, visitas e documentos — tudo configurável pelo proprietário, sem código. Pagamentos via Asaas, com suporte a Pix e cartão de crédito.
02
Desafio
O coração do sistema é um fluxo de pagamento condicional: a reserva só é confirmada após o pagamento de 20% do valor dentro de um prazo definido. Se o pagamento não ocorre, a data precisa voltar ao calendário automaticamente — sem intervenção manual, mesmo que o usuário abandone a sessão no meio do processo. Garantir que dois clientes não reservassem a mesma data simultaneamente exigiu controle transacional no banco, tornando o bloqueio de datas atômico.
A política de cancelamento precisava ser inteiramente configurável: o administrador define se o valor pago é reembolsado integralmente, parcialmente ou convertido em cupom. O sistema de cupons, por sua vez, precisava suportar códigos reutilizáveis ou de uso único, restritos a usuários específicos ou abertos, originados tanto de promoções quanto de cancelamentos — cada origem com suas próprias regras. Manter essa lógica flexível sem torná-la ingovernável no painel foi um ponto de atenção constante.
Além do fluxo de pagamento, outros três desafios se somaram: implementar autenticação sem senha via magic link para reduzir atrito no processo de reserva; criar um sistema de precificação dinâmica que aplicasse tarifas diferentes para dias comuns, fins de semana e eventos especiais sem hardcode; e garantir que toda a experiência fosse acessível e funcional em smartphones, já que a grande maioria dos usuários reservaria pelo celular.
03
Solução
O fluxo de reserva foi estruturado em estados explícitos no banco — pending, awaiting_payment, confirmed, cancelled — com cron jobs na Vercel para expirar reservas não pagas dentro do prazo. Transações atômicas no banco garantem que a mesma data não seja reservada por dois clientes simultaneamente, mesmo sob carga concorrente.
A autenticação por magic link foi implementada com código temporário enviado por e-mail e validado em etapa posterior — sem senha permanente e sem fricção desnecessária. A política de cancelamento e todas as regras de cupom ficaram configuráveis pelo painel administrativo, desacoplando as regras de negócio do código. O administrador ajusta prazos, valores, restrições e exceções sem precisar de alterações no front-end.
O sistema de preços foi modelado com tarifas por tipo de dia, gerenciadas diretamente no painel. A integração com o Asaas cobre Pix e cartão, com verificações automáticas de status de pagamento. O projeto foi desenvolvido com abordagem mobile-first, garantindo que o fluxo completo de reserva — busca de datas, pagamento e acompanhamento — funcionasse sem comprometimentos em telas pequenas.












