# language: fr
Fonctionnalité: Sources de revenus créateurs
  En tant que créateur monétisé
  Je veux générer des revenus via publicités et abonnés Premium
  Afin d'être rémunéré pour mon travail

  Contexte:
    Étant donné que je suis un créateur avec la monétisation activée
    Et que mon KYC est validé

  # ===== PUBLICITÉS (UTILISATEURS GRATUITS) =====

  Scénario: CPM créateur de 3€ / 1000 écoutes complètes
    Étant donné que mes contenus ont généré 1000 écoutes complètes par des utilisateurs gratuits
    Quand le calcul des revenus du mois est effectué
    Alors je touche 3.00€ pour ces 1000 écoutes
    Et ce montant est ajouté à mon solde disponible

  Scénario: 10 000 écoutes gratuits → 30€ de revenus pub
    Étant donné que mes contenus ont généré 10 000 écoutes complètes (utilisateurs gratuits)
    Quand le mois se termine
    Alors je touche 30.00€ de revenus publicitaires
    Et ces revenus sont visibles en temps réel dans mon tableau de bord

  Scénario: 50 000 écoutes gratuits → 150€ de revenus pub
    Étant donné que mes contenus ont généré 50 000 écoutes complètes (utilisateurs gratuits)
    Quand le mois se termine
    Alors je touche 150.00€ de revenus publicitaires

  Scénario: 100 000 écoutes gratuits → 300€ de revenus pub
    Étant donné que mes contenus ont généré 100 000 écoutes complètes (utilisateurs gratuits)
    Quand le mois se termine
    Alors je touche 300.00€ de revenus publicitaires

  Scénario: Répartition économique - Plateforme garde 94%
    Étant donné qu'une publicité facturée 0.05€/écoute génère 50€ CPM
    Quand la plateforme calcule la répartition
    Alors le créateur touche 3€ (6% du CA pub)
    Et la plateforme garde 47€ (94%) pour:
      | poste budgétaire         | coût estimé |
      | CDN + infrastructure     | 10-15€      |
      | Modération + support     | 5-10€       |
      | Développement + R&D      | 10-15€      |
      | Marge opérationnelle     | 10-15€      |

  Scénario: Écoute complète = ≥80% du contenu écouté
    Étant donné qu'un utilisateur gratuit écoute mon contenu de 10 minutes
    Quand il écoute 8 minutes (80%)
    Alors l'écoute compte comme "complète"
    Et je génère 0.003€ de revenus pub (3€/1000)

  Scénario: Écoute incomplète <80% ne compte pas
    Étant donné qu'un utilisateur gratuit écoute mon contenu de 10 minutes
    Mais il skip après 5 minutes (50%)
    Quand le calcul des revenus est effectué
    Alors cette écoute ne compte pas comme "complète"
    Et je ne génère aucun revenu publicitaire pour cette écoute

  Scénario: Écoutes Premium ne comptent pas pour les revenus pub
    Étant donné qu'un utilisateur Premium écoute 100% de mon contenu
    Quand le calcul des revenus publicitaires est effectué
    Alors cette écoute ne compte pas dans les revenus pub
    Car les utilisateurs Premium ne voient pas de publicités
    Mais elle compte dans les revenus Premium (système séparé)

  Scénario: Détection bots - Écoutes exclues
    Étant donné qu'un bot génère 10 000 écoutes artificielles sur mes contenus
    Quand le système détecte le pattern suspect (rate limiting, IP unique, etc.)
    Alors ces écoutes sont marquées comme frauduleuses
    Et elles sont exclues du calcul des revenus publicitaires

  Scénario: Comparaison avec YouTube (3-5€/1000 vues)
    Étant donné que YouTube paie 3-5€/1000 vues
    Quand RoadWave fixe le CPM créateur à 3€/1000 écoutes
    Alors le tarif est aligné sur le bas de la fourchette YouTube
    Et cela est compétitif pour un MVP sans marché publicitaire mature

  Scénario: Comparaison avec Spotify (3-4€/1000 écoutes)
    Étant donné que Spotify paie ~3-4€/1000 écoutes
    Quand RoadWave fixe le CPM créateur à 3€/1000 écoutes
    Alors le tarif est aligné sur l'industrie musicale
    Et les créateurs audio peuvent anticiper des revenus similaires

  Scénario: Tableau de bord - Revenus pub temps réel
    Étant donné que j'accède à mon tableau de bord créateur
    Quand je consulte mes revenus publicitaires
    Alors je vois:
      | métrique                           | valeur exemple |
      | Écoutes complètes ce mois (gratuit)| 23 456         |
      | Revenus pub ce mois                | 70.37€         |
      | CPM effectif                       | 3.00€          |
    Et ces valeurs sont mises à jour toutes les 10 minutes

  # ===== ABONNÉS PREMIUM =====

  Scénario: Répartition 70/30 - Créateur touche 70%
    Étant donné qu'un utilisateur Premium paie 4.99€/mois
    Quand la répartition est calculée
    Alors 3.49€ sont reversés aux créateurs écoutés (70%)
    Et 1.50€ sont gardés par la plateforme (30%)

  Scénario: Utilisateur écoute 3 créateurs - Répartition proportionnelle
    Étant donné qu'un utilisateur Premium paie 4.99€/mois
    Et qu'il écoute 3 créateurs ce mois:
      | créateur   | temps écoute | ratio |
      | Créateur A | 10h          | 50%   |
      | Créateur B | 6h           | 30%   |
      | Créateur C | 4h           | 20%   |
    Quand le calcul des revenus Premium est effectué
    Alors la répartition est:
      | créateur   | revenus |
      | Créateur A | 1.75€   |
      | Créateur B | 1.05€   |
      | Créateur C | 0.70€   |
    Et la somme totale versée aux créateurs est 3.50€ (70% de 4.99€)

  Scénario: Calcul SQL proportionnel au temps d'écoute
    Étant donné qu'un utilisateur Premium a écouté plusieurs créateurs
    Quand le système calcule les revenus du mois
    Alors la requête SQL suivante est exécutée:
      ```sql
      SELECT
          creator_id,
          SUM(listen_duration_seconds) AS total_seconds,
          (SUM(listen_duration_seconds) / (SELECT SUM(listen_duration_seconds) FROM premium_listens WHERE user_id = :user_id AND month = :current_month)) AS ratio,
          (4.99 * 0.70 * ratio) AS revenue_euros
      FROM premium_listens
      WHERE user_id = :user_id
        AND month = :current_month
      GROUP BY creator_id;
      ```

  Scénario: Utilisateur écoute un seul créateur - 100% à ce créateur
    Étant donné qu'un utilisateur Premium paie 4.99€/mois
    Et qu'il n'écoute qu'un seul créateur (moi)
    Quand le mois se termine
    Alors je touche 3.49€ (70% de 4.99€)
    Et je reçois 100% de la part créateurs

  Scénario: Utilisateur Premium inactif - Aucun revenu généré
    Étant donné qu'un utilisateur Premium paie 4.99€/mois
    Mais qu'il n'écoute aucun contenu ce mois
    Quand le calcul des revenus Premium est effectué
    Alors aucun créateur ne reçoit de revenus de cet utilisateur
    Et les 3.49€ de la part créateurs restent à la plateforme
    Et cela couvre les coûts d'infrastructure

  Scénario: Comparaison avec YouTube Premium (70/30)
    Étant donné que YouTube Premium reverse 70% aux créateurs
    Quand RoadWave fixe également 70/30
    Alors le modèle est aligné sur le standard industrie
    Et les créateurs ont confiance dans l'équité du système

  Scénario: Comparaison avec Spotify (70/30)
    Étant donné que Spotify reverse 70% aux artistes
    Quand RoadWave fixe également 70/30
    Alors le modèle est identique à Spotify
    Et les créateurs audio comprennent facilement le système

  Scénario: Apple Music moins avantageux (52/48)
    Étant donné qu'Apple Music ne reverse que 52% aux artistes
    Quand RoadWave offre 70% aux créateurs
    Alors RoadWave est plus avantageux de 18 points
    Et cela devient un argument marketing fort

  Scénario: Justification équité - Créateurs les plus écoutés gagnent plus
    Étant donné que 2 créateurs ont le même nombre d'abonnés Premium
    Mais que le Créateur A est écouté 20h/mois et le Créateur B seulement 2h/mois
    Quand les revenus Premium sont calculés
    Alors le Créateur A gagne 10× plus que le Créateur B
    Et cela récompense la qualité et l'engagement (pas juste l'abonnement)

  Scénario: Pas de "winner takes all" - Équité totale
    Étant donné qu'un utilisateur Premium écoute 10 créateurs différents
    Quand les revenus sont calculés
    Alors chacun des 10 créateurs reçoit sa part proportionnelle
    Et il n'y a pas de système où un seul créateur prend tout

  Scénario: Marge plateforme 30% couvre absence revenus pub Premium
    Étant donné qu'un utilisateur Premium ne voit aucune publicité
    Quand la plateforme calcule ses revenus
    Alors elle ne touche que les 30% de l'abonnement Premium (1.50€)
    Et cette marge compense la perte des revenus publicitaires (qui auraient été ~47€/1000 écoutes)

  Scénario: Tableau de bord - Revenus Premium temps réel
    Étant donné que j'accède à mon tableau de bord créateur
    Quand je consulte mes revenus Premium
    Alors je vois:
      | métrique                              | valeur exemple |
      | Abonnés Premium actifs ayant écouté   | 47             |
      | Heures d'écoute Premium ce mois       | 234h           |
      | Revenus Premium ce mois               | 89.23€         |
    Et ces valeurs sont mises à jour toutes les 10 minutes

  # ===== CUMUL REVENUS PUB + PREMIUM =====

  Scénario: Revenus cumulés pub + premium
    Étant donné que j'ai généré ce mois:
      | source           | montant |
      | Revenus pub      | 150.00€ |
      | Revenus Premium  | 89.23€  |
    Quand je consulte mon solde disponible
    Alors le total est 239.23€
    Et ce solde sera versé le 15 du mois prochain (si ≥50€)

  Scénario: Dashboard créateur - Vue d'ensemble
    Étant donné que j'accède à mon tableau de bord créateur
    Quand je consulte la page revenus
    Alors je vois:
      ```
      ===== REVENUS DU MOIS EN COURS =====

      📊 Publicités (utilisateurs gratuits)
      - Écoutes complètes: 50,234
      - Revenus pub: 150.70€

      👑 Abonnés Premium
      - Abonnés actifs: 47
      - Heures d'écoute: 234h
      - Revenus Premium: 89.23€

      💰 TOTAL CE MOIS: 239.93€

      ===== HISTORIQUE =====
      Mois dernier: 178.45€ (versé le 15/01)
      Il y a 2 mois: 156.78€ (versé le 15/12)
      ```

  Scénario: Export comptable CSV pour expert-comptable
    Étant donné que je clique sur "Exporter pour comptable"
    Quand l'export est généré
    Alors je télécharge un fichier CSV:
      ```csv
      Mois,Revenus Pub,Revenus Premium,Total,Statut
      2025-01,150.70,89.23,239.93,En attente versement
      2024-12,123.45,55.00,178.45,Versé le 15/01/2025
      2024-11,100.30,56.48,156.78,Versé le 15/12/2024
      ```
    Et je peux transmettre ce fichier à mon expert-comptable

  Scénario: Notification hebdomadaire progression revenus
    Étant donné que je suis créateur monétisé
    Quand chaque lundi matin arrive
    Alors je reçois un email récapitulatif:
      """
      📊 Vos revenus de la semaine dernière:
      - Revenus pub: +23.45€ (3,456 écoutes)
      - Revenus Premium: +12.78€ (12 abonnés actifs)
      - Total semaine: 36.23€
      - Projection mois: ~150€
      """

  Scénario: Graphique évolution revenus sur 12 mois
    Étant donné que je suis monétisé depuis 12 mois
    Quand j'accède à mes statistiques
    Alors je vois un graphique en courbes montrant:
      | mois    | revenus pub | revenus premium | total  |
      | Jan 25  | 150€        | 89€             | 239€   |
      | Déc 24  | 123€        | 55€             | 178€   |
      | Nov 24  | 100€        | 56€             | 156€   |
      | ...     | ...         | ...             | ...    |
    Et cela m'aide à suivre ma progression

  Scénario: Top 3 contenus les plus rentables du mois
    Étant donné que j'ai publié 20 contenus ce mois
    Quand je consulte mes statistiques détaillées
    Alors je vois mon top 3 contenus:
      | titre              | écoutes | revenus pub | revenus premium | total  |
      | Mon meilleur épisode | 12,345 | 37.04€      | 23.45€          | 60.49€ |
      | Discussion tech    | 8,901   | 26.70€      | 15.67€          | 42.37€ |
      | Road trip Bretagne | 7,234   | 21.70€      | 12.34€          | 34.04€ |
    Et cela m'aide à comprendre quel type de contenu plaît le plus

  Scénario: Alertes seuils de revenus
    Étant donné que j'ai activé les notifications de seuils
    Quand mes revenus du mois dépassent 100€ pour la première fois
    Alors je reçois une notification:
      """
      🎉 Félicitations ! Vous venez de dépasser 100€ de revenus ce mois !
      Continuez comme ça !
      """

  Scénario: Performance calcul avec 100 000 créateurs
    Étant donné que RoadWave a 100 000 créateurs monétisés
    Quand le calcul des revenus mensuels est lancé le dernier jour du mois
    Alors un job asynchrone traite tous les créateurs
    Et le calcul prend environ 2-4 heures pour tous les créateurs
    Et les résultats sont stockés dans la table monthly_revenues

  Scénario: Cache Redis pour métriques temps réel
    Étant donné que je consulte mon dashboard plusieurs fois par jour
    Quand la page se charge
    Alors les compteurs sont récupérés depuis Redis:
      | clé Redis                                | valeur exemple |
      | creator:[id]:complete_listens:202501     | 50234          |
      | creator:[id]:premium_hours:202501        | 234            |
      | creator:[id]:revenue_ads:202501          | 150.70         |
      | creator:[id]:revenue_premium:202501      | 89.23          |
    Et le temps de réponse est <30ms

  Scénario: Prévision revenus fin de mois
    Étant donné que nous sommes le 20 du mois
    Et que mes revenus actuels sont 160€
    Quand le système calcule la projection
    Alors il estime les revenus fin de mois à ~240€ (extrapolation linéaire)
    Et affiche "Projection fin de mois: ~240€"
    Et cela m'aide à anticiper mes revenus
