Notification representa o conteúdo e o contexto de uma notificação persistida no DEVMOB. Ela não substitui envios transacionais por email ou WhatsApp; esses canais continuam sendo responsabilidade do adapter de notificação externa.
Campos
| Campo | Tipo | Descrição |
|---|---|---|
notificationId | UUID | Identificador único |
organizationId | UUID? | Organização relacionada à notificação, quando aplicável |
createdByUserId | UUID? | Usuário ou ator que originou a notificação, quando aplicável |
audience | NotificationAudience | Superfície onde a notificação deve aparecer |
type | NotificationType | Tipo da notificação |
priority | NotificationPriority | Prioridade de exibição |
title | String | Título exibido na inbox |
body | String | Texto exibido na inbox |
resourceDomain | String? | Domain do recurso relacionado |
resource | String? | Entity ou recurso relacionado |
resourceId | UUID? | ID do recurso relacionado |
payload | Json? | Dados extras para renderização ou roteamento no front |
expiresAt | DateTime? | Data de expiração da notificação |
status | NotificationStatus | Status global da notificação |
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 Organization, quando a notificação está em escopo organizacional.
- Relaciona-se com User por
createdByUserId, quando existe ator de origem. - Relaciona-se com múltiplos NotificationRecipient.
- Pode referenciar qualquer recurso por
resourceDomain,resourceeresourceId, sem FK direta.
Regras de negócio
Notificationguarda o conteúdo compartilhado entre todos os destinatários.- O estado por usuário fica em NotificationRecipient.
- O front resolve a rota de abertura pelo
typee pelo recurso relacionado; não existeactionUrl. companyIdecooperativeIdnão ficam na notificação. O escopo operacional é resolvido pororganizationId,audience, memberships e recurso relacionado.audience = OPSrepresenta o ambiente operacional usado por Company e Cooperative.- Se o mesmo evento precisar aparecer em superfícies diferentes, deve criar uma
Notificationporaudience. payloaddeve conter apenas dados não sensíveis e necessários para renderização.status = CANCELEDimpede novas entregas para destinatários.status = EXPIREDindica que a notificação não deve mais aparecer como ativa.- Remoção lógica não deve apagar recipients já criados.
Enums
NotificationAudience
| Valor | Descrição |
|---|---|
CUSTOMER | App ou superfície do passageiro |
DRIVER | App ou superfície do motorista |
OPS | Operação de Company ou Cooperative |
BKO | BackOffice interno da plataforma |
NotificationType
| Valor | Descrição |
|---|---|
SUPPORT_CASE_CREATED | Chamado de suporte criado |
SUPPORT_CASE_MESSAGE_CREATED | Nova mensagem em chamado de suporte |
SUPPORT_CASE_ASSIGNED | Chamado atribuído a um atendente |
SUPPORT_CASE_STATUS_CHANGED | Status do chamado alterado |
ROUTE_APPROVAL_REQUESTED | Aprovação de rota solicitada |
ROUTE_APPROVED | Rota aprovada |
ROUTE_REJECTED | Rota rejeitada |
TRIP_STATUS_CHANGED | Status da viagem alterado |
TRIP_EVENT_RECORDED | Evento operacional da viagem registrado |
PAYMENT_CONFIRMED | Pagamento confirmado |
PAYMENT_FAILED | Pagamento falhou |
TRANSFER_PROCESSED | Transferência processada |
TRANSFER_FAILED | Transferência falhou |
ORDER_CONFIRMED | Pedido confirmado |
ORDER_CANCELLED | Pedido cancelado |
TICKET_CANCELLED | Ticket cancelado |
BENEFIT_REQUEST_APPROVED | Solicitação de benefício aprovada |
BENEFIT_REQUEST_REJECTED | Solicitação de benefício rejeitada |
EXPORT_COMPLETED | Exportação concluída |
EXPORT_FAILED | Exportação falhou |
NotificationPriority
| Valor | Descrição |
|---|---|
LOW | Informativa |
NORMAL | Prioridade padrão |
HIGH | Requer atenção |
URGENT | Crítica para operação |
NotificationStatus
| Valor | Descrição |
|---|---|
ACTIVE | Notificação ativa |
CANCELED | Notificação cancelada antes ou durante a entrega |
EXPIRED | Notificação expirada |