Files
roadwave/docs/domains/content/features/content-creation/fair-use-30s-musique.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

60 lines
2.6 KiB
Gherkin

# language: fr
@api @content-creation @copyright @mvp
Fonctionnalité: Fair use 30 secondes musique
En tant que créateur
Je veux utiliser jusqu'à 30 secondes de musique protégée
Afin d'enrichir mon contenu dans le cadre du fair use
Scénario: Détection automatique de musique dans l'upload
Étant donné un créateur "alice@roadwave.fr" qui upload un audio
Quand le fichier contient de la musique
Alors le système détecte via fingerprinting audio (ACRCloud)
Et identifie les morceaux présents
Et mesure la durée de chaque extrait
Et un événement "MUSIC_DETECTED" est enregistré
Scénario: Validation automatique si < 30 secondes
Étant donné un audio avec 25 secondes de musique protégée
Quand la validation automatique s'exécute
Alors le contenu est approuvé (fair use)
Et un badge "Fair use" est appliqué
Et un événement "FAIR_USE_APPROVED" est enregistré
Scénario: Blocage automatique si > 30 secondes
Étant donné un audio avec 45 secondes de musique protégée
Quand la validation s'exécute
Alors le contenu est bloqué
Et le créateur voit: "Extrait musical trop long (45s). Max: 30s"
Et il peut éditer et re-uploader
Et un événement "FAIR_USE_REJECTED" est enregistré
Scénario: Liste des morceaux détectés avec durée
Étant donné un créateur "bob@roadwave.fr" avec musique détectée
Alors il voit la liste:
| Morceau | Artiste | Durée | Statut |
| Bohemian Rhapsody | Queen | 28s | OK |
| Imagine | John Lennon | 15s | OK |
Et la durée totale: 43s
Et un avertissement si total > 30s
Et un événement "MUSIC_DETECTION_RESULTS_DISPLAYED" est enregistré
Scénario: Suggestions de musique libre de droits
Étant donné un créateur "charlie@roadwave.fr"
Quand son audio dépasse les 30s de musique protégée
Alors le système suggère des alternatives libres:
| Morceau | Licence | Style |
| Acoustic Breeze | CC BY | Acoustique |
| Epic Cinematic | Royalty-free| Épique |
Et un lien vers une bibliothèque musicale
Et un événement "FREE_MUSIC_SUGGESTED" est enregistré
Scénario: Limitation cumulative par audio-guide
Étant donné un créateur "david@roadwave.fr" avec audio-guide de 10 séquences
Quand il utilise de la musique protégée
Alors chaque séquence peut contenir max 30s
Mais le total cumulé est limité à 3 minutes par audio-guide
Et un compteur affiche: "2min 15s / 3min utilisés"
Et un événement "CUMULATIVE_MUSIC_LIMIT_TRACKED" est enregistré