# 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