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)
![]()
Types de notifications
| Type | Quand | Émetteur |
|---|---|---|
INFORMATION | Lettre circulaire publiée qui te cible | Auteur de l'info |
TRANSFER_INITIATED | Transfert qui va passer par toi | Demandeur du transfert |
TRANSFER_VALIDATED | Transfert validé à une étape | Validateur |
TRANSFER_REJECTED | Transfert rejeté | Validateur (avec motif) |
REPORT_SUBMITTED | Rapport soumis qui te concerne | Auteur du rapport |
REPORT_VALIDATED | Ton rapport a été validé | Validateur |
REPORT_REJECTED | Ton rapport a été rejeté | Validateur (avec motif) |
USER_INVITED | Nouveau responsable invité dans ton scope | Inviteur |
Modèle (table notifications)
| Champ | Sens |
|---|---|
recipient_user_id | À qui s'adresse la notif (NULL = pas affiché côté UI) |
recipient_org_id | Contexte org_unit (indicatif) |
type | Code (cf. tableau ci-dessus) |
title | Titre court |
body | Corps (extrait, 200 caractères max) |
payload | jsonb contextuel (information_id, transfer_id, etc.) |
priority | 1 (haute) → 5 (basse) |
status | UNREAD / READ / ARCHIVED |
read_at | Horodatage de lecture |
Doctrine — Fanout par user (mig 0280)
Une notification doit avoir
recipient_user_idrenseigné 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