Files
roadwave/docs/domains/content/features/audio-guides/premium-monetisation.feature
jpgiannetti 5e5fcf4714 refactor(docs): réorganiser la documentation selon principes DDD
Réorganise la documentation du projet selon les principes du Domain-Driven Design (DDD) pour améliorer la cohésion, la maintenabilité et l'alignement avec l'architecture modulaire du backend.

**Structure cible:**
```
docs/domains/
├── README.md (Context Map)
├── _shared/ (Core Domain)
├── recommendation/ (Supporting Subdomain)
├── content/ (Supporting Subdomain)
├── moderation/ (Supporting Subdomain)
├── advertising/ (Generic Subdomain)
├── premium/ (Generic Subdomain)
└── monetization/ (Generic Subdomain)
```

**Changements effectués:**

Phase 1: Création de l'arborescence des 7 bounded contexts
Phase 2: Déplacement des règles métier (01-19) vers domains/*/rules/
Phase 3: Déplacement des diagrammes d'entités vers domains/*/entities/
Phase 4: Déplacement des diagrammes flux/états/séquences vers domains/*/
Phase 5: Création des README.md pour chaque domaine
Phase 6: Déplacement des features Gherkin vers domains/*/features/
Phase 7: Création du Context Map (domains/README.md)
Phase 8: Mise à jour de mkdocs.yml pour la nouvelle navigation
Phase 9: Correction automatique des liens internes (script fix-markdown-links.sh)
Phase 10: Nettoyage de l'ancienne structure (regles-metier/, diagrammes/, features/)

**Configuration des tests:**
- Makefile: godog run docs/domains/*/features/
- scripts/generate-bdd-docs.py: features_dir → docs/domains

**Avantages:**
 Cohésion forte: toute la doc d'un domaine au même endroit
 Couplage faible: domaines indépendants, dépendances explicites
 Navigabilité améliorée: README par domaine = entrée claire
 Alignement code/docs: miroir de backend/internal/
 Onboarding facilité: exploration domaine par domaine
 Tests BDD intégrés: features au plus près des règles métier

Voir docs/REFACTOR-DDD.md pour le plan complet.
2026-02-07 17:15:02 +01:00

271 lines
12 KiB
Gherkin
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# language: fr
Fonctionnalité: Audio-guides Premium et monétisation
En tant que créateur
Je veux pouvoir proposer des audio-guides Premium
Afin de monétiser mon contenu de qualité
Contexte:
Étant donné que l'application RoadWave est démarrée
Et que le créateur "guide@example.com" est connecté et vérifié
# 16.9 - Audio-guides Premium
Scénario: Création d'un audio-guide Premium
Étant donné que le créateur crée un audio-guide "Visite VIP Versailles"
Quand il accède aux paramètres de monétisation (étape 4)
Alors il peut choisir:
| option | description |
| Gratuit | Accessible à tous (avec pubs) |
| Premium | Réservé abonnés Premium |
Scénario: Badge Premium visible sur l'audio-guide
Étant donné un audio-guide configuré en Premium
Quand il est affiché dans les résultats de recherche
Alors un badge "👑 Premium" est visible
Et la cover image a un cadre doré subtil
Scénario: Preview 3 premières séquences pour utilisateurs gratuits
Étant donné un audio-guide Premium "Visite VIP Versailles" avec 15 séquences
Et qu'un utilisateur gratuit ouvre l'audio-guide
Quand il consulte la liste des séquences
Alors les séquences affichent:
| séquence | état |
| 1 | Accessible (preview) |
| 2 | Accessible (preview) |
| 3 | Accessible (preview) |
| 4 | 🔒 Réservé Premium |
| 5-15 | 🔒 Réservé Premium |
Scénario: Écoute des 3 premières séquences sans blocage
Étant donné un utilisateur gratuit
Et un audio-guide Premium avec preview
Quand il écoute les séquences 1, 2 et 3
Alors aucune publicité n'est insérée (preview = teasing)
Et l'écoute est fluide
Scénario: Paywall après la 3ème séquence
Étant donné qu'un utilisateur gratuit termine la séquence 3
Quand la séquence se termine
Alors un overlay paywall s'affiche immédiatement:
"""
👑 Contenu réservé Premium
Continuez cette expérience exclusive
et accédez à 12 séquences supplémentaires
Sans publicité
Accès illimité à tous les contenus Premium
Téléchargement offline
Audio haute qualité
[Passer Premium - 4.99/mois]
[Découvrir d'autres audio-guides gratuits]
"""
Scénario: Bouton "Passer Premium" vers tunnel d'abonnement
Étant donné que l'overlay paywall Premium est affiché
Quand l'utilisateur clique sur "Passer Premium"
Alors il est redirigé vers la page d'abonnement Mangopay
Et l'audio-guide actuel est marqué en "pending" (reprise après souscription)
Scénario: Reprise automatique après souscription Premium
Étant donné qu'un utilisateur s'est abonné Premium depuis un paywall audio-guide
Quand l'abonnement est activé
Alors il est redirigé vers l'audio-guide automatiquement
Et la séquence 4 démarre immédiatement
Et un toast de bienvenue s'affiche: " Bienvenue Premium ! Profitez de votre audio-guide"
Scénario: Utilisateur Premium - Accès complet immédiat
Étant donné qu'un utilisateur Premium ouvre un audio-guide Premium
Quand il consulte la liste des séquences
Alors toutes les 15 séquences sont accessibles
Et aucun paywall ne s'affiche
Et aucune publicité n'est insérée
Scénario: Pas de preview si l'audio-guide a <3 séquences
Étant donné un audio-guide Premium avec seulement 2 séquences
Quand un utilisateur gratuit tente de l'ouvrir
Alors un paywall s'affiche immédiatement (avant lecture)
Et aucune preview n'est disponible
# 16.10 - Revenus créateur
Scénario: Rémunération créateur pour audio-guide Premium
Étant donné un créateur avec un audio-guide Premium
Et que 50 utilisateurs Premium ont écouté l'audio-guide ce mois
Quand la répartition des revenus est calculée
Alors le créateur reçoit 70% des revenus proportionnels
Et la formule est: (Écoutes créateur / Total écoutes Premium) × 70% pool Premium
Scénario: Dashboard revenus par audio-guide
Étant donné qu'un créateur a 3 audio-guides Premium publiés
Quand il consulte son dashboard revenus
Alors il voit pour chaque audio-guide:
| audio_guide | ecoutes_mois | revenus_estime |
| Visite VIP Versailles | 142 | 45.20 |
| Secrets du Louvre | 89 | 28.50 |
| Châteaux de la Loire | 203 | 64.80 |
Scénario: Comparaison gratuit vs Premium
Étant donné qu'un créateur a publié 2 audio-guides:
| titre | type | ecoutes_mois | revenus |
| Tour de Paris | Gratuit | 1200 | 3.60 |
| Visite VIP Versailles| Premium | 142 | 45.20 |
Quand il consulte son dashboard
Alors il peut comparer les performances
Et constater que Premium génère plus de revenus par écoute
Scénario: Seuil minimum de paiement (50€)
Étant donné qu'un créateur a généré 42 de revenus ce mois
Quand le paiement mensuel est traité
Alors le montant est reporté au mois suivant
Et un message s'affiche: "Seuil minimum non atteint (50). Montant reporté."
Scénario: Paiement automatique mensuel
Étant donné qu'un créateur a généré 138.50 de revenus en janvier
Quand le 15 février arrive
Alors le paiement est initié automatiquement via Mangopay
Et le créateur reçoit une notification: "Paiement de 138.50 en cours"
Et les fonds arrivent sous 1-3 jours ouvrés (SEPA)
# 16.11 - Publicités dans audio-guides gratuits
Scénario: Insertion publicité toutes les 5 séquences (gratuit)
Étant donné un audio-guide gratuit avec 12 séquences
Et un utilisateur gratuit
Quand il termine la séquence 5
Alors une publicité démarre automatiquement
Quand il termine la séquence 10
Alors une deuxième publicité démarre
Scénario: Publicité après séquence en mode piéton (avec pause)
Étant donné un audio-guide piéton gratuit
Quand la séquence 5 se termine
Alors la publicité démarre automatiquement (pas d'attente bouton)
Et la pub est skippable après 5 secondes
Quand la publicité se termine
Alors le player se met en pause
Et l'utilisateur doit cliquer sur [|] pour continuer
Scénario: Publicité en mode voiture/vélo/transport (automatique)
Étant donné un audio-guide voiture gratuit
Quand la séquence 5 se termine
Alors la publicité démarre automatiquement
Quand la publicité se termine
Alors la séquence 6 démarre automatiquement (pas de pause)
Parce que l'utilisateur est en conduite (mode hands-free)
Scénario: Publicités géolocalisées dans audio-guides
Étant donné un audio-guide dans la région "Île-de-France"
Quand une publicité doit être insérée
Alors l'API publicitaire filtre par:
| critère | valeur |
| Géolocalisation | Île-de-France |
| Catégorie | Tourisme, Culture |
| Langue | Français |
Scénario: Comptabilisation revenus pub pour créateur
Étant donné qu'un audio-guide gratuit génère 200 écoutes complètes
Et que chaque écoute complète = 2 publicités (séq. 5 et 10)
Quand les revenus pub sont calculés
Alors 400 impressions pub sont diffusées
Et le créateur reçoit 0.60 (200 écoutes × 0.003)
# 16.12 - Stratégies de conversion
Scénario: CTA Premium après audio-guide gratuit complété
Étant donné qu'un utilisateur gratuit complète un audio-guide gratuit
Quand il termine la dernière séquence
Alors un overlay s'affiche:
"""
🎉 Audio-guide complété !
Vous avez aimé cette expérience ?
Découvrez nos audio-guides Premium pour aller plus loin
[Découvrir Premium] [Fermer]
"""
Scénario: Recommandations d'audio-guides Premium après gratuit
Étant donné qu'un utilisateur termine un audio-guide gratuit "Tour de Paris"
Quand l'overlay de fin s'affiche
Alors 3 audio-guides Premium similaires sont suggérés:
| titre | type | créateur |
| Secrets de Montmartre | Premium | @paris_stories |
| Visite VIP Musée d'Orsay | Premium | @art_guide |
| Paris hors des sentiers | Premium | @explore_paris |
Scénario: Badge "Premium recommandé" sur audio-guides populaires
Étant donné un audio-guide Premium avec >500 écoutes et note >4.5/5
Quand il est affiché dans les résultats de recherche
Alors un badge " Premium recommandé" est visible
Et il est mis en avant dans les résultats
Scénario: Conversion tracking pour attribution créateur
Étant donné qu'un utilisateur découvre Premium via un audio-guide créateur
Quand il s'abonne
Alors la conversion est trackée:
| donnée | valeur |
| source_conversion | audio_guide_paywall |
| audio_guide_id | visite_vip_versailles_123 |
| creator_id | guide_versailles_456 |
Et le créateur bénéficie d'un bonus de conversion
# Cas d'usage
Scénario: Créateur mix gratuit + Premium
Étant donné qu'un créateur a publié 5 audio-guides:
| titre | type |
| Découverte de Paris | Gratuit |
| Visite VIP Louvre | Premium |
| Balade Montmartre | Gratuit |
| Secrets Versailles | Premium |
| Visite express Orsay | Gratuit |
Quand un utilisateur découvre son profil
Alors les audio-guides gratuits servent de teasing
Et les audio-guides Premium sont mis en avant avec badge
Scénario: Utilisateur hésite à s'abonner
Étant donné qu'un utilisateur atteint le paywall d'un audio-guide Premium
Et qu'il clique sur "Découvrir d'autres audio-guides gratuits"
Quand il revient 2 jours plus tard sur le même audio-guide
Alors le paywall s'affiche à nouveau
Et une réduction temporaire est proposée: "Offre spéciale : -20% premier mois"
# Cas d'erreur
Scénario: Échec du paiement Premium via paywall
Étant donné qu'un utilisateur tente de s'abonner Premium
Quand le paiement Mangopay échoue
Alors un message d'erreur s'affiche:
"""
Paiement refusé
Vérifiez vos informations bancaires ou contactez votre banque.
[Réessayer] [Annuler]
"""
Scénario: Abonnement Premium expiré pendant écoute
Étant donné qu'un utilisateur Premium écoute un audio-guide Premium
Et que son abonnement expire pendant l'écoute (séquence 8/15)
Quand l'expiration est détectée
Alors l'écoute continue jusqu'à la fin de la séquence en cours
Et un overlay s'affiche ensuite:
"""
Votre abonnement Premium a expiré
Renouvelez pour continuer à profiter des contenus exclusifs
[Renouveler - 4.99/mois] [Plus tard]
"""
Scénario: Créateur change audio-guide de gratuit à Premium
Étant donné qu'un audio-guide gratuit a 50 utilisateurs avec progression
Quand le créateur le passe en Premium
Alors les utilisateurs ayant déjà commencé gardent l'accès complet
Et seuls les nouveaux utilisateurs sont soumis au paywall
Et un message de transparence s'affiche:
"""
Cet audio-guide est maintenant Premium
Vous conservez votre accès car vous l'aviez démarré avant le changement.
"""