# language: fr
Fonctionnalité: Gestion de l'historique et reproposition
  En tant que système de recommandation
  Je veux gérer l'historique d'écoute intelligemment
  Afin d'éviter les répétitions et offrir une découverte maximale

  Contexte:
    Étant donné que l'API RoadWave est disponible

  Scénario: Contenu écouté complètement (>80%) - jamais reproposé
    Étant donné qu'un utilisateur a écouté un contenu à 85%
    Quand l'algorithme génère les recommandations
    Alors ce contenu n'est jamais reproposé
    Et il est marqué comme "écouté" dans l'historique

  Scénario: Contenu écouté à 80% exactement - jamais reproposé
    Étant donné qu'un utilisateur a écouté un contenu exactement à 80%
    Quand l'algorithme génère les recommandations
    Alors ce contenu n'est pas reproposé (seuil >= 80%)

  Scénario: Contenu skippé rapidement (<10s) - ne pas reproposer
    Étant donné qu'un utilisateur a skippé un contenu après 8 secondes
    Quand l'algorithme génère les recommandations
    Alors ce contenu n'est pas reproposé (signal négatif fort)
    Et la jauge d'intérêt correspondante est réduite de 0.5%

  Scénario: Contenu skippé exactement à 10s - ne pas reproposer
    Étant donné qu'un utilisateur a skippé un contenu après exactement 10 secondes
    Quand l'algorithme génère les recommandations
    Alors ce contenu n'est pas reproposé (seuil < 10s strict)

  Scénario: Contenu partiellement écouté (10-80%) - reproposer avec reprise
    Étant donné qu'un utilisateur a écouté un contenu à 45%
    Et qu'il est arrivé à la position 2:30 (150 secondes)
    Quand l'algorithme propose à nouveau ce contenu
    Alors le contenu peut être reproposé
    Et la position de reprise est 150 secondes
    Et l'utilisateur voit "Reprendre à 2:30"

  Scénario: Contenu écouté à 11% - reproposition possible
    Étant donné qu'un utilisateur a écouté un contenu à 11%
    Quand l'algorithme génère les recommandations
    Alors ce contenu peut être reproposé (>10%)
    Et la position de reprise est sauvegardée

  Scénario: Contenu écouté à 79% - reproposition possible
    Étant donné qu'un utilisateur a écouté un contenu à 79%
    Quand l'algorithme génère les recommandations
    Alors ce contenu peut être reproposé (<80%)
    Et l'utilisateur peut terminer l'écoute

  Scénario: Audio-guide avec flag replayable=true
    Étant donné qu'un audio-guide a le flag "replayable = true"
    Et qu'un utilisateur l'a écouté à 95%
    Quand l'algorithme génère les recommandations
    Alors l'audio-guide peut être reproposé
    Et il est marqué comme "Écouté - Rejouable"

  Scénario: Podcast standard sans flag replayable
    Étant donné qu'un podcast n'a pas de flag replayable
    Et qu'un utilisateur l'a écouté à 90%
    Quand l'algorithme génère les recommandations
    Alors le podcast n'est jamais reproposé

  Scénario: Stockage dans user_content_history
    Étant donné qu'un utilisateur écoute un contenu
    Quand l'écoute se termine ou est skippée
    Alors les données suivantes sont enregistrées:
      | champ               | exemple              |
      | user_id             | user-123             |
      | content_id          | content-456          |
      | completion_rate     | 0.45 (45%)           |
      | last_position       | 150 (secondes)       |
      | listened_at         | 2026-01-21 14:30:00  |

  Scénario: Historique illimité stocké
    Étant donné qu'un utilisateur a écouté 5000 contenus
    Quand il consulte son historique
    Alors tous les 5000 contenus sont disponibles
    Et aucun contenu n'est supprimé automatiquement

  Scénario: Algorithme considère les 100 derniers pour performance
    Étant donné qu'un utilisateur a écouté 500 contenus
    Quand l'algorithme génère les recommandations
    Alors il vérifie uniquement les 100 derniers contenus pour exclusion
    Et cette limite est une optimisation de requête SQL

  Scénario: Export historique complet (RGPD)
    Étant donné qu'un utilisateur demande l'export RGPD
    Quand l'export est généré
    Alors l'historique complet est inclus avec:
      | information       | inclus |
      | Tous les contenus | ✅     |
      | Dates d'écoute    | ✅     |
      | Taux complétion   | ✅     |
      | Positions reprise | ✅     |

  Scénario: Reprise automatique d'un contenu partiellement écouté
    Étant donné que j'ai écouté un podcast à 60% (position 10:00)
    Quand ce podcast est reproposé par l'algorithme
    Et que je lance la lecture
    Alors l'écoute reprend automatiquement à 10:00
    Et je vois une notification "Reprise à 10:00"

  Scénario: Option "Reprendre du début" pour contenu partiellement écouté
    Étant donné que j'ai écouté un podcast à 60%
    Quand ce podcast est reproposé
    Alors je vois deux options:
      | option            | action                        |
      | Reprendre à 10:00 | Lecture à partir de 10:00     |
      | Depuis le début   | Lecture à partir de 0:00      |

  Scénario: Contenu écouté il y a 6 mois - toujours en historique
    Étant donné qu'un utilisateur a écouté un contenu il y a 6 mois à 90%
    Quand l'algorithme génère les recommandations
    Alors ce contenu n'est toujours pas reproposé
    Et l'historique n'a pas de limite temporelle

  Scénario: Nouveau contenu du même créateur après écoute complète
    Étant donné qu'un utilisateur a écouté un contenu de "Créateur A" à 90%
    Et que "Créateur A" publie un nouveau contenu
    Quand l'algorithme génère les recommandations
    Alors le nouveau contenu peut être recommandé
    Et seul l'ancien contenu est exclu (pas tout le créateur)

  Scénario: Statistiques personnelles d'historique
    Étant donné que je consulte mon profil
    Quand j'accède à la section "Historique"
    Alors je vois:
      | métrique                  | exemple       |
      | Nombre total d'écoutes    | 1,234         |
      | Heures écoutées           | 456h          |
      | Taux complétion moyen     | 72%           |
      | Top 5 catégories          | Voyage, Sport |

  Scénario: Filtrer l'historique par date
    Étant donné que je consulte mon historique
    Quand je filtre par "Dernière semaine"
    Alors seuls les contenus écoutés dans les 7 derniers jours sont affichés
    Et je peux exporter cette sélection
