# Modèle de données - Modération 📖 Voir [Règles métier - Section 14 : Modération Flows](../../regles-metier/14-moderation-flows.md) ## Diagramme ```mermaid erDiagram USERS ||--o{ REPORTS : "signale" USERS ||--o{ CONTENTS : "crée" USERS ||--o{ MODERATION_BADGES : "possède" USERS ||--o{ APPEALS : "soumet" CONTENTS ||--o{ REPORTS : "concerne" CONTENTS ||--o{ SANCTIONS : "sanctionné par" REPORTS ||--o| SANCTIONS : "génère" REPORTS ||--o| APPEALS : "fait l'objet de" REPORTS }o--|| MODERATORS : "traité par" APPEALS }o--|| MODERATORS : "examiné par" SANCTIONS ||--o{ STRIKES : "crée" USERS { uuid id PK string email UK string pseudo UK int trust_score string role } CONTENTS { uuid id PK uuid creator_id FK string title string status point geo_location boolean is_moderated } REPORTS { uuid id PK uuid content_id FK uuid reporter_id FK uuid moderator_id FK string category string status int ai_score int priority string decision } SANCTIONS { uuid id PK uuid report_id FK uuid content_id FK uuid creator_id FK string sanction_type int duration_days boolean is_active } STRIKES { uuid id PK uuid creator_id FK uuid sanction_id FK int strike_number boolean is_active } APPEALS { uuid id PK uuid report_id FK uuid creator_id FK uuid moderator_id FK string ticket_number UK string status string decision } MODERATORS { uuid id PK string name string role } MODERATION_BADGES { uuid id PK uuid user_id FK string badge_type int reports_validated decimal accuracy_rate boolean is_active } ``` ## Légende **Entités** : - **REPORTS** : Signalements - 7 catégories (haine, sexuel, illégal, copyright, spam, désinformation, autre), scoring IA 0-100%, priorité CRITIQUE/HAUTE/MOYENNE/BASSE - **SANCTIONS** : Strike (avertissement), Suspension (7j/30j), Ban permanent - **APPEALS** : Appels créateurs - ticket #MOD-YYYY-XXXXX, délai 7j, examen 72h - **STRIKES** : Compteur créateur 1/4 à 4/4 (Strike 4 = ban permanent, expiration 6 mois) - **MODERATION_BADGES** : Bronze (5 validés, 70%), Argent (20 validés, 80%), Or (50 validés, 90%) **Statuts REPORTS** : `received` → `transcribing` → `analyzing` → `pending_review` → `in_review` → `validated`/`rejected` → `closed`