ADRs - Decisoes Tecnicas
Este arquivo registra decisoes importantes. Formato simplificado: contexto, decisao, consequencias.
ADR 001 - Usar WhatsApp Web para MVP
Contexto
O produto precisava demonstrar atendimento WhatsApp rapidamente, com envio/recebimento real.
Decisao
Usar whatsapp-web.js no backend.
Consequencias
Positivas:
- entrega rapida;
- QR Code simples;
- conversa real no WhatsApp.
Negativas:
- dependencia de sessao WhatsApp Web;
- Puppeteer/Chromium no servidor;
- risco operacional maior que API oficial;
- nao e ideal para producao robusta.
ADR 002 - React/Vite com estilos inline
Contexto
Velocidade de prototipacao e demo.
Decisao
Usar React + Vite e estilos inline com variaveis globais.
Consequencias
Positivas:
- desenvolvimento rapido;
- componentes autocontidos.
Negativas:
- arquivos grandes;
- dificil reaproveitamento visual;
- refatoracao futura recomendada.
ADR 003 - PostgreSQL como fonte operacional
Contexto
Era necessario controlar usuarios, filas, templates, contatos e auditoria.
Decisao
Usar PostgreSQL com SQL direto via pg.
Consequencias
Positivas:
- controle claro do schema;
- queries explicitas;
- pouca dependencia de ORM.
Negativas:
- precisa disciplina de migrations;
- risco de SQL duplicado/espalhado.
ADR 004 - JWT proprio da aplicacao
Contexto
LDAP e Microsoft autenticam identidades, mas o sistema precisa de perfis e areas proprios.
Decisao
Emitir JWT proprio apos autenticar no provedor externo.
Consequencias
Positivas:
- token unico para frontend;
- inclui perfis e areas do sistema.
Negativas:
- ainda falta guard backend;
- precisa revisar armazenamento do token para producao.
ADR 005 - Migrations SQL versionadas
Contexto
Schema evoluiu rapido durante MVP.
Decisao
Versionar migrations SQL em database/migrations.
Consequencias
Positivas:
- historico legivel;
- facil revisar mudancas.
Negativas:
- ainda falta runner formal;
- compose nao aplica automaticamente a pasta atual.