GLC_RFM-0010
ADR 0005desconhecido

Modelagem de domínio: ObrigacaoRegulatoria com campo natureza

ADR 0005 — Modelagem de domínio: ObrigacaoRegulatoria com campo natureza

Decisão

No código: entidade única ObrigacaoRegulatoria com campo natureza enumerado:

  • licenca
  • alvara
  • registro
  • cadastro
  • autorizacao

Na UI e na comunicação com cliente: usar "licença" (linguagem do Ale e do cliente).

Racional

Juridicamente licença, alvará, registro são instrumentos distintos. Operacionalmente o problema é o mesmo: prazo, documentos, renovação, risco de multa.

Modelar 3-5 entidades separadas = over-engineering sem ganho funcional. O campo natureza preserva a distinção para relatórios jurídicos quando precisar.

Consequências

Positivas:

  • Modelo de dados simples: 1 tabela obrigacao_regulatoria + catálogo
  • Queries de dashboard (semáforo) não precisam unir várias tabelas
  • Filtros por natureza são triviais

Negativas / a monitorar:

  • Se em v3 aparecer regra jurídica que exija tratamento diferente por natureza (ex: alvará de funcionamento tem fluxo X, licença ambiental tem fluxo Y), modelar strategy por natureza — mas ainda assim 1 tabela.
  • Glossário formal (definições de cada natureza) fica em docs/glossario.md quando o catálogo de posto SP estiver definido.

Renomeação do modelo em arquitetura.md

O docs/arquitetura.md §4 hoje chama a entidade de LicencaDaEmpresa. Em implementação, usar ObrigacaoRegulatoria (código) com alias Licenca (UI e docs de cliente).

Atualizar arquitetura.md quando for implementar Sprint 1. Até lá, este ADR é a fonte da verdade.

Ratificação pendente

Aguarda ratificação de Ale. Decisão técnica coerente com o escopo — baixo risco de reversão.

Ligação com as regras

  • Regra 1 princípio 5 (simples até provar que precisa ser complexo)
  • Regra 1 princípio 4 (substituível por design — strategy por natureza quando necessário)