Aller au contenu principal

Notifications in-app (cloche 🔔)

Les notifications in-app te préviennent des événements qui te concernent directement, sans dépendre des emails.

Où les voir ?

  • Cloche 🔔 en haut de la sidebar (badge rouge avec le nombre de non-lues)
  • Page dédiée /notifications (liste complète + filtres)

Bell icon — placeholder

Types de notifications

TypeQuandÉmetteur
INFORMATIONLettre circulaire publiée qui te cibleAuteur de l'info
TRANSFER_INITIATEDTransfert qui va passer par toiDemandeur du transfert
TRANSFER_VALIDATEDTransfert validé à une étapeValidateur
TRANSFER_REJECTEDTransfert rejetéValidateur (avec motif)
REPORT_SUBMITTEDRapport soumis qui te concerneAuteur du rapport
REPORT_VALIDATEDTon rapport a été validéValidateur
REPORT_REJECTEDTon rapport a été rejetéValidateur (avec motif)
USER_INVITEDNouveau responsable invité dans ton scopeInviteur

Modèle (table notifications)

ChampSens
recipient_user_idÀ qui s'adresse la notif (NULL = pas affiché côté UI)
recipient_org_idContexte org_unit (indicatif)
typeCode (cf. tableau ci-dessus)
titleTitre court
bodyCorps (extrait, 200 caractères max)
payloadjsonb contextuel (information_id, transfer_id, etc.)
priority1 (haute) → 5 (basse)
statusUNREAD / READ / ARCHIVED
read_atHorodatage de lecture

Doctrine — Fanout par user (mig 0280)

Une notification doit avoir recipient_user_id renseigné pour être visible côté UI. Les RPCs (ex: rpc_informations_publish) fanout la notification : 1 ligne par destinataire user, exactement aligné sur les recipients email.

Référence : commit 8972f31.

Cohérence email ↔ in-app

Pour le module Informations :

  • Les destinataires email sont calculés par fn_information_email_recipients
  • Les destinataires in-app utilisent la même fonction (mig 0280)
  • → un user qui reçoit l'email reçoit aussi la notif, et vice-versa

Marquer comme lu

  • Cliquer sur la notification dans la cloche → ouvre la cible (info / transfert / rapport) ET marque comme READ
  • Ou aller sur /notifications → bouton Marquer tout comme lu

Voir aussi