Skip to main content
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

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, resource e resourceId, sem FK direta.

Regras de negócio

  • Notification guarda 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 type e pelo recurso relacionado; não existe actionUrl.
  • companyId, cooperativeId e transportOperatorId não ficam na notificação. O escopo é resolvido por organizationId, audience, memberships e recurso relacionado.
  • audience = OPS representa o ambiente operacional usado pela Cooperative.
  • Se o mesmo evento precisar aparecer em superfícies diferentes, deve criar uma Notification por audience.
  • payload deve conter apenas dados não sensíveis e necessários para renderização.
  • status = CANCELED impede novas entregas para destinatários.
  • status = EXPIRED indica que a notificação não deve mais aparecer como ativa.
  • Remoção lógica não deve apagar recipients já criados.
  • Criação, cancelamento e expiração emitem eventos notification.* e solicitam audit_log.requested com resource = NOTIFICATION.

Enums

NotificationAudience

NotificationType

NotificationPriority

NotificationStatus

Example