3.9 KiB
3.9 KiB
MicrotecFlix - Regras do Agente (Workspace Rules)
Este arquivo define as restrições comportamentais e as diretrizes arquiteturais específicas do MicrotecFlix que o agente deve sempre obedecer em futuras edições.
1. Conexão com Banco de Dados
- PostgreSQL Dedicado: O banco de dados PostgreSQL roda em container isolado na porta
5435:5432(evitando conflito com a porta padrão 5432 usada por outros bancos na VPS, como o do AgendaPRO). - Nunca use db.json: Toda a persistência de dados foi migrada para o PostgreSQL. Não reintroduza o arquivo
db.jsonnem funções locais comoloadDb(). - Prisma Client: Sempre que fizer modificações em
prisma/schema.prisma, executenpx prisma generatelocalmente e garanta quenpx prisma db pushseja executado no ambiente do deploy para sincronizar o banco.
2. Roteamento de Domínios & Portais
- Roteamento no Root: O arquivo
src/Root.tsxrealiza o roteamento com base no host:- Subdomínio com
admin(admin-estudo.microtecinformaticacurso.com.br) renderiza oAdminApp.tsx. - Subdomínio padrão (
estudo.microtecinformaticacurso.com.br) renderiza oApp.tsx(Painel do Aluno).
- Subdomínio com
- Mantenha os layouts isolados: Não misture imports do portal do aluno dentro do administrador e vice-versa.
3. Customização SaaS (Branding)
- Logomarca Dinâmica: A logo deve renderizar o prefixo
brandNameem vermelho e a extensãoFLIXem branco. O slogan abaixo da logo deve carregar de forma dinâmica do estado público de configurações (SystemSettings). - CNPJ e Endereço: Exibir sempre os dados de CNPJ e Endereço legais retornados por
/api/settingsnos rodapés públicos.
4. Segurança e Webhooks
- Webhook Asaas: A rota
/api/webhooks/asaasexige validação do headerasaas-access-token. Se for incorreto, retorne HTTP 401 informando o token recebido vs o esperado para facilitar a depuração no painel do Asaas. - PCI-DSS: Dados confidenciais de cartão (número completo, CVV) nunca devem ser persistidos no banco de dados. Use a tokenização da API do Asaas e grave apenas os últimos 4 dígitos e o token de cartão.
5. Integração com Evolution API v2 & CI/CD
- Parâmetro Integration: Nas chamadas de criação de instância da Evolution API v2 (
/instance/create), forneça sempre o parâmetro"integration": "WHATSAPP-BAILEYS"para evitar erros400 Bad Requestna API. - Envio de Mensagens (REST): O envio de mensagens deve ser feito via HTTP (usando
fetch) para a rota/message/sendText/:instance, com aapikeyno Header e utilizando o parâmetrodelay: 1200para estabilidade. Não deve-se utilizar SDK do Baileys diretamente no Node.js para conectar; o servidor deve se comunicar estritamente como cliente REST da API Evolution. - Pipeline do Gitea Runner: O deploy na VPS é automatizado através de um runner de Gitea Actions conectado ao Portainer. Não há necessidade de build e deploy manual no Portainer ao enviar para a branch
main.
6. Interface do Usuário (UI) & Modais
- Proibição de Alertas Nativos: É ESTRITAMENTE PROIBIDO utilizar
alert(),window.alert(),confirm(),window.confirm()ouprompt(). - Sistema de Modais Global: Todo o aplicativo é envolvido por um
<ModalProvider>. Utilize o hookuseModal(importado desrc/contexts/ModalContext.tsx) que retorna os helpers{ alert, success, error, confirm }. - Componentes Compartilhados: Utilize o componente
PaymentCheckoutCardpara cobranças de planos, combos ou cursos avulsos. O layout é unificado e o componente se adapta dinamicamente às propriedades fornecidas. - Políticas e Termos: Textos longos de uso e políticas são exibidos via modais (
useModal) injetados com o conteúdo de banco de dados (SaaSConfig), mantendo o aluno no contexto do App sem recarregar a página.