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.
This commit is contained in:
jpgiannetti
2026-02-07 17:15:02 +01:00
parent 78422bb2c0
commit 5e5fcf4714
227 changed files with 1413 additions and 1967 deletions

View File

@@ -0,0 +1,62 @@
# language: fr
@api @content-creation @deletion @mvp
Fonctionnalité: Suppression et marquage de contenu
En tant que créateur ou modérateur
Je veux pouvoir supprimer ou marquer du contenu
Afin de gérer le cycle de vie du contenu sur la plateforme
Scénario: Suppression douce avec période de grâce de 30 jours
Étant donné un créateur "alice@roadwave.fr"
Quand il supprime son audio-guide
Alors le contenu est marqué "Supprimé" (soft delete)
Et reste dans la base pendant 30 jours
Et disparaît des recherches immédiatement
Et peut être restauré dans les 30 jours
Et un événement "CONTENT_SOFT_DELETED" est enregistré
Scénario: Suppression définitive après 30 jours
Étant donné un contenu supprimé il y a 31 jours
Quand le job de nettoyage s'exécute
Alors le contenu est définitivement supprimé (hard delete)
Et tous les fichiers associés sont supprimés de S3
Et les statistiques sont archivées
Et un événement "CONTENT_HARD_DELETED" est enregistré
Scénario: Restauration d'un contenu supprimé
Étant donné un créateur "bob@roadwave.fr"
Et un contenu supprimé il y a 10 jours
Quand il accède à "Contenus supprimés"
Et clique sur "Restaurer"
Alors le contenu redevient actif immédiatement
Et réapparaît dans les recherches
Et un événement "CONTENT_RESTORED" est enregistré
Scénario: Marquage de contenu obsolète
Étant donné un créateur "charlie@roadwave.fr"
Quand il marque un contenu comme "Obsolète"
Alors un badge " Contenu obsolète" s'affiche
Et il reste accessible mais avec avertissement
Et n'apparaît plus dans les recommandations
Et un événement "CONTENT_MARKED_OBSOLETE" est enregistré
Scénario: Blocage par modération
Étant donné un modérateur qui détecte un contenu problématique
Quand il bloque le contenu
Alors il devient immédiatement invisible
Et le créateur est notifié avec raison
Et peut faire appel de la décision
Et un événement "CONTENT_BLOCKED_BY_MODERATION" est enregistré
Scénario: Statistiques avant suppression définitive
Étant donné un créateur "david@roadwave.fr"
Quand il consulte un contenu avant suppression définitive
Alors il voit les statistiques finales:
| Métrique | Valeur |
| Total écoutes | 1,234 |
| Note moyenne | 4.2/5 |
| Revenus générés | 156 |
| Période active | 8 mois |
Et peut exporter ces données
Et un événement "DELETION_STATS_VIEWED" est enregistré