4.6 KiB
4.6 KiB
Tracker de Progresso — Sistema de Contabilidade de Condomínios
Regra obrigatória para a IA executora: antes de iniciar qualquer prompt, leia este arquivo inteiro e confirme que o prompt anterior está marcado como ✅ Concluído. Nunca avance para o próximo prompt com uma fase anterior incompleta ou com critérios de aceite não verificados. Ao terminar um prompt, atualize a linha correspondente aqui (status, data, resumo) antes de considerar a fase encerrada.
| # | Prompt | Status | Data | Resumo |
|---|---|---|---|---|
| 01 | Setup projeto, Docker, HttpServer básico | ✅ Concluído | 2026-09-28 | Projeto Java/Maven criado com Docker, PostgreSQL, HttpServer, healthcheck, arquivos estáticos e MigrationRunner no-op validados. |
| 02 | Migrations db_master |
✅ Concluído | 2026-09-28 | Criadas 15 migrations master com seed de 30 funcionalidades e DAOs JDBC básicos validados. |
| 03 | Migrations db_empresa (tenant) + provisionamento |
✅ Concluído | 2026-09-28 | Criadas migrations tenant, TenantProvisioner, cache por empresa e DAOs básicos com smoke test validado. |
| 04 | Autenticação: master, JWT, API Key | ✅ Concluído | 2026-09-28 | Implementados BCrypt, JWT HMAC-SHA256, API Key, logins e middlewares com testes de aceite. |
| 05 | Painel Master: clientes e planos | ✅ Concluído | 2026-09-28 | Implementados endpoints master de empresas, funcionários, planos, funcionalidades, logs e lembretes com validação HTTP. |
| 06 | Painel Cliente: condomínios, contatos, espaços, assembleias, documentos | ✅ Concluído | 2026-09-28 | Implementados endpoints cliente para condomínios, contatos, funcionários vinculados, espaços, assembleias, documentos/upload e auditoria. |
| 07 | Financeiro: assinaturas, período de uso, AbacatePay | ✅ Concluído | 2026-09-28 | Implementados período atual, cobrança PIX AbacatePay/mock, webhook idempotente, job de bloqueio e acesso financeiro para inadimplentes. |
| 08 | Avisos/alertas: Evolution API, e-mail, destinatários | ✅ Concluído | 2026-09-28 | Implementados conexão/aprovação Evolution, SMTP master, CRUD/envio de avisos, logs e reenvio de falhas. |
| 09 | Frontend base: layout, menus, telas principais | 🔶 Em andamento | 2026-09-28 | Frontend estático base implementado com login, layout, telas master/cliente, financeiro PIX, WhatsApp e detalhe de condomínio; build Maven validado, pendente teste E2E HTTP. |
Status possíveis: ⬜ Pendente · 🔶 Em andamento · ✅ Concluído · ❌ Bloqueado (se bloqueado, escrever o motivo no resumo).
Decisões de arquitetura já fechadas (não reabrir sem necessidade real)
- Java puro + JDBC, sem framework;
com.sun.net.httpserver.HttpServerpara HTTP. - PostgreSQL 16, 1 servidor, 1 database por empresa (
db_empresa_<slug>). - Frontend HTML/CSS/JS puro, servido pelo mesmo processo (sem build step).
- Autenticação em 3 camadas: senha master → JWT master; funcionário → JWT empresa; app externo → API Key.
- Empresas cadastradas só pelo master (sem autoatendimento).
- Liberação de uso mensal automática via webhook AbacatePay; bloqueio automático por job diário se vencido sem pagamento (dados nunca apagados).
- Evolution API: cada escritório conecta sua própria instância; ativação depende de aprovação do master.
- E-mail: uma única conta SMTP da plataforma, configurada pelo master.
- Sem moradores/unidades, reservas de área comum, prestação de contas/financeiro do condomínio, ocorrências, fornecedores ou votações — sistema é um cadastro de referência, não um ERP de condomínio.
- Contatos (síndico/subsíndico/conselheiro) são entidades desacopladas dos condomínios (N:N via
contato_condominio) — a mesma pessoa pode atender mais de um condomínio. - Funcionários do escritório podem ser vinculados a condomínios específicos e também recebem avisos/alertas.
- Assembleias são uma entidade própria; avisos podem opcionalmente referenciar uma assembleia e ter documentos anexados.
Notas / pendências conhecidas (não bloqueiam o MVP, mas ficam registradas)
- Provisionamento de tenant (Prompt 05) roda de forma síncrona na criação da empresa — migrar para fila assíncrona é uma melhoria futura.
- Envio de aviso (Prompt 08) roda de forma síncrona — idem, fila assíncrona é melhoria futura.
- Cache de conexão por tenant (Prompt 03) não tem invalidação automática quando uma empresa é bloqueada/cancelada — só um método pronto, não chamado ainda.
- Funcionalidades "Fase 2" do catálogo (templates, avisos recorrentes, webhooks, busca avançada) estão seedadas no banco mas sem handler implementado.