ADR 002 — Dependências cross-feature permitidas
Status
Aceito (baseline legada)
Contexto
SGApi é monólito modular com features (Auth, Comercial, Geral, etc.). O código legado possui acoplamentos diretos entre features (ex.: Comercial → Geral.Produtos, Comercial → Parametro).
Testes arquiteturais em tests/SGApi.ArchitectureTests bloqueiam novas dependências cross-feature não documentadas.
Decisão
- Manter baseline explícita em
LegacyCrossFeatureBaseline.cs - Toda nova dependência entre features de top-level distintos exige:
- Entrada na baseline e
- Justificativa neste ADR (ou PR referenciando-o)
- Compartilhamento preferencial via
SGApi.Data,SGApi.Infra,SGApi.Utilities
Baseline atual (resumo)
| Origem | Destino | Motivo |
|---|---|---|
Auth | Geral | Operador, empresa no login |
Comercial.* | Parametro | Parâmetros de loja/SG |
Comercial.* | Geral.* | Produtos, clientes, fornecedores |
Geral.Produtos | Comercial.MotivosAlteracaoEstoque | Legado grupo família |
Geral.Cliente | Parametro | Configuração de crédito |
Database | Todas entities | SglinxDbContext |
Lista completa: tests/SGApi.ArchitectureTests/LegacyCrossFeatureBaseline.cs
Consequências
- PRs que aumentam acoplamento falham no CI até atualizar baseline + ADR
- Refatorações que removem dependências podem limpar entradas da baseline