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.
64 lines
2.6 KiB
Gherkin
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é
|