NotificationRecipient representa a entrega e o estado individual de uma Notification para um usuário. Ele permite controlar leitura, arquivamento e remoção por destinatário.
Campos
| Campo | Tipo | Descrição |
|---|---|---|
notificationRecipientId | UUID | Identificador único |
notificationId | UUID | Notificação recebida |
recipientUserId | UUID | Usuário destinatário |
deliveredAt | DateTime? | Data em que foi entregue via realtime ou inbox |
readAt | DateTime? | Data em que foi marcada como lida |
archivedAt | DateTime? | Data em que foi arquivada |
status | NotificationRecipientStatus | Estado da notificação para o destinatário |
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 |
deletedBy | UUID? | Usuário que removeu o registro, quando aplicável |
deletedAt | DateTime? | Data de remoção lógica |
Relacionamentos
- Relaciona-se com Notification.
- Relaciona-se com User por
recipientUserId.
Regras de negócio
- O par
notificationId+recipientUserIddeve ser único. NotificationRecipientguarda o estado por usuário; a mesma Notification pode ter múltiplos recipients.UNREADé o estado inicial.READdeve preencherreadAt.ARCHIVEDdeve preencherarchivedAt.deliveredAtrepresenta entrega in-app ou realtime; envio externo por email/WhatsApp não é controlado por esta entidade.- Remoção lógica afeta apenas a visualização do destinatário e não apaga a Notification.
Enums
NotificationRecipientStatus
| Valor | Descrição |
|---|---|
UNREAD | Notificação ainda não lida |
READ | Notificação lida |
ARCHIVED | Notificação arquivada pelo destinatário |