# language: fr

@api @audio-guides @sync @mvp
Fonctionnalité: Sauvegarde et synchronisation de progression

  En tant qu'utilisateur
  Je veux que ma progression soit sauvegardée et synchronisée
  Afin d'accéder à mon historique sur tous mes appareils

  Scénario: Sauvegarde en temps réel dans le cloud
    Étant donné un utilisateur "alice@roadwave.fr" connecté
    Quand elle complète une séquence
    Alors la progression est sauvegardée dans le cloud immédiatement
    Et un indicateur "Synchronisé" s'affiche
    Et un événement "PROGRESS_CLOUD_SAVED" est enregistré

  Scénario: Synchronisation automatique au changement d'appareil
    Étant donné un utilisateur "bob@roadwave.fr" sur iPhone
    Quand il se connecte sur iPad
    Alors la progression est téléchargée automatiquement
    Et synchronisée en arrière-plan (< 2s)
    Et un événement "PROGRESS_SYNCED_DEVICE_SWITCH" est enregistré

  Scénario: Résolution de conflits de synchronisation
    Étant donné un utilisateur "charlie@roadwave.fr" avec 2 appareils
    Et il écoute hors ligne sur les deux simultanément
    Quand les deux se reconnectent avec progressions différentes
    Alors le système fusionne intelligemment les données
    Et conserve la progression la plus avancée
    Et un événement "SYNC_CONFLICT_RESOLVED" est enregistré

  Scénario: Indicateur de statut de synchronisation
    Étant donné un utilisateur "david@roadwave.fr"
    Alors il voit l'icône de statut sync:
      | État              | Icône | Couleur |
      | Synchronisé       | ✓     | Vert    |
      | En cours de sync  | ↻     | Orange  |
      | Non synchronisé   | ⚠     | Rouge   |
    Et un événement "SYNC_STATUS_DISPLAYED" est enregistré

  Scénario: Sauvegarde locale en mode hors ligne
    Étant donné un utilisateur "eve@roadwave.fr" sans connexion
    Quand elle écoute un audio-guide hors ligne
    Alors toutes les données sont sauvegardées localement
    Et marquées "En attente de synchronisation"
    Et synchronisées automatiquement lors de la reconnexion
    Et un événement "OFFLINE_PROGRESS_QUEUED" est enregistré

  Scénario: Export de l'historique de progression
    Étant donné un utilisateur "frank@roadwave.fr"
    Quand il demande un export de ses données (RGPD)
    Alors il reçoit un fichier JSON avec:
      | Donnée                    | Format   |
      | Audio-guides écoutés      | Liste    |
      | Séquences par guide       | Détail   |
      | Timestamps                | ISO 8601 |
      | Positions GPS visitées    | Lat/Lon  |
    Et un événement "PROGRESS_EXPORTED" est enregistré

  Scénario: Suppression de progression sur demande
    Étant donné un utilisateur "grace@roadwave.fr"
    Quand elle supprime un audio-guide de son historique
    Alors toutes les données associées sont supprimées
    Et la synchronisation propage la suppression
    Et un événement "PROGRESS_DELETED" est enregistré

  Scénario: Métriques de fiabilité de la synchronisation
    Étant donné que 100 000 synchronisations ont eu lieu
    Alors les indicateurs suivants sont disponibles:
      | Métrique                      | Valeur cible |
      | Taux de succès de sync        | > 99.5%      |
      | Temps moyen de synchronisation| < 2s         |
      | Taux de conflits              | < 0.5%       |
      | Taux de résolution automatique| > 95%        |
    Et les métriques sont exportées vers le monitoring
