Tipos e Formatos Comuns
Camada: Domínio — Tipos de dados, formatos e enumerações reutilizados entre entidades. Sempre que um campo de entidade referenciar um formato, ele aponta para este documento.
Telefone — Formato E.164
O padrão internacional E.164 é o único formato aceito para campos de telefone no sistema.
Estrutura
+[código do país][código de área][número]
| Parte | Descrição | Exemplo |
|---|---|---|
+ | Prefixo obrigatório | + |
| Código do país | 1 a 3 dígitos (Brasil = 55) | 55 |
| Código de área (DDD) | 2 dígitos, sem zero à esquerda | 11 |
| Número | 8 ou 9 dígitos (sem traços ou espaços) | 912345678 |
Exemplos válidos
| Número digitado | Formato E.164 armazenado |
|---|---|
| (11) 91234-5678 | +5511912345678 |
| (21) 3456-7890 | +5521345678990 |
| +55 11 9 1234-5678 | +5511912345678 |
Regras de validação
- Comprimento total: mínimo 8, máximo 15 dígitos (sem o
+). - O campo nunca é armazenado com espaços, traços ou parênteses.
- A normalização para E.164 é responsabilidade do backend no momento do cadastro — o frontend pode aceitar entrada livre com máscara.
- Números inválidos (ex: DDDs inexistentes) devem ser rejeitados na validação.
Referências entre entidades
Os seguintes campos usam este formato:
Usuario.telefoneLead.telefoneCliente.telefone
CPF / CNPJ
| Tipo | Formato de entrada | Formato armazenado | Validação |
|---|---|---|---|
| CPF | 000.000.000-00 ou 00000000000 | Somente dígitos, 11 chars | Dígito verificador obrigatório |
| CNPJ | 00.000.000/0000-00 ou 00000000000000 | Somente dígitos, 14 chars | Dígito verificador obrigatório |
- Armazenados sem máscara no banco de dados.
- A exibição com máscara é responsabilidade do frontend.
- CPF/CNPJ inválido (dígito verificador errado ou sequência conhecida como
111.111.111-11) deve ser rejeitado.
Datas e Timestamps
| Tipo | Formato | Exemplo |
|---|---|---|
Data simples (date) | ISO 8601 — YYYY-MM-DD | 2024-03-15 |
Data e hora (timestamp) | ISO 8601 com timezone UTC — YYYY-MM-DDTHH:mm:ssZ | 2024-03-15T14:30:00Z |
- Todas as datas são armazenadas em UTC no banco.
- A conversão para o fuso horário do usuário é feita no frontend.
Valores Monetários
| Campo | Tipo | Armazenamento | Exibição |
|---|---|---|---|
| Preços, mensalidades, descontos | decimal | 2 casas decimais, ex: 1250.90 | R$ 1.250,90 (formatação no frontend) |
- Nunca armazenar como string ou com símbolo de moeda.
- Cálculos de desconto usam percentual (
float, ex:0.05para 5%).
Enums Globais (Status Padrão)
Vários status seguem o mesmo vocabulário em todo o sistema:
| Valor | Significado |
|---|---|
ATIVO | Operacional, sem restrições |
INATIVO | Desativado administrativamente, sem exclusão de dados |
SUSPENSO | Bloqueio temporário por regra de negócio (ex: inadimplência) |
CANCELADO | Encerramento definitivo, dados preservados para auditoria |
Entidades específicas podem ter status adicionais além destes — consultar o documento da entidade correspondente.
UUID
Todos os identificadores primários (id) do sistema são UUID v4.
- Gerados pelo backend no momento da criação.
- Nunca reutilizados, mesmo após exclusão lógica.
- Representados como string no formato
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.