Camada de Domínio
A camada de domínio do Core do WMS contém as regras de negócio e abstrações principais do sistema.
Ela é responsável por representar de forma fiel o domínio logístico (operações de armazém) e manter a lógica independente de detalhes técnicos.
Estrutura de Pastas
No módulo WMS.AI.Domain, a camada está organizada da seguinte forma:
- Attributes → Contém atributos customizados usados para enriquecer validações e metadados de objetos do domínio.
- Enums → Define valores fixos e controlados do domínio (ex: status de pedido, tipo de operação, prioridade de onda).
- Models → Representações de dados do domínio que não são necessariamente entidades persistidas.
- Validations → classes responsáveis por validar regras de negócio dentro dos modelos.
- Persistence → Estruturas relacionadas à persistência, mas ainda pertencentes ao domínio.
- Entities → principais objetos do negócio, com identidade (ex: Pedido, Endereço).
- Repositories → interfaces que definem contratos de acesso a dados, mantendo a camada desacoplada da infraestrutura.
Diretrizes
- Isolamento: o domínio não depende de bibliotecas de infraestrutura (ex: Entity Framework, mensageria).
- Consistência: regras de negócio são centralizadas aqui, evitando duplicação em diferentes serviços.
- Reaproveitamento: como parte do Core do WMS, essa camada é utilizada por qualquer aplicação (Blazor Client, API, Serviços).