Arquitetura¶
Status real
Monólito Django modular, mesmo padrão pragmático dos demais produtos CoreFlow (ver ADR-0002) — sem camadas formais de Clean Architecture/DDD.
Composição real¶
Particularidade real: roteamento de banco para demonstração¶
ResetDBMiddleware (primeiro da lista, antes da autenticação) reseta o roteamento para default a cada request; DemoDBMiddleware detecta se o usuário está no grupo Demonstração e roteia as queries daquele request para um banco de demonstração separado (config/db_router.py). Usuários demo podem ter PKs diferentes nos dois bancos — o middleware rebusca o usuário após trocar de banco para evitar contaminação entre requests. Populado por apps.core.management.commands.populate_demo.
Diferença real em relação a CRM/ERP¶
Os models não herdam um BaseModel com UUID — cada model declara criado_em/atualizado_em próprios e usa a chave primária inteira padrão do Django.