- Marcelo Areco reviewers: [] created: 2026-07-02 updated: 2026-07-02 tags:
- ddd
- value-objects
- domain-model
Value Objects¶
Objetivo¶
Definir o padrão oficial para modelagem de Objetos de Valor (Value Objects) na CoreFlow Platform.
Value Objects representam conceitos do domínio que não possuem identidade própria, sendo definidos exclusivamente pelos seus atributos.
Conceito¶
Um Value Object é imutável.
Se algum atributo mudar, um novo objeto deverá ser criado.
Ele não possui ciclo de vida independente.
Características¶
Todo Value Object deverá:
- ser imutável;
- não possuir identificador próprio;
- ser comparado por valor;
- encapsular regras de validação;
- ser reutilizável.
Comparação¶
Dois Value Objects são iguais quando todos os seus atributos possuem os mesmos valores.
Exemplo:
Exemplos¶
Money¶
Representa um valor monetário.
Campos:
- Valor
- Moeda
Address¶
Representa um endereço.
Campos:
- CEP
- Logradouro
- Número
- Complemento
- Bairro
- Cidade
- Estado
- País
Email¶
Representa um endereço de e-mail válido.
Validações:
- formato
- domínio
- normalização
Phone¶
Representa telefone.
Campos:
- País
- DDD
- Número
Document¶
Representa documentos fiscais.
Exemplos:
- CPF
- CNPJ
Validações obrigatórias.
Period¶
Representa intervalo de datas.
Campos:
- Data Inicial
- Data Final
Coordinates¶
Representa localização.
Campos:
- Latitude
- Longitude
Percentage¶
Representa percentual.
Regras:
- mínimo
- máximo
Color¶
Representa cor institucional.
URL¶
Representa endereço web válido.
FileMetadata¶
Representa metadados de arquivos.
Value Objects por Contexto¶
Core¶
- Phone
- Address
- Document
- TimeZone
- Locale
CRM¶
- LeadSource
- PipelineStage
- ContactInfo
ERP¶
- SKU
- Barcode
- Weight
- Dimensions
Finance¶
- Money
- BankData
- PixKey
RH¶
- Salary
- WorkingHours
Imutabilidade¶
Exemplo:
Nunca alterar a instância existente.
Regras¶
Os Value Objects deverão conter:
- validações;
- normalizações;
- cálculos;
- formatações.
Nunca apenas dados.
Persistência¶
São persistidos juntamente com sua Entidade ou Aggregate.
Nunca possuem Repository próprio.
Segurança¶
Sempre validar:
- consistência;
- formato;
- limites;
- obrigatoriedade.
Anti-patterns¶
É proibido:
- IDs próprios;
- estado mutável;
- Repository;
- lógica fora do objeto;
- duplicação de validações.
Diagrama¶
classDiagram
User --> Email
User --> Phone
User --> Address
Company --> Address
Payable --> Money
Product --> Dimensions
Employee --> Salary
Objetivo Final¶
Garantir reutilização, consistência e encapsulamento das regras de domínio através de Objetos de Valor imutáveis, reduzindo duplicação e fortalecendo o modelo de domínio da CoreFlow Platform.