agendapro/gemini.md

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`).