Cas d'utilisation — Notifications¶
Ce document décrit les cas d'utilisation du domaine Notifications.
UC-NOTIF-001 — Consulter ses notifications¶
Acteur : Joueur authentifié
Préconditions : L'utilisateur est connecté
Scénario principal :
- L'utilisateur accède à la page Notifications via la barre de navigation
- Le système affiche la liste des notifications groupées par jour
- Les notifications non lues sont visuellement distinguées (indicateur bleu)
- L'utilisateur peut filtrer par catégorie (Tout / Matchs / Scores)
Scénarios alternatifs :
- Aucune notification : Le système affiche un message vide avec l'icône
notifications_off - Erreur réseau : Le système affiche un message d'erreur
UC-NOTIF-002 — Marquer une notification comme lue¶
Acteur : Joueur authentifié
Préconditions : L'utilisateur a au moins une notification non lue
Scénario principal :
- L'utilisateur clique sur une notification non lue
- Le système marque la notification comme lue
- Le compteur de notifications non lues est décrémenté
- L'utilisateur est redirigé vers la page de détail de la partie associée
UC-NOTIF-003 — Marquer toutes les notifications comme lues¶
Acteur : Joueur authentifié
Préconditions : L'utilisateur a au moins une notification non lue
Scénario principal :
- L'utilisateur clique sur le bouton « Tout marquer comme lu » (icône ✓✓)
- Le système marque toutes les notifications de l'utilisateur comme lues
- Le compteur de notifications non lues passe à 0
- Les indicateurs visuels non lus disparaissent
UC-NOTIF-004 — Supprimer une notification¶
Acteur : Joueur authentifié
Préconditions : L'utilisateur a au moins une notification
Scénario principal :
- L'utilisateur clique sur le bouton de suppression (×) d'une notification
- Le système supprime la notification de manière définitive
- La notification disparaît de la liste
UC-NOTIF-005 — Recevoir une notification automatique¶
Acteur : Système (déclencheur automatique)
Préconditions : Un événement métier est déclenché (rejoindre/quitter/annuler une partie, soumettre/valider/contester un score)
Scénario principal :
- Un joueur effectue une action déclenchant une notification (cf. RB-NOTIF-002)
- Le système crée une notification pour chaque joueur concerné
- Le compteur de notifications non lues est incrémenté pour chaque destinataire
- Le badge dans la barre de navigation est mis à jour au prochain rafraîchissement (≤ 30s)
UC-NOTIF-006 — Configurer ses préférences de notification¶
Acteur : Joueur authentifié
Préconditions : L'utilisateur est connecté
Scénario principal :
- L'utilisateur accède à Paramètres → Notifications (
/player/settings/notifications) - Le système affiche la liste de tous les types de notifications configurables groupés par catégorie (Parties, Scores, Messages, Réservations, Club)
- Pour chaque type, l'utilisateur peut activer/désactiver individuellement les canaux applicables : In-App, Push, Email
- Les canaux non applicables pour un type (ex : email pour
game_nearby) sont affichés grisés et non modifiables - L'utilisateur peut activer/désactiver toutes les notifications en une action (mode silencieux)
- Le système persiste les préférences en temps réel via l'API (mise à jour optimiste en local)
Scénarios alternatifs :
- Erreur serveur : Le système revient à l'état précédent et affiche un message d'erreur
- Premier accès : Tous les canaux applicables sont activés par défaut
Types de notifications configurables :
| Type | Catégorie | In-App | Push | |
|---|---|---|---|---|
game_nearby | Parties | ✓ | ✓ | — |
participation_request | Parties | ✓ | ✓ | ✓ |
participation_approved | Parties | ✓ | ✓ | ✓ |
participation_rejected | Parties | ✓ | ✓ | ✓ |
game_joined | Parties | ✓ | ✓ | ✓ |
game_left | Parties | ✓ | ✓ | ✓ |
game_cancelled | Parties | ✓ | ✓ | ✓ |
game_reminder | Parties | ✓ | ✓ | ✓ |
game_invitation | Parties | ✓ | ✓ | ✓ |
score_submitted | Scores | ✓ | ✓ | ✓ |
score_validated | Scores | ✓ | ✓ | ✓ |
score_contested | Scores | ✓ | ✓ | ✓ |
score_finalized | Scores | ✓ | ✓ | ✓ |
message_received | Messages | ✓ | ✓ | — |
reservation_request | Réservations | ✓ | ✓ | ✓ |
reservation_accepted | Réservations | ✓ | ✓ | ✓ |
reservation_rejected | Réservations | ✓ | ✓ | ✓ |
club_validated | Club | ✓ | ✓ | ✓ |
club_rejected | Club | ✓ | ✓ | ✓ |
UC-NOTIF-007 — Rappel automatique avant une partie¶
Acteur : Système (tâche planifiée)
Préconditions : Une partie est confirmée et le délai de rappel configuré est atteint
Scénario principal :
- Toutes les 10 minutes, la commande
games:send-reminderss'exécute - Le système récupère les parties dont le début est dans
{match_reminder_delay}heures (±10 min) - Pour chaque partie trouvée sans
reminder_sent_at, le système envoie une notificationgame_reminderà tous les joueurs confirmés - Le champ
reminder_sent_atest marqué sur la partie pour éviter les doublons
Règles métier :
- Le délai de rappel est configurable via
app_settings.match_reminder_delay(en heures, défaut 2h) - Un rappel n'est envoyé qu'une seule fois par partie (idempotent via
reminder_sent_at) - Les préférences de notification utilisateur sont respectées (si le canal est désactivé, la notification n'est pas créée)