Campos
| Campo | Tipo | Descrição |
|---|---|---|
membershipId | UUID | Identificador único |
userId | UUID | Referência ao usuário |
organizationId | UUID? | Referência à organização; null apenas para role INTERNAL |
roleId | UUID | Referência à role |
status | MembershipStatus | Status do vínculo de acesso |
revokedAt | DateTime? | Data em que o vínculo foi revogado |
revokedBy | UUID? | Usuário que revogou o vínculo, quando aplicável |
createdBy | UUID? | Usuário que criou o registro, quando aplicável |
createdAt | DateTime | Data de criação |
updatedBy | UUID? | Usuário que fez a última atualização, quando aplicável |
updatedAt | DateTime | Data da última atualização |
Relacionamentos
- Relaciona-se com User
- Relaciona-se com Organization (opcional — ausente em roles internas)
- Relaciona-se com Role
- Pode ser referenciada por Employee, quando a Organization pertence a uma Company.
Regras de Negócio
INTERNALusa Membership sem organização e concede acesso interno de BackOffice.ENVIRONMENTusa Membership com organização preenchida, mesmo que a Role seja global.ORGANIZATIONusa Membership com a mesma organização da Role.- Um usuário pode pertencer a múltiplas organizações com roles diferentes, e acumular mais de uma role na mesma organização.
- O mesmo usuário não deve ter duas Memberships
ACTIVEpara o mesmo parorganizationId+roleId. Para rolesINTERNAL, a unicidade consideraorganizationId = null. - Surge no aceite de um Invite do tipo
MEMBER. - Apenas Membership
ACTIVEconcede claims, roles e permissions no Profile. - Revogar uma Membership muda
statusparaREVOKED, preencherevokedAte preserva o histórico do vínculo. - Membership
REVOKEDnão pode ser reativada nem bloquear novo convite equivalente. Para devolver acesso, um novo Invite deve criar um novo vínculo. - Quando a Membership pertence à Organization de uma Company, ela pode originar o
Employeecorrespondente para o mesmouserId.
Enums
MembershipStatus
| Valor | Descrição |
|---|---|
ACTIVE | Vínculo ativo e considerado no Profile |
REVOKED | Vínculo encerrado e ignorado para autorização |