Files
roadwave/docs/domains/content/features/content-creation/restrictions-modification.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

54 lines
2.5 KiB
Gherkin

# language: fr
@api @content-creation @rules @mvp
Fonctionnalité: Restrictions de modification de contenu publié
En tant que plateforme
Je veux restreindre les modifications après publication
Afin de maintenir l'intégrité du contenu et des statistiques
Scénario: Modification limitée du contenu après publication
Étant donné un créateur "alice@roadwave.fr" avec contenu publié
Quand il tente de modifier le contenu
Alors il peut modifier:
| Champ modifiable | Restrictions |
| Titre | Max 1 fois par mois |
| Description | Illimité |
| Image de couverture | Max 3 fois par an |
| Fichiers audio | Impossible après 100 écoutes|
| Prix | Max 1 baisse par trimestre |
Et un événement "CONTENT_MODIFICATION_RESTRICTED" est enregistré
Scénario: Blocage de modification des séquences très écoutées
Étant donné un créateur "bob@roadwave.fr"
Et une séquence avec 1000+ écoutes
Quand il tente de remplacer le fichier audio
Alors la modification est bloquée
Et un message explique: "Contenu verrouillé après 1000 écoutes"
Et il peut créer une nouvelle version à la place
Et un événement "AUDIO_MODIFICATION_BLOCKED" est enregistré
Scénario: Historique des modifications
Étant donné un créateur "charlie@roadwave.fr"
Quand il consulte l'historique
Alors il voit toutes les modifications:
| Date | Champ modifié | Ancienne valeur | Nouvelle valeur |
| 2026-02-01 | Titre | Visite Paris | Visite Paris 2026|
| 2026-01-15 | Prix | 5 | 3 |
Et un événement "MODIFICATION_HISTORY_VIEWED" est enregistré
Scénario: Délai de modération avant republication
Étant donné un créateur "david@roadwave.fr"
Quand il modifie substantiellement un contenu publié
Alors le contenu repasse en modération
Et reste accessible pendant la modération
Et un événement "CONTENT_REMODERATION_QUEUED" est enregistré
Scénario: Versioning automatique des contenus
Étant donné un créateur "eve@roadwave.fr"
Quand il publie une modification importante
Alors une nouvelle version (v2) est créée
Et les utilisateurs ayant commencé v1 la terminent
Et les nouveaux utilisateurs obtiennent v2
Et un événement "CONTENT_VERSION_CREATED" est enregistré