3.5 KiB
3.5 KiB
Registro de Modificações - Gemini (AgendaPRO)
Este arquivo registra todas as alterações, novos arquivos criados e configurações de dependências feitas no projeto AgendaPRO para a integração do gateway Asaas e controle de acesso por assinatura.
1. Arquivos Criados
A. src/lib/asaas.ts
Implementação do cliente de API modular do Asaas (v3) para sandbox e produção:
- Registro de clientes (
createCustomer). - Geração de cobranças avulsas (
createPayment). - Busca de QR Code e Linha Digitável do Pix (
getPixQrCode). - Gerenciamento de Assinaturas recorrentes (
createSubscriptionecancelSubscription).
B. src/app/api/webhooks/asaas/route.ts
Endpoint de recebimento de notificações do Asaas:
- Validação do cabeçalho
asaas-access-token. - Idempotência via tabela
asaas_webhook_events. - Atualização automatizada de status de agendamentos (
paymentseappointments) e assinaturas dos inquilinos (subscriptions).
C. src/app/api/tenant/subscription/route.ts
Endpoint para controle de fluxo de planos:
GET: Consulta do plano ativo do tenant, validade e lista de planos disponíveis (com auto-seeding de planos Starter, Professional, Business e Enterprise).POST: Criação e cobrança de novas assinaturas via Pix, Boleto ou Cartão de Crédito integrados ao Asaas.
D. src/app/api/tenant/subscription/simulate/route.ts
Endpoint de desenvolvimento e testes em sandbox:
POST: Permite forçar instantaneamente o status do tenant comoactive(desbloqueado) ouinactive(bloqueado) sem depender do envio externo de webhooks.
E. asaas_skill.md
Manual de referência contendo todas as chaves, rotas, payloads de integração e procedimentos de testes no ambiente Sandbox do Asaas.
2. Arquivos Modificados
A. src/app/page.tsx
- Adicionado carregamento de status do plano no carregamento inicial da página.
- Enforcamento de bloqueio: inquilinos com assinatura pendente ou vencida são forçados a visualizar apenas a aba de assinatura.
- Adicionado loader de transição visual durante a verificação de acesso.
B. src/components/Sidebar.tsx
- Suporte ao parâmetro
isLocked. - Desativação visual (opacidade reduzida e ícone de cadeado
🔒) dos menus de controle (Dashboard, Agenda, Clientes, Serviços, Equipe, Configurações) quando o acesso do inquilino está bloqueado por falta de pagamento.
C. src/components/Subscription.tsx
- Exibição de banner de alerta vermelho quando o acesso está bloqueado.
- Seleção visual interativa do plano desejado e do meio de pagamento (Pix, Boleto, Cartão de Crédito).
- Formulário de preenchimento de dados de cartão.
- Retorno com QR Code visual para Pix ou link para download do boleto.
- Botão "Simular Pagamento Webhook" integrado para desbloqueio instantâneo do sistema em ambiente local.
D. tsconfig.json
- Adicionada a exclusão da pasta
admin("admin") na verificação de tipos do tsconfig principal para resolver conflitos de paths entre as duas subaplicações.
3. Dependências Instaladas
@types/pg: Instalado como dependência de desenvolvimento (npm i --save-dev @types/pg) para garantir tipagem estática e evitar erros de compilação em consultas ao banco PostgreSQL.
4. Integração com Repositório Git / Gitea
- Recuperação e reinicialização do repositório Git local (
git init). - Vinculação com a branch
mainremota do Gitea (https://gitea.microtecinformaticacurso.com.br/sidney/agendapro.git).