Files
roadwave/docs/domains/content/features/radio-live/enregistrement-publication-replay.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

64 lines
2.6 KiB
Gherkin

# language: fr
@api @radio-live @replay @mvp
Fonctionnalité: Enregistrement et publication de replays radio live
En tant que créateur radio
Je veux enregistrer mes lives et les publier en replay
Afin d'étendre la durée de vie de mon contenu
Scénario: Enregistrement automatique du live
Étant donné un créateur "alice@roadwave.fr" qui lance un live
Quand le live démarre
Alors l'enregistrement démarre automatiquement
Et est stocké sur S3 en temps réel (streaming)
Et un événement "LIVE_RECORDING_STARTED" est enregistré
Scénario: Publication automatique du replay après le live
Étant donné un créateur "bob@roadwave.fr" qui termine son live
Quand le live se termine
Alors le replay est disponible immédiatement
Et apparaît dans "Replays récents"
Et conserve les métadonnées du live (titre, description)
Et un événement "REPLAY_AUTO_PUBLISHED" est enregistré
Scénario: Édition du replay avant publication
Étant donné un créateur "charlie@roadwave.fr" avec un replay enregistré
Quand il accède au replay
Alors il peut:
| Action | Disponible |
| Couper le début/fin | Oui |
| Supprimer des passages | Oui |
| Ajouter des chapitres | Oui |
| Modifier le titre | Oui |
Et republier après édition
Et un événement "REPLAY_EDITED" est enregistré
Scénario: Conversion automatique en podcast
Étant donné un créateur "david@roadwave.fr" avec replay
Quand il active "Convertir en podcast"
Alors le replay devient un podcast téléchargeable
Et est ajouté au flux RSS du créateur
Et compatible avec Apple Podcasts / Spotify
Et un événement "REPLAY_CONVERTED_TO_PODCAST" est enregistré
Scénario: Durée de rétention des replays configurab le
Étant donné un créateur "eve@roadwave.fr"
Quand il configure la rétention des replays
Alors il peut choisir:
| Durée | Coût stockage |
| 7 jours | Gratuit |
| 30 jours | 1/mois |
| 1 an | 5/mois |
| Permanent | 10/mois |
Et un événement "REPLAY_RETENTION_CONFIGURED" est enregistré
Scénario: Statistiques des replays vs live
Étant donné un créateur "frank@roadwave.fr"
Alors il voit les comparaisons:
| Métrique | Live | Replay |
| Auditeurs uniques | 234 | 567 |
| Durée moyenne écoute | 42min | 28min |
| Taux de complétion | 65% | 48% |
Et un événement "REPLAY_STATS_COMPARED" est enregistré