# language: fr

@api @moderation @scoring @mvp
Fonctionnalité: Score de fiabilité et priorisation des signalements

  En tant que système de modération
  Je veux prioriser les signalements selon la fiabilité du rapporteur
  Afin d'optimiser le traitement par les modérateurs

  Scénario: Calcul du score de fiabilité
    Étant donné un utilisateur "alice@roadwave.fr" avec historique:
      | Signalements totaux | Validés | Rejetés | Taux de précision |
      | 50                  | 48      | 2       | 96%               |
    Alors son score de fiabilité est: 96/100
    Et un événement "RELIABILITY_SCORE_CALCULATED" est enregistré

  Scénario: Priorisation haute pour utilisateurs fiables
    Étant donné un utilisateur avec score 95+
    Quand il fait un signalement
    Alors le signalement est marqué "Priorité haute"
    Et traité en < 2 heures
    Et un événement "HIGH_PRIORITY_REPORT_QUEUED" est enregistré

  Scénario: Priorisation normale pour nouveaux utilisateurs
    Étant donné un nouvel utilisateur sans historique
    Quand il fait un signalement
    Alors le signalement est marqué "Priorité normale"
    Et traité en < 24 heures
    Et un événement "NORMAL_PRIORITY_REPORT_QUEUED" est enregistré

  Scénario: Priorisation basse pour utilisateurs peu fiables
    Étant donné un utilisateur avec score < 60
    Quand il fait un signalement
    Alors le signalement est marqué "Priorité basse"
    Et traité en < 72 heures
    Et nécessite une vérification renforcée
    Et un événement "LOW_PRIORITY_REPORT_QUEUED" est enregistré

  Scénario: Augmentation du score après signalements validés
    Étant donné un utilisateur avec score 70
    Quand 10 signalements consécutifs sont validés
    Alors le score passe à 85
    Et il monte de catégorie (basse → normale)
    Et un événement "RELIABILITY_SCORE_INCREASED" est enregistré

  Scénario: Diminution du score après faux signalements
    Étant donné un utilisateur avec score 90
    Quand 5 signalements consécutifs sont rejetés
    Alors le score passe à 75
    Et il redescend de catégorie (haute → normale)
    Et un avertissement est envoyé
    Et un événement "RELIABILITY_SCORE_DECREASED" est enregistré

  Scénario: Réinitialisation du score après inactivité
    Étant donné un utilisateur inactif pendant 6 mois
    Quand il refait un signalement
    Alors son score est réinitialisé à 50 (neutre)
    Et il doit reconstruire sa réputation
    Et un événement "RELIABILITY_SCORE_RESET" est enregistré

  Scénario: Affichage du score dans le profil
    Étant donné un utilisateur "bob@roadwave.fr"
    Quand il consulte son profil
    Alors il voit:
      | Métrique               | Valeur  |
      | Score de fiabilité     | 87/100  |
      | Signalements validés   | 145     |
      | Taux de précision      | 87%     |
      | Catégorie              | Haute   |
    Et un graphique d'évolution du score
    Et un événement "RELIABILITY_SCORE_VIEWED" est enregistré

  Scénario: Métriques de performance de la priorisation
    Étant donné que 10 000 signalements ont été traités
    Alors les indicateurs suivants sont disponibles:
      | Métrique                            | Valeur   |
      | Temps moyen de traitement (haute)   | 1.5h     |
      | Temps moyen de traitement (normale) | 18h      |
      | Temps moyen de traitement (basse)   | 48h      |
      | Taux de validation (haute)          | 92%      |
      | Taux de validation (basse)          | 65%      |
    Et les métriques sont exportées vers le monitoring
