Files
roadwave/docs/domains/monetization/entities/modele-monetisation.md
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

75 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Modèle de données - Monétisation créateurs
📖 Voir [Règles métier - Section 18 : Monétisation](../rules/monetisation-createurs.md) | [Entités globales](../../_shared/entities/modele-global.md)
## Diagramme
```mermaid
erDiagram
CREATOR_MONETIZATION }o--|| USERS : "créateur monétisé"
CREATOR_REVENUES ||--o{ REVENUE_TRANSACTIONS : "transactions"
CREATOR_REVENUES }o--|| USERS : "revenus"
PAYOUTS }o--|| USERS : "versement"
PAYOUTS ||--o{ REVENUE_TRANSACTIONS : "inclut"
CREATOR_MONETIZATION {
uuid id PK
uuid creator_id FK UK
string status
string kyc_status
string mangopay_user_id
string mangopay_wallet_id
string iban
string siret
timestamp kyc_validated_at
timestamp activated_at
timestamp suspended_at
timestamp created_at
}
CREATOR_REVENUES {
uuid id PK
uuid creator_id FK
int month_year
decimal ad_revenue_euros
decimal premium_revenue_euros
decimal total_revenue_euros
decimal balance_euros
string status
timestamp computed_at
}
REVENUE_TRANSACTIONS {
uuid id PK
uuid creator_id FK
uuid revenue_month_id FK
string transaction_type
decimal amount_euros
jsonb metadata
timestamp created_at
}
PAYOUTS {
uuid id PK
uuid creator_id FK
decimal amount_euros
decimal fees_euros
decimal net_amount_euros
string status
string mangopay_payout_id
timestamp requested_at
timestamp completed_at
timestamp failed_at
}
```
## Légende
**Entités monétisation** :
- **CREATOR_MONETIZATION** : Statut monétisation créateur - Status : `pending_kyc`, `active`, `suspended`, `disabled` - KYC obligatoire : SIRET, RIB pro, CNI/Passeport, Kbis <3 mois si société - Critères activation : Compte ≥3 mois, ≥500 abonnés, ≥10K écoutes complètes, 0 strike actif, ≥5 contenus 90j - Vérification via Mangopay KYC (24-72h)
- **CREATOR_REVENUES** : Revenus mensuels par créateur - Ad_revenue : 3€/1000 écoutes complètes utilisateurs gratuits (CPM) - Premium_revenue : 70% abonnement prorata temps écoute (4.99€ × 0.70 × ratio_ecoute) - Status : `pending`, `computed`, `paid`, `suspended` - Calcul fin de mois, paiement le 15 du mois suivant
- **REVENUE_TRANSACTIONS** : Détail transactions - Type : `ad_listen`, `premium_listen`, `adjustment`, `refund` - Metadata : content_id, user_id, listen_duration, etc. - Traçabilité complète pour audit
- **PAYOUTS** : Versements SEPA - Seuil : 50€ minimum, sinon report mois suivant - Fees : 1.8% + 0.18€ (Mangopay SEPA) - Status : `pending`, `processing`, `completed`, `failed` - Retry auto 3 fois si échec, puis suspension monétisation - Inactivité ≥18 mois : versement forcé + préavis emails 12m, 18m, 18m+30j