Structure minimaliste : - docs/diagrammes/flux/ : Flowcharts - docs/diagrammes/etats/ : State diagrams - docs/diagrammes/sequence/ : Sequence diagrams - docs/diagrammes/entites/ : Entity-Relationship diagrams Exemples créés pour modération (Section 14) : - Flux de signalement complet - Cycle de vie d'un signalement (13 états) - Processus d'appel créateur - Modèle de données modération (8 entités) Chaque fichier contient uniquement : - Référence vers règle métier - Diagramme Mermaid détaillé - Légende courte Intégration dans navigation MkDocs.
108 lines
2.6 KiB
Markdown
108 lines
2.6 KiB
Markdown
# 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`
|