Aller au contenu

Règles métier — Administration

Ce document constitue la source de vérité fonctionnelle pour l'espace d'administration de Primatch. Toute modification des règles métier doit être répercutée ici avant d'être implémentée.

Rôle administrateur

Seuls les utilisateurs ayant le rôle admin peuvent accéder à l'espace d'administration. Un middleware dédié (admin) protège toutes les routes admin côté API.


1. Tableau de bord (Dashboard)

KPIs temps réel

ID Règle
RB-ADMIN-001 Le dashboard affiche 5 KPIs temps réel : nombre total d'utilisateurs, nombre total de parties, nombre total de clubs, taux d'activité (%), nombre de clubs en attente.
RB-ADMIN-002 Le taux d'activité est calculé comme le pourcentage d'utilisateurs ayant joué au moins une partie dans les 30 derniers jours.
RB-ADMIN-003 Les tendances d'inscription et de parties sont affichées sous forme de courbes historiques (6 derniers mois).

Distribution des niveaux

ID Règle
RB-ADMIN-004 La distribution des joueurs par niveau est affichée sous forme de barres de progression montrant le nombre de joueurs dans chaque palier.

Clubs en attente

ID Règle
RB-ADMIN-005 Les 5 derniers clubs en attente de validation sont affichés dans le dashboard avec un accès rapide à la page de gestion des clubs.

2. Gestion des niveaux de jeu

CRUD des niveaux

ID Règle
RB-ADMIN-010 Un niveau de jeu est défini par : nom (unique), valeur minimale, valeur maximale, ordre de tri.
RB-ADMIN-011 Les plages de valeurs [min_value, max_value] ne doivent pas se chevaucher entre niveaux.
RB-ADMIN-012 L'administrateur peut créer, modifier et supprimer des niveaux de jeu.
RB-ADMIN-013 La suppression d'un niveau est irréversible (suppression physique).

Restauration des défauts

ID Règle
RB-ADMIN-014 L'action « Restaurer les défauts » supprime tous les niveaux existants et recrée les niveaux par défaut définis dans le seeder.
RB-ADMIN-015 ⚠️ La restauration des défauts est une opération destructrice qui affecte les niveaux de tous les joueurs.

3. Gestion des utilisateurs

Consultation

ID Règle
RB-ADMIN-020 L'administrateur peut consulter la liste paginée de tous les utilisateurs de la plateforme.
RB-ADMIN-021 La recherche s'effectue par nom, prénom ou email (recherche textuelle).
RB-ADMIN-022 Le filtrage par rôle est disponible : player, club_manager, admin.
RB-ADMIN-023 La fiche détaillée d'un utilisateur affiche ses statistiques (parties jouées, victoires, défaites) et les clubs qu'il gère.

Indicateur de fiabilité

ID Règle
RB-ADMIN-024 Le score de fiabilité (reliability_score) est affiché avec un code couleur : vert (≥ 80), orange (50–79), rouge (< 50).

4. Gestion des clubs

Cycle de vie d'un club

stateDiagram-v2
    [*] --> pending : Inscription
    pending --> validated : Approbation admin
    pending --> suspended : Rejet admin
    validated --> suspended : Suspension admin
    suspended --> validated : Réactivation admin
ID Règle
RB-ADMIN-030 Un club nouvellement inscrit a le statut pending (en attente de validation).
RB-ADMIN-031 L'administrateur peut approuver un club → statut validated.
RB-ADMIN-032 L'administrateur peut rejeter un club → statut suspended.
RB-ADMIN-033 L'administrateur peut suspendre un club validé → statut suspended.
RB-ADMIN-034 L'administrateur peut créer, modifier et supprimer des clubs manuellement.

Filtrage

ID Règle
RB-ADMIN-035 La liste des clubs est filtrable par statut : tous, en attente (pending), suspendus (suspended).
RB-ADMIN-036 La recherche textuelle s'effectue sur le nom et la ville du club.

5. Paramètres de l'application

Documents légaux

ID Règle
RB-ADMIN-040 L'administrateur peut modifier le contenu des documents légaux : CGU, Politique de confidentialité, Mentions légales.
RB-ADMIN-041 Le contenu légal est au format texte libre (HTML autorisé).
RB-ADMIN-042 Les documents légaux sont accessibles publiquement en lecture seule via une route dédiée (GET /settings/{key}).

FAQ

ID Règle
RB-ADMIN-045 L'administrateur peut gérer la FAQ sous forme de paires question/réponse.
RB-ADMIN-046 Les questions peuvent être ajoutées, modifiées et supprimées individuellement.
RB-ADMIN-047 La FAQ est stockée comme un tableau JSON sérialisé dans les paramètres.

Configuration système

ID Règle
RB-ADMIN-050 Le délai de rappel de match est configurable : 1 heure, 2 heures ou 24 heures.
RB-ADMIN-051 Les modifications de paramètres sont appliquées en batch via un seul appel API.

6. Sécurité et accès

ID Règle
RB-ADMIN-060 Toutes les routes admin sont protégées par le middleware auth:api (JWT) et le middleware admin (vérification du rôle).
RB-ADMIN-061 Un utilisateur non-admin qui tente d'accéder à une route admin reçoit une réponse 403 Forbidden.
RB-ADMIN-062 Côté frontend, le ProtectedRoute vérifie le rôle admin et redirige vers la page d'accueil si le rôle ne correspond pas.