Profile consolida identidade, dados de passageiro e escopo de acesso do usuário autenticado.
Campos
| Campo | Tipo | Origem | Descrição |
|---|---|---|---|
userId | UUID | User | Identificador do usuário |
googleProviderId | String? | User | ID do provedor Google OAuth |
scope | ProfileScope | Roles e vínculos | Escopo de organização, role e permissões |
name | String | User | Nome completo |
email | String? | User | |
emailVerified | Boolean | User | Email verificado |
avatar | String? | User | Referência ao avatar |
document | String? | Customer | Número do documento |
documentType | DocumentType? | Customer | Tipo do documento |
birthDate | Date? | Customer | Data de nascimento |
phoneIso | String | User | Código ISO do país do telefone |
phoneDdi | String | User | DDI do telefone |
phoneNumber | String | User | Número do telefone |
phoneVerified | Boolean | User | Telefone verificado |
status | UserStatus | User | Status da conta |
createdBy | UUID? | User | Usuário que criou o registro, quando aplicável |
createdAt | DateTime | User | Data de criação |
updatedBy | UUID? | User | Usuário que fez a última atualização, quando aplicável |
updatedAt | DateTime | User | Data da última atualização |
ProfileScope
| Campo | Tipo | Descrição |
|---|---|---|
permissionIds | PermissionId[] | União dos claims de acesso derivados, das roles internas e das roles do escopo ativo |
organization | { organizationId, name }? | Organização do escopo ativo |
role | { roleId, name }? | Role do escopo ativo |
Regras de Negócio
- O
Profileagrega dados de identidade (User), de passageiro (Customer, quando existe) e de autorização em uma única resposta. permissionIdsé a união, sem duplicatas, dos claims de acesso derivados, das rolesINTERNALe das rolesENVIRONMENT/ORGANIZATIONda organização ativa.- Apenas Memberships
ACTIVEparticipam da composição de claims, roles e permissions. access:bkoé derivado quando o usuário possui MembershipACTIVEcom RoleINTERNAL.access:opsé derivado quando o usuário possui MembershipACTIVEem uma organização com RoleENVIRONMENTouORGANIZATION.access:driveré derivado quando o usuário possui vínculo ativo como motorista em uma empresa.organizationerolesó aparecem quando existe escopo ativo de organização. Passageiros e usuários apenas com roles internas não têm escopo de organização.