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.
54 lines
2.2 KiB
Gherkin
54 lines
2.2 KiB
Gherkin
# language: fr
|
|
|
|
@api @moderation @copyright @mvp
|
|
Fonctionnalité: Signalement musique a posteriori
|
|
|
|
En tant qu'ayant-droit ou utilisateur
|
|
Je veux signaler une utilisation musicale non conforme
|
|
Afin de faire respecter les droits d'auteur
|
|
|
|
Scénario: Signalement par un ayant-droit
|
|
Étant donné un ayant-droit "Universal Music"
|
|
Quand il signale un contenu avec sa musique
|
|
Alors un formulaire DMCA est pré-rempli
|
|
Et le contenu est immédiatement suspendu (safe harbor)
|
|
Et le créateur est notifié
|
|
Et un événement "COPYRIGHT_CLAIM_FILED" est enregistré
|
|
|
|
Scénario: Vérification du signalement par modérateur
|
|
Étant donné un signalement reçu
|
|
Quand un modérateur l'examine
|
|
Alors il écoute le contenu
|
|
Et vérifie si fair use (< 30s)
|
|
Et prend une décision dans les 48h
|
|
Et un événement "COPYRIGHT_CLAIM_REVIEWED" est enregistré
|
|
|
|
Scénario: Contre-signalement du créateur
|
|
Étant donné un créateur "alice@roadwave.fr" dont le contenu est suspendu
|
|
Quand il fait un counter-claim avec preuve
|
|
Alors le dossier est transmis à l'ayant-droit
|
|
Et celui-ci a 14 jours pour répondre
|
|
Et un événement "COPYRIGHT_COUNTER_CLAIM_FILED" est enregistré
|
|
|
|
Scénario: Rétablissement du contenu si fair use validé
|
|
Étant donné un contenu suspendu
|
|
Quand le modérateur confirme le fair use
|
|
Alors le contenu est rétabli
|
|
Et le signalement est rejeté
|
|
Et le créateur est notifié
|
|
Et un événement "COPYRIGHT_CLAIM_REJECTED" est enregistré
|
|
|
|
Scénario: Sanctions pour abus de signalement
|
|
Étant donné un ayant-droit qui abuse des signalements
|
|
Quand 3 signalements consécutifs sont rejetés
|
|
Alors son compte est suspendu temporairement
|
|
Et un événement "COPYRIGHT_CLAIMANT_SUSPENDED" est enregistré
|
|
|
|
Scénario: Historique des signalements pour un créateur
|
|
Étant donné un créateur "bob@roadwave.fr"
|
|
Alors il voit ses signalements:
|
|
| Date | Ayant-droit | Statut | Issue |
|
|
| 2026-02-01 | Sony Music | Résolu | Fair use OK|
|
|
| 2026-01-10 | Warner | Confirmé | Contenu retiré|
|
|
Et un événement "COPYRIGHT_HISTORY_VIEWED" est enregistré
|