Regras de estrutura de pastas (domain, use_case, infra) e fluxo de dependências.
Baseado no repositório proposta-arq como referência para arquitetura integrada orientada a casos de uso. (GitHub)
/domain → Entidades do domínio, Value Objects, Domain Services
/use_case → Casos de uso (Use Cases) que representam interações do usuário/sistema
/application → Porta de entrada (controllers, rotas, consumidores de filas)
/infra → Adaptadores, repositórios, APIs externas, drivers
/shared → Componentes compartilhados entre contextos (tipos comuns, erros, utilitários de domínio)
/tests → Testes unitários, testes de integração, mocks
/use_case/application/domain) contém todas as regras de negócio reais, sem dependência de infra-estrutura./infra) implementa adaptadores e concretizações, separada da camada de domínio e de aplicação./shared) reúne tipos genéricos e reutilizáveis entre camadas, evitando acoplamento entre contextos distintos./domain./infra./use_case. Devem definir entradas/saídas, lógica de orquestração, e invocar domínio./application recebem requisições e delegam para use cases. NÃO devem conter lógica de negócio./infra) implementa a persistência, serviços externos, drivers, adaptadores.