## 19. Modération Communautaire - Badges et Récompenses

**Contexte** : Système de gamification pour encourager les utilisateurs à signaler du contenu inapproprié de manière pertinente et qualitative.

**Objectifs** :
- Améliorer la qualité des signalements (réduire les signalements abusifs)
- Réduire la charge de travail des modérateurs (priorisation automatique)
- Récompenser les contributeurs actifs et fiables

---

### 19.1 Système de badges

**Décision** : 3 niveaux de badges selon l'historique de signalements validés

#### 19.1.1 Badges et critères

| Badge | Nom | Critères | Avantages |
|-------|-----|----------|-----------|
| 🥉 | **Contributeur Bronze** | 5 signalements validés + 70% taux pertinence | Signalements prioritaires (+10 points algorithme) |
| 🥈 | **Contributeur Argent** | 20 signalements validés + 80% taux pertinence | Signalements prioritaires (+20 points) + Badge visible profil |
| 🥇 | **Contributeur Or** | 50 signalements validés + 90% taux pertinence | Signalements prioritaires (+30 points) + Badge visible + Réduction Premium |

**Règles d'éligibilité** :
- Minimum **10 signalements envoyés** pour être éligible aux badges
- Les signalements "En cours" ne comptent pas dans le calcul
- Les signalements rejetés font baisser le taux de pertinence

**Calcul du taux de pertinence** :
```
Taux de pertinence = (Signalements validés / Total signalements envoyés) × 100
```

**Période de calcul** :
- Seuls les **6 derniers mois** comptent (période glissante)
- Évite que les utilisateurs se reposent sur leurs lauriers

**Justification** :
- **Simple** : 3 niveaux seulement (pas d'over-engineering)
- **Gratuit** : logique backend + affichage frontend
- **Efficace** : incite la qualité plutôt que la quantité

---

#### 19.1.2 Délai entre obtention badges

**Décision** : Délai minimum entre niveaux

| Transition | Délai minimum |
|------------|---------------|
| **Bronze → Argent** | 30 jours |
| **Argent → Or** | 60 jours |

**Justification** :
- Évite la montée en badge trop rapide (anti-farming)
- Force une contribution régulière sur la durée
- Détecte les patterns suspects (audit modérateur si trop rapide)

---

#### 19.1.3 Découverte du système

**IMPORTANT** : L'utilisateur doit être informé du système de récompenses **dès son premier signalement**.

**Moment d'affichage** :
- Après avoir envoyé le **premier signalement**
- Juste après le toast de confirmation standard
- **2 secondes de délai** avant affichage de la modal

**Modal d'information** (affichage unique, ne se réaffiche jamais) :

```
┌─────────────────────────────────────────────┐
│  🎯 Bravo ! Vous contribuez à une           │
│     communauté plus saine                   │
├─────────────────────────────────────────────┤
│                                             │
│  En signalant ce contenu, vous participez  │
│  activement à améliorer l'expérience de     │
│  tous les utilisateurs RoadWave.            │
│                                             │
│  Vos contributions de qualité sont          │
│  valorisées et récompensées :               │
│                                             │
│  🥉 Bronze : 5 signalements validés         │
│     → Signalements prioritaires             │
│                                             │
│  🥈 Argent : 20 signalements validés        │
│     → Badge visible + priorité accrue       │
│                                             │
│  🥇 Or : 50 signalements validés            │
│     → Réduction Premium -50% pendant 3 mois │
│                                             │
│  💡 Votre taux de pertinence compte !       │
│  Signalements validés ÷ Total × 100        │
│                                             │
│  Continuez à nous aider, chaque            │
│  signalement pertinent compte ! 🙏          │
│                                             │
│  [En savoir plus]  [J'ai compris]          │
└─────────────────────────────────────────────┘
```

**Lien "En savoir plus"** :
- Redirection vers page dédiée expliquant :
  - Calcul détaillé du taux de pertinence
  - Critères d'obtention pour chaque badge
  - Avantages détaillés de chaque niveau
  - Règles anti-abus (limite 10 signalements/24h)
  - Durée de validité des badges (audit trimestriel)

**Coût** : **0€** (modal one-time, logique backend simple)

---

#### 19.1.4 Affichage badges et statistiques

**Badge visible** :
- **Profil utilisateur** : visible par tous les autres utilisateurs
- **Historique signalements** : visible uniquement par l'utilisateur lui-même
- **Toast après obtention** :
  - 🥉 Bronze : "🎉 Félicitations ! Vous êtes désormais Contributeur Bronze. Merci de rendre RoadWave meilleur !"
  - 🥈 Argent : "🎉 Impressionnant ! Badge Contributeur Argent obtenu. Votre engagement fait la différence !"
  - 🥇 Or : "🎉 Exceptionnel ! Vous êtes Contributeur Or. La communauté vous remercie pour votre aide précieuse !"

**Statistiques personnelles** (page Profil > Mes signalements) :
```
📊 Vos statistiques de modération
Signalements envoyés : 27
Validés : 23 ✅
Rejetés : 4 ❌
Taux de pertinence : 85%

Badge actuel : 🥈 Contributeur Argent
Prochain palier : 🥇 Contributeur Or (30 signalements validés restants)
```

**Toast après traitement signalement** :
- Si validé : "✅ Bravo ! Votre signalement a aidé la communauté. Progression : 3/5 pour badge Bronze 🥉"
- Si rejeté : "❌ Signalement non retenu. Taux de pertinence : 60%. Continuez vos efforts !"

**Justification** :
- **Transparence totale** : l'utilisateur voit sa progression en temps réel
- **Motivation** : gamification saine (pas de pression, juste encouragement)
- **Gratifiant** : messages positifs valorisant la contribution

---

### 19.2 Score de fiabilité

**Décision** : Score interne utilisé pour prioriser les signalements dans l'algorithme

#### 19.2.1 Formule

```
Score fiabilité = min(100, (Validés × 10 - Rejetés × 5 + Bonus_Or × 20))
```

**Détails** :
- **Validés** : nombre de signalements validés par modérateurs
- **Rejetés** : nombre de signalements rejetés
- **Bonus_Or** : +20 points si badge Or actif
- **Plafond** : maximum 100 points

**Exemples** :

| Cas | Validés | Rejetés | Badge | Score |
|-----|---------|---------|-------|-------|
| Nouvel utilisateur fiable | 10 | 1 | Aucun | 95 |
| Utilisateur moyen | 15 | 8 | Bronze | 70 |
| Contributeur Or | 50 | 3 | Or | 100 (plafonné) |
| Signaleur abusif | 2 | 20 | Aucun | 0 (min 0) |

---

#### 19.2.2 Utilisation dans l'algorithme de priorisation

**Rappel formule Section 14.2.3** :
```
Priorité = (Score_IA × 0.7) + (Signalements_cumulés × 0.2) + (Fiabilité_signaleur × 0.1)
```

**Intégration** :
- **Fiabilité_signaleur** = Score fiabilité / 100 (normalisé 0-1)
- Les signalements des utilisateurs avec badge Argent/Or passent automatiquement devant les autres (même score IA)

**Affichage à l'utilisateur** :
- **NON affiché** publiquement (risque de gamification abusive)
- **Visible** uniquement dans les stats personnelles :
  ```
  Votre score de fiabilité : 85/100
  → Vos signalements sont traités en priorité
  ```

**Coût** : **0€** (calcul automatique lors du traitement)

---

### 19.3 Statut "Utilisateur de confiance"

**Décision** : Statut automatique pour utilisateurs Badge Argent ou Or

**Critère** :
- Badge **Argent OU Or** actif = automatiquement "Utilisateur de confiance"

**Avantages** :
1. **Priorisation signalements** : traités avant signalements standards (même score IA)
2. **Badge visible** : affichage "Utilisateur de confiance" sur profil public
3. **Notification différée** : résultats sous 12h (au lieu de 24-48h standards)

**Révocation** :
- Perte badge Argent/Or → perte statut confiance automatique
- Retour au statut normal, aucune sanction supplémentaire

**Coût** : **0€** (simple flag booléen calculé automatiquement)

---

### 19.4 Réduction Premium pour badge Or

**Décision** : Seuls les utilisateurs **Contributeur Or** (top contributeurs) obtiennent une réduction Premium

#### 19.4.1 Conditions

| Critère | Valeur |
|---------|--------|
| **Montant** | **-50% pendant 3 mois** (2.49€/mois au lieu de 4.99€) |
| **Éligibilité** | Badge Or actif + pas déjà Premium |
| **Durée** | 3 mois à partir de l'activation |
| **Renouvellement** | Prix normal (4.99€/mois) après 3 mois |
| **Cumul** | Non cumulable avec offre annuelle |
| **Délai activation** | 30 jours après obtention badge Or |

---

#### 19.4.2 Notification

**Email + Push + In-app** dès obtention badge Or :

```
🎉 Exceptionnel ! Vous avez obtenu le badge Contributeur Or

Vous faites partie des meilleurs contributeurs de RoadWave.
Grâce à votre engagement et votre vigilance, vous aidez
des milliers d'utilisateurs à profiter d'une expérience
audio de qualité.

La communauté vous remercie ! 🙏

En reconnaissance de votre aide précieuse, vous bénéficiez de :

✨ 3 mois d'abonnement Premium à -50%
→ 2.49€/mois au lieu de 4.99€

[Profiter de l'offre]

Cette offre est valable pendant 30 jours.
Merci de contribuer à rendre RoadWave meilleur chaque jour !
```

**Rappels** :
- Email + Push J-7 : "Il vous reste 7 jours pour profiter de votre réduction Premium -50%"
- Email + Push J-1 : "Dernière chance ! Votre réduction Premium -50% expire demain"

**Si non activée après 30 jours** :
- Offre expirée (notification : "Votre offre Premium -50% a expiré")
- Badge Or conservé (seule l'offre expire, pas le badge)

---

#### 19.4.3 Perte du badge Or

**Conditions** :
- Taux de pertinence descend sous **90%** après audit trimestriel
- Signalements abusifs détectés (voir Section 19.5)

**Conséquences** :
- **Badge Or révoqué** immédiatement
- **Abonnement Premium en cours** reste actif jusqu'à sa fin normale
- **Nouvelle souscription** à prix normal (4.99€/mois)
- **Pas de nouvelle offre -50%** même si badge Or réobtenu ultérieurement

**Justification** :
- Maintien qualité badges sur le long terme
- Évite abus système

---

#### 19.4.4 ROI et justification

**Coût maximum** : **200€/mois** (si 50 utilisateurs Or simultanés avec réduction active)

**ROI attendu** :
- **1 utilisateur Or** = économie ~5-10h modération/mois = 75-150€ économisés (taux horaire modérateur ~15€/h)
- **10 utilisateurs Or actifs** = 750-1500€ économisés > 200€ coût réductions
- **ROI positif dès 2-3 utilisateurs Or actifs**

**Justification** :
- **Incitation forte** pour meilleurs contributeurs uniquement
- **Conversion** : utilisateurs gratuits très engagés → Premium payant après 3 mois
- **Risque limité** : coût max plafonné, largement compensé par économie modération

---

### 19.5 Anti-abus

**CRITIQUE** : Système de protection contre les comportements abusifs

#### 19.5.1 Limite temporelle

**Décision** : Maximum 10 signalements / 24h par utilisateur

**Règles** :
- Au-delà de 10 signalements/24h → signalements automatiquement rejetés
- Alerte modérateur automatique (enquête manuelle)
- Message utilisateur : "Limite quotidienne atteinte (10 signalements/24h). Réessayez demain."

**Justification** :
- Évite signalement massif (farming)
- 10/jour = largement suffisant pour usage légitime
- Coût : 0€

---

#### 19.5.2 Détection patterns suspects

**Audit automatique hebdomadaire** :

```sql
-- Détection signaleurs suspects
SELECT user_id, COUNT(*) as total
FROM reports
WHERE created_at > NOW() - INTERVAL '7 days'
GROUP BY user_id
HAVING COUNT(*) > 30
```

**Action** :
- Enquête manuelle modérateur
- Révocation badge si abus confirmé

**Patterns détectés** :
- Signalement massif (>30/semaine)
- Taux de pertinence <50% malgré volume élevé
- Signalements tous rejetés sur période 7 jours
- Signalements ciblant toujours même créateur (harcèlement)

---

#### 19.5.3 Audit trimestriel automatique

**Décision** : Tous les 3 mois, recalcul badges et révocation si critères non respectés

**Processus** :
1. Recalcul taux pertinence sur période glissante 6 mois
2. Vérification critères :
   - Bronze : minimum 70% pertinence
   - Argent : minimum 80% pertinence
   - Or : minimum 90% pertinence
3. Révocation badge si taux insuffisant
4. Email notification **7 jours avant audit** :
   ```
   Votre badge Contributeur Argent sera audité dans 7 jours.
   Taux de pertinence actuel : 78%
   Minimum requis : 80%

   Continuez à signaler du contenu pertinent pour conserver votre badge !
   ```

**Après audit** :
- Email résultat : "Badge conservé ✓" ou "Badge révoqué ✗"
- Possibilité de réobtenir badge ultérieurement (pas de ban)

**Justification** :
- Maintien qualité badges sur le long terme
- Évite repos sur lauriers
- Coût : 0€ (script automatique)

---

#### 19.5.4 Sanctions abus détecté

| Gravité | Abus détecté | Sanction |
|---------|--------------|----------|
| **Mineur** | >10 signalements/jour pendant 1 jour | Avertissement + limite 5/jour pendant 7 jours |
| **Modéré** | >30 signalements/semaine avec <50% pertinence | Révocation badge + interdiction signalement 30 jours |
| **Grave** | Signalements massifs coordonnés (farming) | Ban permanent fonctionnalité signalement + révocation tous badges |

**Notification sanction** :
- Email + Push + In-app
- Explication détaillée de l'abus détecté
- Durée sanction
- **Pas de recours** pour sanctions graves (farming confirmé)

---

## Récapitulatif Section 19

| Point | Décision | Coût |
|-------|----------|------|
| **Badges (3 niveaux)** | Bronze (5), Argent (20), Or (50) signalements validés | 0€ |
| **Modal découverte** | Affichage unique au 1er signalement | 0€ |
| **Score fiabilité** | Calcul automatique pour priorisation | 0€ |
| **Utilisateurs de confiance** | Statut auto Argent/Or | 0€ |
| **Réduction Premium Or** | -50% pendant 3 mois (Post-MVP) | 0-200€/mois |
| **Limite temporelle** | Max 10 signalements/24h | 0€ |
| **Audit trimestriel** | Révocation si critères non respectés | 0€ |
| **Sanctions abus** | Mineur/Modéré/Grave selon pattern | 0€ |

**Coût total MVP** : **0€**

**Coût total Post-MVP** : **0-200€/mois** (réductions Premium Or)

**ROI** : **Positif dès 2-3 utilisateurs Or actifs** (économie modération > coût réductions)

---

**Conformité** :
- ✅ RGPD : données modération anonymisées après 3 ans
- ✅ Transparence : utilisateur informé dès le 1er signalement
- ✅ Anti-discrimination : système accessible à tous, basé uniquement sur pertinence

**Scalabilité** :
- 0-100 utilisateurs actifs : système automatique, 0€
- 100-1000 utilisateurs actifs : 0-50€/mois (quelques badges Or)
- 1000+ utilisateurs actifs : 50-200€/mois (max 50 badges Or simultanés)

---

**Prochaine section à clarifier** : Section 20 (si nécessaire) ou validation complète règles métier
