# language: fr

@ui @moderation @historique
Fonctionnalité: Historique des signalements utilisateur (Mobile)
  En tant qu'utilisateur
  Je veux consulter l'historique de mes signalements
  Afin de suivre leur traitement et comprendre les décisions prises

  # 14.1.3 - Historique personnel des signalements

  Contexte:
    Étant donné que je suis connecté à l'application mobile
    Et que j'ai envoyé des signalements précédemment

  # Accès à l'historique

  Scénario: Accéder à l'historique depuis le profil
    Étant donné que je suis dans mon profil utilisateur
    Quand je scroll vers le bas
    Alors je vois une section "📊 Modération"
    Et je vois l'option "Mes signalements"
    Et je vois le nombre de signalements en badge: "(12)"
    Et je peux cliquer pour accéder à l'historique

  Scénario: Accéder à l'historique depuis le toast de confirmation
    Étant donné que je viens d'envoyer un signalement
    Et que le toast de confirmation est affiché
    Quand je clique sur "Voir mes signalements"
    Alors je suis redirigé vers la page "Mes signalements"
    Et la page s'affiche en moins de 500ms
    Et mon dernier signalement est en tête de liste

  # Affichage de la liste des signalements

  Scénario: Affichage de l'historique vide
    Étant donné que je n'ai jamais envoyé de signalement
    Quand j'ouvre "Mes signalements"
    Alors je vois un message:
      """
      Aucun signalement pour le moment

      Vous pouvez signaler un contenu inapproprié
      depuis le menu de n'importe quel contenu.
      """
    Et je vois une illustration vide sympathique
    Et un bouton "Découvrir les règles de la communauté"

  Scénario: Liste des signalements avec informations clés
    Étant donné que j'ai envoyé 5 signalements
    Quand j'ouvre "Mes signalements"
    Alors je vois une liste de 5 cartes de signalements
    Et chaque carte affiche:
      | information           | exemple                              | position       |
      | Statut badge          | "En cours 🔍" (orange)               | Haut à droite  |
      | Titre du contenu      | "Podcast #42"                        | Titre          |
      | Créateur              | "@pseudo_createur"                   | Sous-titre     |
      | Catégorie             | "🚫 Haine & violence"                | Ligne 1        |
      | Date                  | "Il y a 2 jours" ou "15/01/2026"     | Ligne 2        |
      | Mon commentaire       | "Propos discriminatoires à 2:30"     | Ligne 3 (si rempli) |
    Et les cartes sont triées par date décroissante (plus récent en haut)

  Plan du Scénario: Couleur du badge selon statut
    Étant donné que j'ai un signalement avec le statut "<statut>"
    Quand j'affiche l'historique
    Alors le badge affiché est "<badge>"
    Et la couleur du badge est "<couleur>"

    Exemples:
      | statut      | badge           | couleur      |
      | En cours    | En cours 🔍     | Orange       |
      | Traité      | Traité ✓        | Vert         |
      | Rejeté      | Rejeté ✗        | Rouge        |

  Scénario: Affichage de la date relative
    Étant donné que j'ai envoyé des signalements à différentes dates
    Quand j'affiche l'historique
    Alors les dates récentes s'affichent en format relatif:
      | date signalement        | affichage        |
      | Il y a 5 minutes        | "À l'instant"    |
      | Il y a 2 heures         | "Il y a 2h"      |
      | Il y a 1 jour           | "Hier"           |
      | Il y a 3 jours          | "Il y a 3j"      |
      | Il y a 10 jours         | "15/01/2026"     |
    Et les dates anciennes (>7 jours) sont en format absolu

  # Détails d'un signalement

  Scénario: Consulter les détails d'un signalement
    Étant donné que j'ai envoyé un signalement il y a 3 jours
    Quand je clique sur la carte du signalement
    Alors une page de détails s'affiche
    Et je vois toutes les informations:
      | section              | contenu                                    |
      | En-tête              | Titre du contenu + lien vers le contenu    |
      | Créateur             | Pseudo + lien vers profil créateur         |
      | Ma catégorie         | 🚫 Haine & violence                        |
      | Mon commentaire      | "Propos discriminatoires à 2:30"           |
      | Date d'envoi         | "Envoyé le 15/01/2026 à 14:32"             |
      | Statut actuel        | "En cours 🔍 - En attente de traitement"   |
      | Délai estimé         | "Traitement sous 24-48h"                   |
    Et je vois un bouton "Retour à mes signalements"

  Scénario: Lien vers le contenu signalé
    Étant donné que je consulte les détails d'un signalement
    Et que le contenu signalé est toujours en ligne
    Quand je clique sur le titre du contenu
    Alors je suis redirigé vers la page du contenu
    Et je peux réécouter le contenu si besoin
    Et un badge "Signalé par vous" s'affiche discrètement

  Scénario: Contenu supprimé suite au signalement
    Étant donné que le contenu que j'ai signalé a été supprimé
    Quand je consulte les détails du signalement
    Alors le titre du contenu est affiché en gris barré
    Et un message s'affiche: "Ce contenu a été retiré de la plateforme"
    Et je ne peux pas accéder au contenu
    Et le statut est "Traité ✓"

  # Notifications de changement de statut

  Scénario: Notification quand un signalement est traité
    Étant donné que j'ai signalé un contenu il y a 24h
    Quand le modérateur traite mon signalement
    Et que le contenu est retiré
    Alors je reçois une notification push:
      """
      ✓ Votre signalement a été traité
      Le contenu a été retiré de la plateforme.
      """
    Et je reçois une notification in-app identique
    Et le statut dans mon historique passe à "Traité ✓"
    Et un badge (1) apparaît sur l'onglet "Mes signalements"

  Scénario: Notification quand un signalement est rejeté
    Étant donné que j'ai signalé un contenu
    Quand le modérateur rejette mon signalement
    Alors je reçois une notification:
      """
      Votre signalement a été examiné
      Le contenu ne viole pas les règles de la communauté.
      """
    Et le statut dans mon historique passe à "Rejeté ✗"
    Et je peux voir la raison du rejet dans les détails

  Scénario: Affichage de la raison du rejet
    Étant donné que mon signalement a été rejeté
    Quand je consulte les détails du signalement
    Alors je vois une section "Raison du rejet":
      """
      Après examen, le contenu ne viole pas nos règles.
      Le passage mentionné est dans un contexte éducatif.
      """
    Et la raison est claire et compréhensible
    Et je peux apprendre pour améliorer mes futurs signalements

  # Filtres et recherche

  Scénario: Filtrer les signalements par statut
    Étant donné que j'ai 20 signalements avec différents statuts
    Quand j'ouvre l'historique
    Alors je vois des onglets de filtres:
      | onglet      | nombre |
      | Tous (20)   | 20     |
      | En cours (8)| 8      |
      | Traités (9) | 9      |
      | Rejetés (3) | 3      |
    Et je peux cliquer sur un onglet pour filtrer
    Et la liste se met à jour instantanément

  Scénario: Rechercher dans mes signalements
    Étant donné que j'ai 50 signalements
    Quand j'ouvre la barre de recherche
    Et que je tape "podcast"
    Alors seuls les signalements contenant "podcast" s'affichent:
      | recherche dans       |
      | Titre du contenu     |
      | Pseudo du créateur   |
      | Mon commentaire      |
    Et les résultats sont mis en évidence
    Et la recherche est instantanée (pas de délai)

  # Pull-to-refresh

  Scénario: Actualiser la liste des signalements
    Étant donné que je suis sur la page "Mes signalements"
    Quand je tire vers le bas (pull-to-refresh)
    Alors un spinner de chargement s'affiche
    Et la liste est actualisée depuis le serveur
    Et les nouveaux statuts sont affichés
    Et un toast s'affiche: "✓ Mis à jour"

  # Pagination et performance

  Scénario: Chargement progressif des signalements (pagination)
    Étant donné que j'ai 100 signalements
    Quand j'ouvre "Mes signalements"
    Alors seuls les 20 premiers signalements sont chargés
    Et quand je scroll en bas de liste
    Alors les 20 suivants sont chargés automatiquement
    Et un loader discret s'affiche pendant le chargement
    Et l'UX est fluide sans saccade

  Scénario: Performance de la liste
    Étant donné que j'ai 100 signalements
    Quand j'ouvre l'historique
    Alors le premier affichage prend <500ms
    Et le scroll est fluide (60 FPS)
    Et les images/avatars se chargent en lazy loading
    Et la mémoire utilisée reste <100 MB

  # État vide pour chaque filtre

  Scénario: Aucun signalement "En cours"
    Étant donné que tous mes signalements ont été traités
    Quand je clique sur l'onglet "En cours"
    Alors je vois un message:
      """
      Aucun signalement en cours

      Tous vos signalements ont été traités.
      """
    Et je vois une illustration vide

  Scénario: Aucun signalement "Rejeté"
    Étant donné que tous mes signalements ont été acceptés
    Quand je clique sur l'onglet "Rejetés"
    Alors je vois un message:
      """
      Aucun signalement rejeté

      Tous vos signalements étaient pertinents ! 🎉
      """
    Et je vois un message encourageant

  # Dark mode et accessibilité

  Scénario: Support du dark mode
    Étant donné que j'ai activé le dark mode
    Quand j'affiche "Mes signalements"
    Alors les couleurs s'adaptent:
      | élément                | couleur light    | couleur dark      |
      | Fond page              | Blanc            | Noir (#121212)    |
      | Cartes                 | Gris clair       | Gris foncé        |
      | Texte principal        | Noir             | Blanc             |
      | Badge "En cours"       | Orange (#FF8C00) | Orange (#FFA500)  |
      | Badge "Traité"         | Vert (#28A745)   | Vert (#34D058)    |
      | Badge "Rejeté"         | Rouge (#DC3545)  | Rouge (#F85149)   |
    Et le contraste reste suffisant (WCAG AA)

  Scénario: Accessibilité pour lecteur d'écran
    Étant donné que j'utilise un lecteur d'écran
    Quand je navigue dans l'historique
    Alors chaque carte est annoncée clairement:
      """
      Signalement du contenu "Podcast #42" par @pseudo.
      Catégorie: Haine et violence.
      Statut: En cours d'examen.
      Envoyé il y a 2 jours.
      """
    Et je peux naviguer au clavier entre les cartes
    Et tous les boutons ont des labels descriptifs

  # Gestion d'erreur

  Scénario: Erreur réseau lors du chargement
    Étant donné que je n'ai pas de connexion internet
    Quand j'ouvre "Mes signalements"
    Alors un message d'erreur s'affiche:
      """
      Impossible de charger vos signalements
      Vérifiez votre connexion internet
      """
    Et un bouton "Réessayer" est affiché
    Et je peux cliquer pour réessayer

  Scénario: Cache local pour consultation hors ligne
    Étant donné que j'ai consulté mes signalements hier
    Et que je n'ai pas de connexion internet aujourd'hui
    Quand j'ouvre "Mes signalements"
    Alors les signalements en cache s'affichent
    Et un message discret indique:
      """
      📡 Mode hors ligne - Données mises en cache
      """
    Et je peux consulter les détails
    Mais les statuts peuvent ne pas être à jour

  # Coût et conformité

  Scénario: Coût de la fonctionnalité
    Étant donné que l'historique des signalements est en place
    Quand on évalue le coût
    Alors le développement est 100% interne (Flutter)
    Et aucun service tiers n'est utilisé
    Et le coût opérationnel est de 0€
    Et les notifications in-app sont gratuites

  Scénario: Conformité RGPD
    Étant donné que mes données de signalement sont stockées
    Quand je supprime mon compte
    Alors tous mes signalements sont anonymisés
    Et mes commentaires personnels sont supprimés
    Et seules les métadonnées nécessaires sont conservées (conformité DSA)
    Et je suis informé de cette procédure
