# language: fr
Fonctionnalité: Conditions d'activation de la monétisation
  En tant que créateur
  Je veux pouvoir activer la monétisation quand je remplis les critères
  Afin de générer des revenus avec mes contenus

  Contexte:
    Étant donné que l'API RoadWave est disponible
    Et que je suis connecté en tant que créateur

  Scénario: Critère 1 - Ancienneté de 3 mois validée
    Étant donné que mon compte a été créé il y a 91 jours
    Quand je consulte les critères de monétisation
    Alors le critère "Ancienneté ≥ 3 mois" est validé ✅

  Scénario: Critère 1 - Ancienneté insuffisante
    Étant donné que mon compte a été créé il y a 60 jours
    Quand je consulte les critères de monétisation
    Alors le critère "Ancienneté ≥ 3 mois" n'est pas validé ❌
    Et je vois "Encore 30 jours avant d'être éligible"

  Scénario: Critère 2 - 500 abonnés atteints
    Étant donné que j'ai exactement 500 abonnés
    Quand je consulte les critères de monétisation
    Alors le critère "≥ 500 abonnés" est validé ✅

  Scénario: Critère 2 - Pas assez d'abonnés
    Étant donné que j'ai 347 abonnés
    Quand je consulte les critères de monétisation
    Alors le critère "≥ 500 abonnés" n'est pas validé ❌
    Et je vois "Encore 153 abonnés nécessaires"

  Scénario: Critère 3 - 10 000 écoutes complètes atteintes
    Étant donné que mes contenus ont cumulé 10 487 écoutes complètes
    Quand je consulte les critères de monétisation
    Alors le critère "≥ 10 000 écoutes complètes" est validé ✅

  Scénario: Critère 3 - Écoutes incomplètes non comptabilisées
    Étant donné que mes contenus ont:
      | type écoute           | nombre |
      | Écoutes complètes     | 8 500  |
      | Écoutes <80%          | 3 000  |
    Quand je consulte les critères de monétisation
    Alors seules les 8 500 écoutes complètes comptent
    Et je vois "Encore 1 500 écoutes complètes nécessaires"

  Scénario: Critère 4 - Aucun strike actif
    Étant donné que je n'ai aucun strike actif
    Et que je n'ai eu aucun contenu modéré dans les 6 derniers mois
    Quand je consulte les critères de monétisation
    Alors le critère "Fiabilité" est validé ✅

  Scénario: Critère 4 - Strike actif bloque l'éligibilité
    Étant donné que j'ai 1 strike actif pour contenu inapproprié
    Quand je consulte les critères de monétisation
    Alors le critère "Fiabilité" n'est pas validé ❌
    Et je vois "Vous devez résoudre votre strike avant d'être éligible"

  Scénario: Critère 4 - Contenu modéré dans les 6 derniers mois
    Étant donné que je n'ai pas de strike actif
    Mais qu'un de mes contenus a été modéré il y a 4 mois
    Quand je consulte les critères de monétisation
    Alors le critère "Fiabilité" n'est pas validé ❌
    Et je vois "Attendre 2 mois après le dernier contenu modéré"

  Scénario: Critère 5 - 5 contenus publiés dans les 90 derniers jours
    Étant donné que j'ai publié:
      | date de publication | titre       |
      | Il y a 15 jours     | Contenu 1   |
      | Il y a 30 jours     | Contenu 2   |
      | Il y a 45 jours     | Contenu 3   |
      | Il y a 60 jours     | Contenu 4   |
      | Il y a 75 jours     | Contenu 5   |
    Quand je consulte les critères de monétisation
    Alors le critère "≥ 5 contenus publiés dans les 90 derniers jours" est validé ✅

  Scénario: Critère 5 - Contenus trop anciens ne comptent pas
    Étant donné que j'ai publié:
      | date de publication | titre       |
      | Il y a 15 jours     | Contenu 1   |
      | Il y a 30 jours     | Contenu 2   |
      | Il y a 95 jours     | Contenu 3   |
      | Il y a 120 jours    | Contenu 4   |
    Quand je consulte les critères de monétisation
    Alors seuls 2 contenus comptent (dans les 90 jours)
    Et je vois "Encore 3 contenus à publier dans les 90 prochains jours"

  Scénario: Tous les critères validés - Bouton disponible
    Étant donné que tous mes critères sont validés:
      | critère                  | statut |
      | Ancienneté ≥ 3 mois      | ✅     |
      | ≥ 500 abonnés            | ✅     |
      | ≥ 10 000 écoutes         | ✅     |
      | Fiabilité                | ✅     |
      | Régularité (5 contenus)  | ✅     |
    Quand j'accède à mon profil créateur
    Alors le bouton "Demander la monétisation" est actif
    Et je peux cliquer pour démarrer le KYC

  Scénario: Critères incomplets - Bouton grisé avec progression
    Étant donné que mes critères sont:
      | critère                  | statut | progression       |
      | Ancienneté ≥ 3 mois      | ✅     | 100%              |
      | ≥ 500 abonnés            | ❌     | 347/500 (69%)     |
      | ≥ 10 000 écoutes         | ❌     | 8500/10000 (85%)  |
      | Fiabilité                | ✅     | 100%              |
      | Régularité (5 contenus)  | ✅     | 100%              |
    Quand j'accède à mon profil créateur
    Alors le bouton "Demander la monétisation" est grisé
    Et je vois la progression détaillée de chaque critère

  Scénario: Vérification automatique SQL lors de la demande
    Étant donné que je clique sur "Demander la monétisation"
    Quand le système vérifie mes critères
    Alors une requête SQL est exécutée:
      ```sql
      SELECT
        (created_at <= NOW() - INTERVAL '3 months') AS anciennete_ok,
        (SELECT COUNT(*) FROM subscriptions WHERE creator_id = :creator_id) >= 500 AS abonnes_ok,
        (SELECT SUM(complete_listens) FROM contents WHERE creator_id = :creator_id) >= 10000 AS ecoutes_ok,
        (SELECT COUNT(*) FROM strikes WHERE creator_id = :creator_id AND status = 'active') = 0 AS strikes_ok,
        (SELECT COUNT(*) FROM moderated_contents WHERE creator_id = :creator_id AND moderated_at >= NOW() - INTERVAL '6 months') = 0 AS moderation_ok,
        (SELECT COUNT(*) FROM contents WHERE creator_id = :creator_id AND published_at >= NOW() - INTERVAL '90 days') >= 5 AS regularite_ok
      FROM users WHERE id = :creator_id;
      ```
    Et si tous les critères sont TRUE, je suis redirigé vers le KYC

  Scénario: Notification par email quand critères atteints
    Étant donné que je viens d'atteindre 500 abonnés
    Et que c'était mon dernier critère manquant
    Quand le système détecte l'éligibilité
    Alors je reçois un email:
      """
      Félicitations ! Vous êtes maintenant éligible à la monétisation.
      Accédez à votre profil pour activer la monétisation et commencer à gagner des revenus.
      """

  Scénario: Badge "Éligible monétisation" dans profil
    Étant donné que je remplis tous les critères
    Mais que je n'ai pas encore activé la monétisation
    Quand un utilisateur consulte mon profil
    Alors il voit un badge "Éligible monétisation 💰"
    Et cela renforce ma crédibilité de créateur

  Scénario: Justification anti-fraude - Délai 3 mois
    Étant donné qu'un compte suspect crée du contenu frauduleux
    Quand le compte est détecté dans les 2 premiers mois
    Alors le compte est banni avant d'atteindre les 3 mois
    Et le créateur n'a jamais été éligible à la monétisation
    Et aucun paiement n'a été effectué

  Scénario: Justification qualité - 10 000 écoutes
    Étant donné qu'un créateur produit du contenu de mauvaise qualité
    Quand ses contenus ne génèrent que 2 000 écoutes complètes
    Alors il ne peut pas activer la monétisation
    Et seuls les créateurs avec contenu apprécié sont monétisés

  Scénario: Réduction coût administratif plateforme
    Étant donné que RoadWave a 10 000 créateurs inscrits
    Et que seuls 500 remplissent tous les critères
    Quand le système calcule le coût administratif
    Alors seulement 500 KYC sont à gérer (vs 10 000)
    Et seulement 500 virements mensuels (vs 10 000)
    Et la charge comptable est réduite de 95%

  Scénario: Statistiques publiques pour transparence
    Quand un utilisateur consulte la page "Devenir créateur"
    Alors il voit les statistiques:
      | métrique                                | valeur exemple |
      | Nombre créateurs monétisés              | 1 247          |
      | Revenus moyens par créateur             | 127€/mois      |
      | Top créateur (anonymisé)                | 2 450€/mois    |
      | Critères d'éligibilité à remplir        | 5 critères     |
    Et cela permet de fixer des attentes réalistes

  Scénario: Cache Redis pour calcul rapide critères
    Étant donné que je consulte mes critères de monétisation
    Quand le système charge la page
    Alors les compteurs sont récupérés depuis Redis:
      | clé Redis                              | exemple valeur |
      | creator:[id]:subscribers_count         | 347            |
      | creator:[id]:complete_listens_total    | 8500           |
      | creator:[id]:recent_contents_count     | 7              |
    Et le temps de réponse est <50ms

  Scénario: Mise à jour temps réel des compteurs
    Étant donné que je viens de publier un nouveau contenu
    Quand un utilisateur écoute ce contenu en entier
    Alors le compteur "complete_listens_total" est incrémenté immédiatement
    Et si je rafraîchis la page critères, je vois la nouvelle valeur
    Et cela encourage les créateurs à continuer de produire

  Scénario: Historique des tentatives d'activation
    Étant donné que j'ai tenté d'activer la monétisation il y a 2 mois
    Mais que les critères n'étaient pas remplis
    Quand j'accède à mes logs d'activité
    Alors je vois:
      | date       | action                  | résultat       | raison           |
      | 2025-11-15 | Demande monétisation    | Refusée        | Seulement 300 abonnés |
    Et cela m'aide à suivre ma progression

  Scénario: Performance avec 100 000 créateurs
    Étant donné que RoadWave a 100 000 créateurs
    Et que chacun consulte ses critères 1 fois par jour
    Quand le système traite ces requêtes
    Alors la table users est indexée sur created_at
    Et la table subscriptions est indexée sur creator_id
    Et la table contents est indexée sur creator_id et published_at
    Et chaque requête reste <50ms grâce aux index

  Scénario: Export des critères pour support client
    Étant donné que je contacte le support car je pense être éligible
    Quand l'agent support consulte mon compte
    Alors il voit un export JSON complet:
      ```json
      {
        "creator_id": "abc123",
        "monetization_eligible": false,
        "criteria": {
          "account_age_days": 75,
          "account_age_ok": false,
          "subscribers_count": 512,
          "subscribers_ok": true,
          "complete_listens_total": 11234,
          "complete_listens_ok": true,
          "active_strikes": 0,
          "strikes_ok": true,
          "moderated_contents_6m": 1,
          "moderation_ok": false,
          "recent_contents_90d": 8,
          "regularity_ok": true
        },
        "blocking_criteria": ["account_age", "moderation_history"]
      }
      ```
    Et l'agent peut expliquer précisément pourquoi je ne suis pas éligible

  Scénario: Notification 30 jours avant éligibilité probable
    Étant donné que mes critères sont:
      | critère                  | statut | progression |
      | Ancienneté ≥ 3 mois      | ❌     | 60/90 jours |
      | Tous les autres critères | ✅     | 100%        |
    Quand il reste exactement 30 jours avant les 90 jours
    Alors je reçois une notification:
      """
      Plus que 30 jours avant d'être éligible à la monétisation !
      Préparez vos documents KYC (SIRET, RIB, CNI) pour gagner du temps.
      """

  Scénario: Pas de bypass possible pour amis/influenceurs
    Étant donné qu'un créateur influent me contacte directement
    Et qu'il demande un bypass des critères
    Quand je consulte la politique RoadWave
    Alors la réponse est "Aucune exception possible, critères automatiques uniquement"
    Et cela garantit l'équité pour tous les créateurs

  Scénario: A/B test futur sur seuils (post-MVP)
    Étant donné que RoadWave veut tester des seuils différents
    Quand un A/B test est lancé en 2027
    Alors groupe A voit: 500 abonnés, 10 000 écoutes
    Et groupe B voit: 300 abonnés, 5 000 écoutes
    Et les métriques (taux activation, fraude, qualité) sont comparées
    Et le meilleur seuil est déployé définitivement
