Pular para o conteúdo principal

API: registo de utilizador — POST /api/v1/auth/register

Contrato: apis/02-auth.md · catálogo.

Cria um registo em public."user" na BD G_DB_POSTGRESS, com dados relacionais nas tabelas user_addresses, user_branding, user_documents, user_permissoes e user_personal_data (transação única).


Endpoint

ItemValor
MétodoPOST
URL{BASE_URL}/api/v1/auth/register
AuthNão (rota pública)

Corpo (application/json)

Campos base

CampoObrigatórioRegras
nomeSimTexto não vazio, máx. 255 → nome_completo.
emailSimE-mail válido; guardado em minúsculas.
passwordSimEntre 8 e 128 caracteres; bcrypt em password.
roleNãoMáx. 50 caracteres.
displayNameNãoMáx. 100 → display_name.
roleNumberNãoMáx. 20 → role_number.
roleIdNãoUUID v4 → role_id.
createdByUuidNãoUUID v4 → created_by_uuid.
statusNãoOmite → ativo.

Campos legados (mapeados para tabelas relacionais)

rg, cpf, cep, endereco, numero, cidade, estado, telefone, dataAniversario, tipoPessoa, roleUuid, metadata.

Coleções aninhadas (opcional)

CampoTipoDestino
addressesarrayuser_addresses
brandingobjetouser_branding
documentsarrayuser_documents
permissoesarrayuser_permissoes
personalDataobjetouser_personal_data

Exemplo mínimo

{
"nome": "Maria Silva",
"email": "maria@exemplo.pt",
"password": "senhaSegura8"
}

Resposta 201 Created

Devolve UserFullResponseDto (mesmo formato do login em user):

  • id, nomeCompleto, displayName, email, role, roleNumber, roleId, status, metadata, jwtRole
  • addresses, branding, documents, permissoes, personalData
  • createdAt, updatedAt, dataCadastro

Não devolve token; o cliente pode chamar POST /api/v1/auth/login a seguir.


Erros

HTTPQuando
400Validação (password curto, email inválido, etc.).
409Email duplicado → Email já registado.

Backend: RegisterService + AuthUserEntity na conexão userProfilesConnection.