# language: fr

@api @audio-guides @navigation @mvp
Fonctionnalité: Gestion des points d'intérêt manqués

  En tant qu'utilisateur
  Je veux pouvoir gérer les points d'intérêt que j'ai manqués
  Afin de compléter mon expérience audio-guide même après avoir dépassé certains points

  Contexte:
    Étant donné que le système de gestion des points manqués respecte:
      | Paramètre                              | Valeur         |
      | Distance max pour considérer "manqué"  | 1 km           |
      | Temps max pour considérer "manqué"     | 10 minutes     |
      | Possibilité de retour arrière          | Oui            |
      | Lecture différée autorisée             | Oui            |

  Scénario: Détection automatique d'un point manqué en mode voiture
    Étant donné un utilisateur "alice@roadwave.fr" en mode voiture à 90 km/h
    Et elle suit l'audio-guide "Route des Châteaux de la Loire"
    Et le prochain point d'intérêt est le Château de Chaumont
    Quand elle dépasse le château sans entrer dans son rayon de déclenchement (400m)
    Et elle s'éloigne à plus de 1 km du point
    Alors le système marque le point comme "Manqué"
    Et une notification discrète s'affiche: "Point manqué : Château de Chaumont"
    Et le point apparaît dans la section "Points manqués" de la liste
    Et un événement "POI_MARKED_AS_MISSED" est enregistré avec raison: "out_of_range"
    Et la métrique "poi.missed.out_of_range" est incrémentée

  Scénario: Affichage de la liste des points manqués
    Étant donné un utilisateur "bob@roadwave.fr" qui a manqué 3 points sur 10
    Quand il ouvre la liste des séquences
    Alors il voit une section dédiée "Points manqués (3)":
      | Point d'intérêt      | Distance actuelle | Actions                    |
      | Château de Chaumont  | 15 km en arrière  | [Écouter] [Y retourner]    |
      | Musée de Cluny       | 8 km en arrière   | [Écouter] [Y retourner]    |
      | Rue Mouffetard       | 2 km en arrière   | [Écouter] [Y retourner]    |
    Et un compteur global affiche: "7/10 points visités"
    Et un événement "MISSED_POIS_LIST_VIEWED" est enregistré
    Et la métrique "missed_pois.list_viewed" est incrémentée

  Scénario: Écoute différée d'un point manqué sans retour physique
    Étant donné un utilisateur "charlie@roadwave.fr" qui a manqué le Château de Chaumont
    Et il est maintenant à 20 km du château
    Quand il clique sur "Écouter" dans la liste des points manqués
    Alors l'audio du Château de Chaumont démarre immédiatement
    Et un bandeau indique: "Écoute différée - Vous n'êtes pas sur place"
    Et le point reste marqué comme "Manqué mais écouté"
    Et un événement "MISSED_POI_LISTENED_REMOTE" est enregistré
    Et la métrique "missed_poi.listened.remote" est incrémentée

  Scénario: Navigation de retour vers un point manqué
    Étant donné un utilisateur "david@roadwave.fr" qui a manqué le Musée de Cluny
    Et il est à 5 km du musée
    Quand il clique sur "Y retourner" dans la liste des points manqués
    Alors l'application lance la navigation GPS vers le Musée de Cluny
    Et un itinéraire est calculé et affiché
    Et l'ETA est affiché: "12 min en voiture"
    Et un événement "NAVIGATION_TO_MISSED_POI_STARTED" est enregistré
    Et la métrique "missed_poi.navigation_started" est incrémentée

  Scénario: Retour physique et déclenchement automatique d'un point manqué
    Étant donné un utilisateur "eve@roadwave.fr" qui a manqué le Château de Chaumont
    Et elle a cliqué sur "Y retourner"
    Quand elle arrive dans le rayon de déclenchement du château (400m)
    Alors l'audio du château démarre automatiquement
    Et le point passe du statut "Manqué" à "Visité"
    Et une notification de succès s'affiche: "✓ Point complété : Château de Chaumont"
    Et un événement "MISSED_POI_COMPLETED" est enregistré
    Et la métrique "missed_poi.completed" est incrémentée

  Scénario: Proposition automatique de retour pour points manqués à proximité
    Étant donné un utilisateur "frank@roadwave.fr" qui a manqué la Rue Mouffetard
    Et il continue son parcours et arrive près d'un autre point
    Quand le système détecte qu'il est à 800m de la Rue Mouffetard
    Alors une notification proactive s'affiche: "Point manqué à proximité : Rue Mouffetard (800m). Y aller ?"
    Et deux boutons sont proposés: [Oui, y aller] [Non, continuer]
    Et un événement "MISSED_POI_PROXIMITY_SUGGESTION" est enregistré
    Et la métrique "missed_poi.proximity_suggestion" est incrémentée

  Scénario: Ignorance volontaire d'un point manqué
    Étant donné un utilisateur "grace@roadwave.fr" qui a manqué le Musée de Cluny
    Et elle ne souhaite pas y retourner
    Quand elle fait glisser le point vers la gauche dans la liste
    Et clique sur "Ignorer définitivement"
    Alors le point est retiré de la liste des points manqués
    Et il passe au statut "Ignoré"
    Et il ne sera plus proposé dans les suggestions
    Et un événement "MISSED_POI_IGNORED" est enregistré
    Et la métrique "missed_poi.ignored" est incrémentée

  Scénario: Réinitialisation d'un point ignoré
    Étant donné un utilisateur "henry@roadwave.fr" qui a ignoré le Musée de Cluny
    Quand il accède aux paramètres de l'audio-guide
    Et clique sur "Voir les points ignorés (1)"
    Alors il voit la liste: "Musée de Cluny - Ignoré"
    Quand il clique sur "Réactiver"
    Alors le point repasse en statut "Manqué"
    Et il réapparaît dans la liste des points manqués
    Et un événement "MISSED_POI_REACTIVATED" est enregistré
    Et la métrique "missed_poi.reactivated" est incrémentée

  Scénario: Marquage automatique comme manqué après délai en mode piéton
    Étant donné un utilisateur "iris@roadwave.fr" en mode piéton
    Et elle est à 150m du Panthéon depuis 15 minutes (stationnaire)
    Et elle n'a pas déclenché le point d'intérêt
    Quand elle reprend sa marche et s'éloigne à plus de 500m
    Alors le point est marqué comme "Manqué"
    Et une notification s'affiche: "Point manqué : Panthéon. Voulez-vous y retourner ?"
    Et un événement "POI_MARKED_AS_MISSED" est enregistré avec raison: "timeout_stationary"
    Et la métrique "poi.missed.timeout" est incrémentée

  Scénario: Statistiques des points manqués en fin de parcours
    Étant donné un utilisateur "jack@roadwave.fr" qui a terminé un audio-guide
    Et il a visité 7 points sur 10, manqué 2 points et ignoré 1 point
    Quand il consulte l'écran de fin de parcours
    Alors il voit les statistiques:
      | Métrique                 | Valeur              |
      | Points visités           | 7/10 (70%)          |
      | Points manqués           | 2 (Chaumont, Cluny) |
      | Points ignorés           | 1 (Rue Mouffetard)  |
      | Taux de complétion       | 70%                 |
      | Badge obtenu             | Explorateur Bronze  |
    Et un bouton "Compléter les points manqués" est proposé
    Et un événement "AUDIO_GUIDE_STATS_VIEWED" est enregistré

  Scénario: Reprise d'un audio-guide pour compléter les points manqués
    Étant donné un utilisateur "kate@roadwave.fr" qui a terminé un audio-guide avec 2 points manqués
    Quand elle clique sur "Compléter les points manqués"
    Alors l'audio-guide est réactivé en mode "Rattrapage"
    Et seuls les 2 points manqués sont actifs sur la carte
    Et les points déjà visités sont grisés
    Et la navigation se concentre uniquement sur les points manqués
    Et un événement "AUDIO_GUIDE_CATCH_UP_MODE" est enregistré
    Et la métrique "audio_guide.catch_up.started" est incrémentée

  Scénario: Badge de complétion "Perfectionniste" pour 100% de complétion
    Étant donné un utilisateur "luke@roadwave.fr" qui a visité 10/10 points
    Et il a initialement manqué 2 points mais y est retourné
    Quand il termine l'audio-guide avec 100% de complétion
    Alors un badge spécial "Perfectionniste" est débloqué
    Et une animation de célébration est affichée
    Et un événement "BADGE_PERFECTIONIST_UNLOCKED" est enregistré
    Et la métrique "badges.perfectionist.unlocked" est incrémentée

  Scénario: Notification push après 24h pour rappel des points manqués
    Étant donné un utilisateur "mary@roadwave.fr" qui a terminé un audio-guide hier
    Et elle a manqué 3 points sur 10
    Quand 24 heures se sont écoulées depuis la fin du parcours
    Alors une notification push est envoyée:
      "Vous avez manqué 3 points lors de votre visite du Quartier Latin. Voulez-vous les découvrir ?"
    Et un lien direct vers la liste des points manqués est inclus
    Et un événement "MISSED_POIS_REMINDER_SENT" est enregistré
    Et la métrique "missed_pois.reminder_sent" est incrémentée

  Scénario: Mode "Rattrapage intelligent" avec optimisation de l'itinéraire
    Étant donné un utilisateur "nathan@roadwave.fr" avec 3 points manqués:
      | Point                | Position actuelle | Distance |
      | Château de Chaumont  | 48.8475, 2.3450   | 12 km    |
      | Musée de Cluny       | 48.8505, 2.3434   | 8 km     |
      | Rue Mouffetard       | 48.8429, 2.3498   | 5 km     |
    Quand il clique sur "Itinéraire optimisé pour rattrapage"
    Alors le système calcule l'itinéraire le plus court pour visiter les 3 points:
      | Ordre | Point               | Distance cumulée |
      | 1     | Rue Mouffetard      | 5 km             |
      | 2     | Musée de Cluny      | 8.5 km           |
      | 3     | Château de Chaumont | 20.5 km          |
    Et l'ETA total est affiché: "1h 15min en voiture"
    Et un événement "OPTIMIZED_CATCH_UP_ROUTE_CALCULATED" est enregistré
    Et la métrique "missed_pois.optimized_route" est incrémentée

  Scénario: Désactivation de la détection automatique des points manqués
    Étant donné un utilisateur "olive@roadwave.fr" qui préfère une expérience libre
    Quand elle active l'option "Désactiver la détection des points manqués"
    Alors les points ne sont jamais marqués comme "Manqués"
    Et aucune notification de point manqué n'est affichée
    Et l'utilisateur peut toujours écouter tous les points manuellement
    Et un événement "MISSED_POIS_DETECTION_DISABLED" est enregistré
    Et la métrique "missed_pois.detection_disabled" est incrémentée

  Scénario: Métriques de performance de la gestion des points manqués
    Étant donné que 10 000 utilisateurs ont terminé des audio-guides
    Quand les métriques sont collectées
    Alors les indicateurs suivants sont disponibles:
      | Métrique                                  | Valeur moyenne |
      | Pourcentage de points manqués par parcours| 18%            |
      | Taux de retour aux points manqués         | 35%            |
      | Taux d'écoute différée (sans retour)      | 55%            |
      | Taux d'ignorance définitive               | 10%            |
      | Taux de complétion après rattrapage       | 92%            |
    Et les métriques sont exportées vers le système de monitoring
