# language: fr

Fonctionnalité: Création d'audio-guide multi-séquences
  En tant que créateur de contenu
  Je veux créer des audio-guides avec plusieurs séquences géolocalisées
  Afin d'offrir des expériences guidées adaptées aux différents modes de déplacement

  Contexte:
    Étant donné que l'application RoadWave est démarrée
    Et que le créateur "guide@example.com" est connecté
    Et que son compte est vérifié

  # 16.1 - Types d'audio-guides et modes de déplacement

  Plan du Scénario: Détection automatique du mode selon la vitesse
    Étant donné que l'utilisateur se déplace à <vitesse> km/h
    Quand la vitesse est calculée sur 30 secondes
    Alors le mode <mode> est suggéré automatiquement

    Exemples:
      | vitesse | mode       |
      | 3       | Piéton     |
      | 15      | Vélo       |
      | 35      | Voiture    |
      | 50      | Voiture    |

  Scénario: Suggestion de mode au démarrage avec confirmation
    Étant donné qu'un audio-guide "Safari du Paugre" est disponible
    Et que l'utilisateur se déplace à 35 km/h
    Quand l'audio-guide démarre
    Alors une popup s'affiche:
      """
      Détection : 🚗 Voiture. Est-ce correct ?
      [Oui] [Changer]
      """

  Scénario: Changement manuel du mode détecté
    Étant donné que le mode "Voiture" est suggéré automatiquement
    Quand l'utilisateur clique sur "Changer"
    Alors les 4 modes sont proposés:
      | mode       | emoji |
      | Piéton     | 🚶   |
      | Voiture    | 🚗   |
      | Vélo       | 🚴   |
      | Transport  | 🚌   |

  Plan du Scénario: Caractéristiques par mode de déplacement
    Étant donné un audio-guide configuré en mode <mode>
    Alors les paramètres suivants sont appliqués:
      | paramètre           | valeur                    |
      | Vitesse détection   | <vitesse_detection>       |
      | Déclenchement       | <declenchement>           |

    Exemples:
      | mode      | vitesse_detection | declenchement            |
      | Piéton    | <5 km/h           | Manuel (bouton Suivant)  |
      | Voiture   | >10 km/h          | Auto GPS + Manuel        |
      | Vélo      | 5-25 km/h         | Auto GPS + Manuel        |
      | Transport | Variable          | Auto GPS + Manuel        |

  # 16.1.2 - Création d'un audio-guide (côté créateur)

  Scénario: Accès au formulaire de création d'audio-guide
    Étant donné que le créateur est sur son dashboard
    Quand il clique sur "Créer un audio-guide"
    Alors le formulaire de création s'affiche
    Et le wizard guidé en 4 étapes est visible:
      | étape | description                      |
      | 1     | Infos générales                  |
      | 2     | Ajout séquences                  |
      | 3     | Preview carte                    |
      | 4     | Validation modération            |

  Scénario: Étape 1 - Informations générales obligatoires
    Étant donné que le créateur est sur l'étape 1 du wizard
    Quand il complète le formulaire
    Alors les champs suivants sont obligatoires:
      | champ               | contrainte           |
      | Titre               | 5-100 caractères     |
      | Description         | 10-500 caractères    |
      | Mode de déplacement | Choix parmi 4        |
      | Tags                | 1-3 tags             |
      | Classification âge  | Tout public/13+/16+/18+ |

  Scénario: Sélection du mode de déplacement
    Étant donné que le créateur crée un audio-guide
    Quand il sélectionne le mode "🚗 Voiture (GPS auto + manuel)"
    Alors le champ "Vitesse recommandée" s'affiche
    Et la plage suggérée est "30-50 km/h"

  Scénario: Validation du titre
    Étant donné que le créateur entre un titre
    Quand le titre contient moins de 5 caractères
    Alors un message d'erreur "Minimum 5 caractères" s'affiche
    Et le bouton "Suivant" est désactivé

  Scénario: Validation de la description
    Étant donné que le créateur entre une description
    Quand la description contient 520 caractères
    Alors un message d'erreur "Maximum 500 caractères" s'affiche
    Et les 20 caractères en trop sont surlignés en rouge

  Scénario: Étape 2 - Ajout de la première séquence
    Étant donné que le créateur est sur l'étape 2 "Ajout séquences"
    Quand il clique sur "Ajouter séquence"
    Alors le formulaire de séquence s'affiche avec:
      | champ                 | requis | note                              |
      | Titre séquence        | ✅     | 5-80 caractères                   |
      | Audio                 | ✅     | Upload MP3/AAC, max 200 MB        |
      | Point GPS             | ✅*    | *Sauf mode piéton                 |
      | Rayon déclenchement   | ✅*    | *Sauf mode piéton, 10-200m        |

  Scénario: Ajout du point GPS pour une séquence
    Étant donné que le créateur ajoute une séquence en mode "Voiture"
    Quand il clique sur "📍 Ajouter point GPS"
    Alors une carte s'affiche
    Et il peut:
      | action                        |
      | Cliquer sur la carte          |
      | Entrer coordonnées manuelles  |
      | Utiliser sa position actuelle |

  Scénario: Configuration du rayon de déclenchement avec preview
    Étant donné qu'un point GPS est défini à (43.1234, 2.5678)
    Quand le créateur ajuste le curseur de rayon
    Alors le rayon varie de 10m à 200m
    Et un cercle visuel est affiché sur la carte
    Et la valeur actuelle s'affiche "30m"

  Plan du Scénario: Rayon par défaut selon le mode
    Étant donné un audio-guide en mode <mode>
    Quand le créateur ajoute un point GPS
    Alors le rayon par défaut est <rayon_defaut>

    Exemples:
      | mode      | rayon_defaut |
      | Voiture   | 30m          |
      | Vélo      | 50m          |
      | Transport | 100m         |

  Scénario: Suggestion intelligente du rayon
    Étant donné un audio-guide en mode "Voiture" avec vitesse recommandée 30 km/h
    Quand le créateur ajoute un point GPS
    Alors une suggestion s'affiche: "Recommandé : 30m pour voiture à 30 km/h"

  Scénario: Upload audio pour une séquence
    Étant donné que le créateur crée une séquence "Introduction"
    Quand il upload un fichier audio de 5 MB
    Alors le fichier est vérifié:
      | vérification        | règle                |
      | Format              | MP3, AAC, M4A        |
      | Taille max          | 200 MB               |
      | Durée max           | 15 minutes           |

  Scénario: Ordre des séquences modifiable
    Étant donné un audio-guide avec 5 séquences:
      | ordre | titre              |
      | 1     | Introduction       |
      | 2     | Les lions          |
      | 3     | Les girafes        |
      | 4     | Les éléphants      |
      | 5     | Conclusion         |
    Quand le créateur glisse "Les éléphants" en position 2
    Alors l'ordre devient:
      | ordre | titre              |
      | 1     | Introduction       |
      | 2     | Les éléphants      |
      | 3     | Les lions          |
      | 4     | Les girafes        |
      | 5     | Conclusion         |

  Scénario: Nombre minimum de séquences requis
    Étant donné un audio-guide avec seulement 1 séquence
    Quand le créateur tente de passer à l'étape suivante
    Alors un message d'erreur s'affiche: "Minimum 2 séquences requis"
    Et le bouton "Suivant" est désactivé

  Scénario: Nombre maximum de séquences
    Étant donné un audio-guide avec 50 séquences
    Quand le créateur tente d'ajouter une 51ème séquence
    Alors un message d'erreur s'affiche: "Maximum 50 séquences par audio-guide"
    Et le bouton "+ Ajouter séquence" est désactivé

  Scénario: Étape 3 - Preview carte avec tracé et points
    Étant donné un audio-guide avec 5 séquences géolocalisées
    Quand le créateur accède à l'étape 3 "Preview carte"
    Alors une carte Leaflet s'affiche
    Et les éléments suivants sont visibles:
      | élément                    | description                              |
      | Markers numérotés          | 1, 2, 3, 4, 5 sur chaque point           |
      | Tracé entre points         | Ligne pointillée connectant les points   |
      | Cercles de déclenchement   | Rayon visuel autour de chaque point      |

  Scénario: Statistiques du parcours
    Étant donné un audio-guide avec les séquences suivantes:
      | séquence | durée | distance_au_suivant |
      | 1        | 2:15  | 150m                |
      | 2        | 3:42  | 200m                |
      | 3        | 4:10  | 320m                |
    Quand les statistiques sont calculées
    Alors le résumé suivant est affiché:
      | métrique         | valeur          |
      | Séquences        | 3 complètes     |
      | Durée totale     | 10:07           |
      | Distance totale  | 670m            |

  Scénario: Modification d'une séquence depuis la carte
    Étant donné que la preview carte est affichée
    Quand le créateur clique sur le marker "2"
    Alors une popup s'affiche avec:
      | information              |
      | Titre: "Les lions"       |
      | Durée: 3:42              |
      | Rayon: 30m               |
      | [✏️ Modifier]            |
      | [🗑️ Supprimer]           |

  Scénario: Zone de diffusion géographique
    Étant donné un audio-guide avec des points dans Paris
    Quand le créateur définit la zone de diffusion
    Alors il peut choisir:
      | type          | exemple                        |
      | Polygon       | Tracé manuel sur carte         |
      | Ville         | Paris (API Nominatim)          |
      | Département   | 75 - Paris                     |
      | Région        | Île-de-France                  |

  Scénario: Étape 4 - Publication et validation modération
    Étant donné un créateur qui publie ses 3 premiers audio-guides
    Quand il clique sur "✅ Publier audio-guide"
    Alors un message s'affiche:
      """
      Votre audio-guide est en cours de validation.
      Notre équipe le vérifiera sous 24-48h.
      Vous recevrez une notification dès validation.
      """

  Scénario: Publication directe pour créateurs expérimentés
    Étant donné un créateur ayant publié 5 audio-guides validés
    Et aucun strike actif
    Quand il publie un nouvel audio-guide
    Alors l'audio-guide est publié immédiatement
    Et il devient visible pour les utilisateurs
    Et aucune validation manuelle n'est requise

  Scénario: Mode piéton sans points GPS obligatoires
    Étant donné un audio-guide en mode "🚶 Piéton"
    Quand le créateur ajoute une séquence
    Alors le champ "Point GPS" est optionnel
    Et le champ "Rayon déclenchement" est masqué
    Et un message info s'affiche: "Mode manuel : les séquences se déclenchent au clic utilisateur"

  Scénario: Sauvegarde brouillon automatique
    Étant donné que le créateur édite un audio-guide depuis 5 minutes
    Quand il ajoute une nouvelle séquence
    Alors l'audio-guide est sauvegardé en brouillon automatiquement
    Et un toast "Brouillon sauvegardé" s'affiche brièvement

  Scénario: Reprise d'un brouillon
    Étant donné un audio-guide en brouillon "Safari du Paugre"
    Et qu'il contient 3 séquences complètes
    Quand le créateur retourne sur son dashboard
    Alors le brouillon est visible avec le statut "📝 Brouillon"
    Et un bouton "Continuer" est disponible
    Et la progression "3/5 séquences" est affichée

  Scénario: Suppression d'un brouillon
    Étant donné un audio-guide en brouillon
    Quand le créateur clique sur "🗑️ Supprimer"
    Alors une confirmation s'affiche:
      """
      Supprimer ce brouillon ?
      Toutes les séquences seront perdues.
      [Annuler] [Supprimer définitivement]
      """

  Scénario: Modification d'un audio-guide publié
    Étant donné un audio-guide publié "Safari du Paugre"
    Quand le créateur clique sur "✏️ Modifier"
    Alors il peut modifier:
      | élément modifiable    | élément non modifiable |
      | Titre                 | Mode de déplacement    |
      | Description           | Points GPS             |
      | Tags                  | Rayons déclenchement   |
      | Séquences (ordre)     |                        |
    Et un avertissement s'affiche: "Les modifications structurelles nécessitent une nouvelle publication"

  Scénario: Duplication d'un audio-guide existant
    Étant donné un audio-guide publié "Visite Paris"
    Quand le créateur clique sur "📋 Dupliquer"
    Alors une copie est créée avec le titre "Visite Paris (copie)"
    Et toutes les séquences sont copiées
    Et le statut est "📝 Brouillon"
    Et le créateur peut modifier avant publication

  # Cas d'erreur

  Scénario: Upload audio échoue (format non supporté)
    Étant donné que le créateur upload un fichier "audio.wav"
    Quand le format est vérifié
    Alors un message d'erreur s'affiche: "Format non supporté. Utilisez MP3, AAC ou M4A"
    Et le fichier est rejeté

  Scénario: Upload audio échoue (taille trop grande)
    Étant donné que le créateur upload un fichier de 250 MB
    Quand la taille est vérifiée
    Alors un message d'erreur s'affiche: "Fichier trop volumineux. Maximum 200 MB"
    Et le fichier est rejeté

  Scénario: Points GPS trop éloignés (alerte cohérence)
    Étant donné un audio-guide en mode "Piéton"
    Et une séquence au Louvre (Paris)
    Quand le créateur ajoute une séquence à Lyon
    Alors un avertissement s'affiche:
      """
      ⚠️ Attention : distance importante entre points (465 km)
      Vérifiez que le mode "Piéton" est approprié.
      [Modifier le mode] [Continuer]
      """

  Scénario: Pas de connexion lors de la sauvegarde
    Étant donné que le créateur édite un audio-guide
    Et que la connexion réseau est perdue
    Quand il tente de sauvegarder
    Alors le brouillon est sauvegardé localement
    Et un message s'affiche: "Sauvegarde locale. Sera synchronisée à la reconnexion"
    Et une icône "☁️ Hors ligne" s'affiche

  Scénario: Reprise après perte de connexion
    Étant donné un brouillon sauvegardé localement
    Quand la connexion réseau est rétablie
    Alors le brouillon est synchronisé automatiquement
    Et un toast "✅ Audio-guide synchronisé" s'affiche
