# language: fr
Fonctionnalité: Métadonnées et publication de contenu
  En tant que créateur
  Je veux remplir les métadonnées de mon contenu
  Afin de le publier sur RoadWave

  Contexte:
    Étant donné que l'API RoadWave est disponible
    Et que je suis un créateur connecté
    Et que mon fichier audio est encodé et prêt

  Scénario: Publication avec toutes les métadonnées obligatoires
    Quand je remplis les métadonnées suivantes:
      | champ              | valeur                        |
      | Titre              | Histoire de la Tour Eiffel    |
      | Type géo           | Ancré                         |
      | Zone               | Point GPS (48.8584, 2.2945, 500m) |
      | Tags               | Voyage, Culture générale      |
      | Classification âge | Tout public                   |
    Alors la publication réussit
    Et mon contenu est soumis pour validation

  Scénario: Titre valide entre 5 et 100 caractères
    Quand je saisis un titre de 50 caractères
    Alors le titre est accepté
    Et la validation passe

  Scénario: Titre trop court (<5 caractères)
    Quand je saisis un titre de 4 caractères "Test"
    Alors la publication échoue
    Et je vois le message "Le titre doit contenir entre 5 et 100 caractères"

  Scénario: Titre trop long (>100 caractères)
    Quand je saisis un titre de 101 caractères
    Alors la publication échoue
    Et je vois le message "Le titre doit contenir entre 5 et 100 caractères"

  Scénario: Titre à exactement 5 caractères accepté
    Quand je saisis un titre de exactement 5 caractères "Titre"
    Alors le titre est accepté

  Scénario: Titre à exactement 100 caractères accepté
    Quand je saisis un titre de exactement 100 caractères
    Alors le titre est accepté

  Scénario: Sélectionner type géo "Ancré"
    Quand je sélectionne le type géo "Ancré"
    Alors le système applique une pondération géo de 0.7
    Et je dois définir une zone de diffusion précise

  Scénario: Sélectionner type géo "Contextuel"
    Quand je sélectionne le type géo "Contextuel"
    Alors le système applique une pondération géo de 0.5
    Et je peux définir une zone ville/département/région

  Scénario: Sélectionner type géo "Neutre"
    Quand je sélectionne le type géo "Neutre"
    Alors le système applique une pondération géo de 0.2
    Et je peux définir une zone nationale

  Scénario: Zone diffusion - Point GPS avec rayon
    Quand je choisis "Point GPS"
    Et que je définis les coordonnées (48.8584, 2.2945)
    Et que je définis un rayon de 500 mètres
    Alors la zone est validée
    Et le contenu sera diffusé dans un rayon de 500m autour du point

  Scénario: Zone diffusion - Rayon minimum 100m
    Quand je définis un rayon de 50 mètres (< 100m)
    Alors la validation échoue
    Et je vois le message "Le rayon doit être entre 100m et 10km"

  Scénario: Zone diffusion - Rayon maximum 10km
    Quand je définis un rayon de 15 km (> 10km)
    Alors la validation échoue
    Et je vois le message "Le rayon doit être entre 100m et 10km"

  Scénario: Zone diffusion - Ville depuis référentiel INSEE
    Quand je choisis "Ville"
    Alors je vois une liste de villes du référentiel INSEE
    Quand je sélectionne "Paris (75000)"
    Alors la zone est définie sur toute la ville de Paris

  Scénario: Zone diffusion - Département
    Quand je choisis "Département"
    Et que je sélectionne "Ille-et-Vilaine (35)"
    Alors la zone couvre tout le département 35

  Scénario: Zone diffusion - Région
    Quand je choisis "Région"
    Et que je sélectionne "Bretagne"
    Alors la zone couvre toute la région Bretagne

  Scénario: Zone diffusion - National
    Quand je choisis "National"
    Alors la zone couvre toute la France
    Et aucune restriction géographique n'est appliquée

  Scénario: Zones mutuellement exclusives
    Étant donné que j'ai sélectionné "Point GPS"
    Quand j'essaie de sélectionner également "Ville"
    Alors la première sélection est remplacée
    Et seule "Ville" reste active

  Scénario: Sélectionner 1 tag minimum
    Quand je sélectionne 1 tag "Voyage"
    Alors la validation passe
    Et le contenu est tagué "Voyage"

  Scénario: Sélectionner 3 tags maximum
    Quand je sélectionne 3 tags "Automobile", "Technologie", "Sport"
    Alors la validation passe
    Et le contenu est tagué avec les 3 tags

  Scénario: Impossible de sélectionner 0 tag
    Quand j'essaie de publier sans sélectionner de tag
    Alors la publication échoue
    Et je vois le message "Vous devez sélectionner entre 1 et 3 tags"

  Scénario: Impossible de sélectionner 4 tags
    Quand j'essaie de sélectionner 4 tags
    Alors le 4ème tag ne peut pas être ajouté
    Et je vois le message "Maximum 3 tags"

  Scénario: Tags disponibles dans la liste
    Quand je consulte la liste des tags
    Alors je vois les tags suivants:
      | tag              |
      | Automobile       |
      | Voyage           |
      | Famille          |
      | Amour            |
      | Musique          |
      | Économie         |
      | Cryptomonnaie    |
      | Politique        |
      | Culture générale |
      | Sport            |
      | Technologie      |
      | Santé            |

  Scénario: Classification âge obligatoire
    Quand j'essaie de publier sans classification âge
    Alors la publication échoue
    Et je vois le message "Vous devez sélectionner une classification d'âge"

  Plan du Scénario: Sélectionner classification âge
    Quand je sélectionne la classification "<classification>"
    Alors le contenu sera visible pour "<public_cible>"

    Exemples:
      | classification | public_cible                  |
      | Tout public    | Tous les utilisateurs         |
      | 13+            | Utilisateurs 13 ans et plus   |
      | 16+            | Utilisateurs 16 ans et plus   |
      | 18+            | Utilisateurs 18 ans et plus   |

  Scénario: Image de couverture auto-générée selon type géo
    Étant donné que je choisis le type géo "Ancré"
    Et que mon tag principal est "Voyage"
    Quand la publication est soumise
    Alors une image de couverture est générée automatiquement:
      | paramètre | valeur               |
      | Icône     | 📍 (Ancré)           |
      | Couleur   | Bleu-vert (Voyage)   |
      | Format    | 800×800px PNG        |

  Scénario: Image de couverture type Contextuel
    Étant donné que je choisis "Contextuel"
    Quand l'image est générée
    Alors l'icône est 🌍 (Contextuel)

  Scénario: Image de couverture type Neutre
    Étant donné que je choisis "Neutre"
    Quand l'image est générée
    Alors l'icône est 🎧 (Neutre)

  Plan du Scénario: Couleur selon tag principal
    Étant donné que mon tag principal est "<tag>"
    Quand l'image est générée
    Alors la couleur de fond est "<couleur>"

    Exemples:
      | tag              | couleur    |
      | Automobile       | Bleu       |
      | Voyage           | Vert       |
      | Musique          | Rouge      |
      | Économie         | Gris       |
      | Sport            | Orange     |

  Scénario: Champs optionnels non obligatoires
    Quand je publie sans description
    Et sans image de couverture personnalisée
    Alors la publication réussit
    Et les champs optionnels restent vides
    Et une image par défaut est générée

  Scénario: Temps de publication estimé 2 minutes
    Étant donné que mon fichier audio est prêt
    Quand je commence à remplir les métadonnées
    Alors je peux publier en environ 2 minutes
    Car il n'y a que 5 champs obligatoires

  Scénario: Publication rapide sans friction
    Quand je publie mon premier contenu
    Alors aucun champ complexe n'est demandé
    Et je ne suis pas bloqué sur description ou image
    Et la publication est fluide

  Scénario: Prévisualisation avant publication
    Étant donné que j'ai rempli toutes les métadonnées
    Quand je clique sur "Prévisualiser"
    Alors je vois un aperçu de mon contenu:
      | élément           | affiché |
      | Titre             | ✅      |
      | Image couverture  | ✅      |
      | Tags              | ✅      |
      | Zone diffusion    | ✅      |
      | Durée audio       | ✅      |
      | Classification    | ✅      |

  Scénario: Enregistrer brouillon
    Étant donné que j'ai commencé à remplir les métadonnées
    Quand je clique sur "Enregistrer brouillon"
    Alors mes métadonnées sont sauvegardées
    Et je peux reprendre la publication plus tard

  Scénario: Reprendre brouillon
    Étant donné que j'ai un brouillon sauvegardé
    Quand j'accède à mes contenus
    Alors je vois le brouillon avec statut "📝 Brouillon"
    Et je peux reprendre la publication

  Scénario: Impossible de publier pendant encodage en cours
    Étant donné que mon fichier est en cours d'encodage
    Quand j'essaie de remplir les métadonnées
    Alors je vois le message "Encodage en cours, veuillez patienter"
    Et l'interface de publication est désactivée

  Scénario: Limite de 10 brouillons maximum
    Étant donné que j'ai déjà 10 brouillons sauvegardés
    Quand j'essaie de créer un 11ème brouillon
    Alors le brouillon est refusé
    Et je vois le message "Maximum 10 brouillons. Publiez ou supprimez un brouillon existant."

  Scénario: Suppression automatique brouillons après 30 jours
    Étant donné que j'ai un brouillon de plus de 30 jours
    Quand le système effectue le nettoyage automatique
    Alors le brouillon est supprimé automatiquement
    Et je reçois une notification "Brouillon '[Titre]' supprimé (>30 jours)"
