Files
Condominio_SeConectai/Schemas/10-tracker-progresso.md
T
2026-09-29 12:12:31 -03:00

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.HttpServer para 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.