67 lines
3.5 KiB
Markdown
67 lines
3.5 KiB
Markdown
# 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 (`createSubscription` e `cancelSubscription`).
|
|
|
|
### 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 (`payments` e `appointments`) 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 como `active` (desbloqueado) ou `inactive` (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 `main` remota do Gitea (`https://gitea.microtecinformaticacurso.com.br/sidney/agendapro.git`).
|