feat(bdd): réorganiser features en catégories api/ui/e2e et créer ADR-024
Résolution des incohérences #10, #11, et #12 de l'analyse d'architecture. ## Phase 1 : Réorganisation Features BDD (Point #10 - RÉSOLU) - Créer structure features/{api,ui,e2e} - Déplacer 83 features en 3 catégories via git mv (historique préservé) - features/api/ : 53 features (tests API backend) - features/ui/ : 22 features (tests UI mobile) - features/e2e/ : 8 features (tests end-to-end) Domaines déplacés : - API : authentication, recommendation, rgpd-compliance, content-creation, moderation, monetisation, premium, radio-live, publicites - UI : audio-guides, navigation, interest-gauges, mode-offline, partage, profil, recherche - E2E : abonnements, error-handling ## Phase 2 : Mise à jour Documentation ### ADR-007 - Tests BDD - Ajouter section "Convention de Catégorisation des Features" - Documenter règles api/ui/e2e avec exemples concrets - Spécifier step definitions (backend Go, mobile Dart) ### ADR-024 - Stratégie CI/CD Monorepo (NOUVEAU) - Créer ADR dédié pour stratégie CI/CD avec path filters - Architecture workflows séparés (backend.yml, mobile.yml, shared.yml) - Configuration path filters détaillée avec exemples YAML - Matrice de déclenchement et optimisations (~70% gain temps CI) - Plan d'implémentation (~2h, reporté jusqu'au développement) ### ADR-016 - Organisation Monorepo - Simplifier en retirant section CI/CD détaillée - Ajouter référence vers ADR-024 pour stratégie CI/CD ### INCONSISTENCIES-ANALYSIS.md - Point #10 (Tests BDD synchronisés) : ✅ RÉSOLU - Catégorisation features implémentée - ADR-007 mis à jour avec convention complète - Point #11 (70/30 Split paiements) : ✅ ANNULÉ (faux problème) - ADR-009 et Règle 18 parfaitement cohérents - Documentation exhaustive existante (formule, SQL, comparaisons) - Point #12 (Monorepo path filters) : ⏸️ DOCUMENTÉ - Architecture CI/CD complète dans ADR-024 - Implémentation reportée (projet en phase documentation) - Métriques mises à jour : - MODERATE : 6/9 traités (4 résolus + 1 annulé + 1 documenté) - ADR à jour : 100% (19/19 avec ADR-024) ## Phase 3 : Validation - Structure features validée (api/ui/e2e, aucun répertoire restant) - Historique Git préservé (git mv, renommages détectés) - 83 features total (API: 53, UI: 22, E2E: 8) Closes: Point #10 (résolu), Point #11 (annulé), Point #12 (documenté) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
308
features/api/monetisation/paiement-createurs.feature
Normal file
308
features/api/monetisation/paiement-createurs.feature
Normal file
@@ -0,0 +1,308 @@
|
||||
# language: fr
|
||||
Fonctionnalité: Paiement des créateurs
|
||||
En tant que créateur monétisé
|
||||
Je veux recevoir mes paiements mensuels de manière fiable
|
||||
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é
|
||||
|
||||
Scénario: Seuil minimum de 50€ atteint - Paiement effectué
|
||||
Étant donné que mes revenus du mois sont 73.45€
|
||||
Quand le dernier jour du mois arrive
|
||||
Alors mon solde de 73.45€ est transféré vers "en attente de paiement"
|
||||
Et le paiement sera effectué le 15 du mois prochain
|
||||
|
||||
Scénario: Seuil minimum de 50€ non atteint - Report mois suivant
|
||||
Étant donné que mes revenus du mois sont 32.17€
|
||||
Quand le dernier jour du mois arrive
|
||||
Alors mon solde de 32.17€ est reporté au mois suivant
|
||||
Et je vois "Solde insuffisant pour paiement (<50€). Report mois prochain."
|
||||
|
||||
Scénario: Cumul sur plusieurs mois jusqu'à atteindre 50€
|
||||
Étant donné que mes revenus sont:
|
||||
| mois | revenus | solde cumulé |
|
||||
| Janvier | 18.50€ | 18.50€ |
|
||||
| Février | 22.30€ | 40.80€ |
|
||||
| Mars | 15.70€ | 56.50€ |
|
||||
Quand la fin du mois de mars arrive
|
||||
Alors le solde cumulé de 56.50€ dépasse les 50€
|
||||
Et un paiement de 56.50€ est effectué le 15 avril
|
||||
|
||||
Scénario: Calcul des revenus le dernier jour du mois
|
||||
Étant donné que nous sommes le 31 janvier à 23h59
|
||||
Quand le système calcule les revenus du mois
|
||||
Alors une requête SQL agrège tous les revenus pub et premium
|
||||
Et le solde final du mois est figé dans monthly_revenues
|
||||
Et le compteur du mois en cours repart à 0€ le 1er février
|
||||
|
||||
Scénario: Période de traitement contestations 1-14 du mois
|
||||
Étant donné que mes revenus de janvier sont calculés à 150.00€
|
||||
Quand la période du 1-14 février arrive
|
||||
Alors RoadWave analyse les éventuelles fraudes ou contestations
|
||||
Et si une fraude est détectée, les revenus concernés sont retirés du solde
|
||||
Et le solde final est validé le 14 février
|
||||
|
||||
Scénario: Virement SEPA le 15 du mois suivant
|
||||
Étant donné que mes revenus de janvier validés sont 150.00€
|
||||
Quand le 15 février arrive
|
||||
Alors Mangopay initie un virement SEPA depuis mon e-wallet vers mon RIB
|
||||
Et le statut du paiement passe à "En cours"
|
||||
|
||||
Scénario: Réception virement 16-18 du mois (1-3 jours SEPA)
|
||||
Étant donné qu'un virement SEPA a été initié le 15 février
|
||||
Quand 1-3 jours ouvrés s'écoulent
|
||||
Alors je reçois le virement sur mon compte bancaire entre le 16 et 18 février
|
||||
Et je peux consulter l'historique des paiements dans mon dashboard
|
||||
|
||||
Scénario: Virement SEPA gratuit pour comptes EU
|
||||
Étant donné que mon RIB est français (IBAN FR)
|
||||
Quand Mangopay effectue le virement
|
||||
Alors aucun frais n'est prélevé (virement SEPA gratuit)
|
||||
Et je reçois 100% du montant annoncé
|
||||
|
||||
Scénario: Virement international hors EU avec frais variables
|
||||
Étant donné que je suis créateur expatrié avec RIB hors Union Européenne
|
||||
Quand Mangopay effectue le virement international
|
||||
Alors des frais variables s'appliquent selon le pays
|
||||
Et les frais sont déduits du montant final
|
||||
Et je vois le détail des frais dans mon historique
|
||||
|
||||
Scénario: E-wallet Mangopay automatique
|
||||
Étant donné que mon KYC est validé
|
||||
Quand mes revenus sont calculés
|
||||
Alors les revenus sont automatiquement transférés vers mon e-wallet Mangopay
|
||||
Et l'e-wallet est débité lors du virement SEPA vers mon RIB
|
||||
Et je n'ai aucune action manuelle à faire
|
||||
|
||||
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 l'onglet "Revenus"
|
||||
Alors je vois:
|
||||
| métrique | valeur exemple |
|
||||
| Revenus pub ce mois | 123.45€ |
|
||||
| Revenus premium ce mois | 67.89€ |
|
||||
| Solde disponible ce mois | 191.34€ |
|
||||
| Prochain paiement | 15 mars 2025 |
|
||||
Et ces valeurs sont mises à jour en temps réel (cache Redis, refresh 10 min)
|
||||
|
||||
Scénario: Tableau de bord - Solde en attente de paiement
|
||||
Étant donné que mes revenus de janvier sont calculés et validés
|
||||
Et que nous sommes le 10 février
|
||||
Quand je consulte mon tableau de bord
|
||||
Alors je vois:
|
||||
| métrique | valeur exemple |
|
||||
| Solde en attente | 150.00€ |
|
||||
| Date de paiement | 15 février 2025 |
|
||||
| Statut | En attente |
|
||||
|
||||
Scénario: Historique des virements permanents
|
||||
Étant donné que je suis monétisé depuis 6 mois
|
||||
Quand je consulte l'historique des paiements
|
||||
Alors je vois la liste complète:
|
||||
| date paiement | montant | statut | référence virement |
|
||||
| 15/02/2025 | 150.00€ | Payé | MANGOPAY-ABC123 |
|
||||
| 15/01/2025 | 123.50€ | Payé | MANGOPAY-XYZ789 |
|
||||
| 15/12/2024 | 98.75€ | Payé | MANGOPAY-DEF456 |
|
||||
| ... | ... | ... | ... |
|
||||
|
||||
Scénario: Export comptable CSV téléchargeable
|
||||
Étant donné que je clique sur "Télécharger export comptable"
|
||||
Quand le fichier CSV est généré
|
||||
Alors je télécharge un fichier contenant:
|
||||
```csv
|
||||
Date,Revenus Pub,Revenus Premium,Total,Référence Virement,Statut
|
||||
2025-02-15,89.50,60.50,150.00,MANGOPAY-ABC123,Payé
|
||||
2025-01-15,78.30,45.20,123.50,MANGOPAY-XYZ789,Payé
|
||||
2024-12-15,67.25,31.50,98.75,MANGOPAY-DEF456,Payé
|
||||
```
|
||||
Et je peux transmettre ce fichier à mon expert-comptable
|
||||
|
||||
Scénario: Échec virement - Tentative 1 échouée
|
||||
Étant donné qu'un virement est initié le 15 février
|
||||
Mais que mon RIB est invalide ou le compte est fermé
|
||||
Quand Mangopay détecte l'échec
|
||||
Alors le statut passe à "Échec - Retry programmé le 18 février"
|
||||
Et je reçois un email m'alertant du problème
|
||||
|
||||
Scénario: Échec virement - Retry automatique J+3
|
||||
Étant donné que le virement du 15 février a échoué
|
||||
Quand le 18 février arrive (J+3)
|
||||
Alors Mangopay tente automatiquement un nouveau virement
|
||||
Et si le RIB est toujours invalide, le virement échoue à nouveau
|
||||
|
||||
Scénario: Échec virement - Retry automatique J+7
|
||||
Étant donné que les 2 premières tentatives ont échoué
|
||||
Quand le 22 février arrive (J+7)
|
||||
Alors Mangopay tente une 3ème et dernière fois
|
||||
Et si le virement échoue encore, la monétisation est suspendue
|
||||
|
||||
Scénario: Échec virement - Suspension monétisation après 3 échecs
|
||||
Étant donné que les 3 tentatives de virement ont échoué
|
||||
Quand le système détecte le 3ème échec
|
||||
Alors ma monétisation est suspendue automatiquement
|
||||
Et je reçois un email:
|
||||
"""
|
||||
Votre monétisation a été suspendue après 3 échecs de virement.
|
||||
Veuillez mettre à jour votre RIB dans les paramètres de monétisation.
|
||||
Votre solde de 150.00€ sera versé dès que le RIB sera valide.
|
||||
"""
|
||||
|
||||
Scénario: Mise à jour RIB et réactivation paiement
|
||||
Étant donné que ma monétisation est suspendue pour RIB invalide
|
||||
Et que mon solde en attente est 150.00€
|
||||
Quand je mets à jour mon RIB avec un compte valide
|
||||
Alors Mangopay tente immédiatement un nouveau virement
|
||||
Et si le virement réussit, ma monétisation est réactivée automatiquement
|
||||
|
||||
Scénario: Notification email lors de chaque paiement
|
||||
Étant donné qu'un virement de 150.00€ est effectué le 15 février
|
||||
Quand le virement est confirmé par Mangopay
|
||||
Alors je reçois un email:
|
||||
"""
|
||||
💰 Paiement RoadWave effectué
|
||||
|
||||
Montant: 150.00€
|
||||
Date: 15 février 2025
|
||||
Référence: MANGOPAY-ABC123
|
||||
Compte bancaire: FR76 **** **** **** **89
|
||||
|
||||
Ce virement devrait arriver sur votre compte sous 1-3 jours ouvrés.
|
||||
Détails dans votre tableau de bord créateur.
|
||||
"""
|
||||
|
||||
Scénario: Justification seuil 50€ - Éviter frais bancaires micro-sommes
|
||||
Étant donné que Mangopay facture des frais fixes par virement
|
||||
Et que les banques peuvent facturer des frais de réception
|
||||
Quand un créateur génère seulement 5€/mois
|
||||
Alors un virement mensuel coûterait proportionnellement trop cher
|
||||
Et le seuil de 50€ garantit des frais proportionnels raisonnables
|
||||
|
||||
Scénario: Comparaison avec YouTube (seuil 100$)
|
||||
Étant donné que YouTube fixe le seuil à 100$ (~90€)
|
||||
Quand RoadWave fixe le seuil à 50€
|
||||
Alors RoadWave est plus accessible pour petits créateurs
|
||||
Et les paiements arrivent plus rapidement
|
||||
|
||||
Scénario: Comparaison avec Twitch (seuil 50$)
|
||||
Étant donné que Twitch fixe le seuil à 50$ (~45€)
|
||||
Quand RoadWave fixe le seuil à 50€
|
||||
Alors le seuil est aligné sur Twitch
|
||||
Et les créateurs comprennent facilement le système
|
||||
|
||||
Scénario: Comparaison avec Spotify (seuil 10€ mais délais longs)
|
||||
Étant donné que Spotify a un seuil bas de 10€ mais verse tous les 3 mois
|
||||
Quand RoadWave a un seuil de 50€ mais verse chaque mois
|
||||
Alors les créateurs reçoivent leurs paiements plus régulièrement
|
||||
Et la trésorerie est plus prévisible
|
||||
|
||||
Scénario: Relevé mensuel PDF automatique
|
||||
Étant donné que mes revenus de janvier sont calculés
|
||||
Quand le 1er février arrive
|
||||
Alors un relevé mensuel PDF est généré automatiquement:
|
||||
```
|
||||
===== RELEVÉ ROADWAVE - JANVIER 2025 =====
|
||||
|
||||
Créateur: Jean Dupont
|
||||
SIRET: 12345678901234
|
||||
|
||||
Revenus publicitaires: 89.50€
|
||||
Revenus Premium: 60.50€
|
||||
─────────────────────────────────
|
||||
TOTAL: 150.00€
|
||||
|
||||
Écoutes complètes (gratuit): 29,833
|
||||
Abonnés Premium actifs: 47
|
||||
|
||||
Paiement prévu: 15 février 2025
|
||||
```
|
||||
Et le PDF est téléchargeable depuis mon tableau de bord
|
||||
|
||||
Scénario: Conservation relevés 10 ans (obligation comptable)
|
||||
Étant donné que je génère des revenus sur RoadWave
|
||||
Quand je télécharge mes relevés mensuels
|
||||
Alors je dois les conserver 10 ans (obligation légale France)
|
||||
Et RoadWave conserve également une copie pendant 10 ans pour audit
|
||||
|
||||
Scénario: Dashboard admin - Monitoring paiements
|
||||
Étant donné qu'un admin RoadWave consulte les paiements du mois
|
||||
Quand il accède au dashboard admin
|
||||
Alors il voit:
|
||||
| métrique | valeur exemple |
|
||||
| Créateurs payés ce mois | 1,247 |
|
||||
| Montant total versé | 127,345€ |
|
||||
| Paiements en attente | 34 |
|
||||
| Échecs virements | 3 |
|
||||
| Délai moyen réception (jours) | 1.8 |
|
||||
|
||||
Scénario: Alerte admin si taux échec >5%
|
||||
Étant donné que 8% des virements du mois ont échoué
|
||||
Quand le système détecte le taux d'échec élevé
|
||||
Alors une alerte est envoyée à l'équipe technique:
|
||||
"""
|
||||
⚠️ Taux d'échec virements anormal: 8% (seuil: 5%)
|
||||
Nombre échecs: 102 / 1,247 virements
|
||||
Causes principales:
|
||||
- RIB invalides: 67
|
||||
- Comptes fermés: 23
|
||||
- Autres erreurs: 12
|
||||
"""
|
||||
|
||||
Scénario: Statistiques personnelles - Moyenne revenus sur 6 mois
|
||||
Étant donné que je suis monétisé depuis 6 mois
|
||||
Quand je consulte mes statistiques
|
||||
Alors je vois:
|
||||
| métrique | valeur |
|
||||
| Revenus moyens/mois | 134.50€ |
|
||||
| Meilleur mois | 189.00€ |
|
||||
| Mois le plus bas | 87.30€ |
|
||||
| Tendance | +12% ↗ |
|
||||
Et cela m'aide à suivre ma progression
|
||||
|
||||
Scénario: Projection revenus annuels
|
||||
Étant donné que mes revenus moyens sont 134.50€/mois
|
||||
Quand je consulte les projections
|
||||
Alors le système estime mes revenus annuels à ~1,614€
|
||||
Et je peux anticiper mes déclarations fiscales
|
||||
|
||||
Scénario: Notification seuil symbolique 1000€ cumulés
|
||||
Étant donné que mes revenus cumulés depuis inscription atteignent 1000€
|
||||
Quand le paiement qui franchit ce seuil est effectué
|
||||
Alors je reçois une notification:
|
||||
"""
|
||||
🎉 Félicitations ! Vous venez de dépasser 1000€ de revenus cumulés sur RoadWave !
|
||||
Merci de contribuer à la plateforme avec votre contenu de qualité.
|
||||
"""
|
||||
|
||||
Scénario: Performance calcul avec 100 000 créateurs monétisés
|
||||
Étant donné que RoadWave a 100 000 créateurs monétisés
|
||||
Quand le calcul des paiements du 15 du mois est lancé
|
||||
Alors un job asynchrone traite les paiements par batch de 1000
|
||||
Et tous les virements sont initiés en 2-4 heures
|
||||
Et les serveurs Mangopay gèrent la charge sans problème
|
||||
|
||||
Scénario: Backup des données de paiement
|
||||
Étant donné que les paiements sont critiques pour les créateurs
|
||||
Quand un paiement est effectué
|
||||
Alors les données sont sauvegardées dans PostgreSQL (principal)
|
||||
Et répliquées vers une base de backup (replica)
|
||||
Et une copie d'archive est stockée sur S3 (conservation 10 ans)
|
||||
|
||||
Scénario: Audit trail complet des paiements
|
||||
Étant donné qu'un paiement est initié, traité et complété
|
||||
Quand un audit est demandé
|
||||
Alors tous les événements sont loggés:
|
||||
| événement | timestamp | détails |
|
||||
| Calcul revenus mois | 2025-01-31 23:59:00 | Montant: 150.00€ |
|
||||
| Validation période fraude | 2025-02-14 23:59:00 | Aucune fraude détectée |
|
||||
| Initiation virement | 2025-02-15 09:00:00 | Mangopay ref: ABC123 |
|
||||
| Confirmation virement | 2025-02-16 14:30:00 | Reçu par banque créateur |
|
||||
Et ces logs sont conservés 10 ans pour conformité
|
||||
|
||||
Scénario: Protection fraude - Détection pattern suspect
|
||||
Étant donné qu'un créateur génère subitement 10 000€ de revenus en 1 mois
|
||||
Alors que sa moyenne est de 50€/mois
|
||||
Quand le système détecte cette anomalie
|
||||
Alors le paiement est mis en attente pour vérification manuelle
|
||||
Et l'équipe modération analyse le compte avant validation
|
||||
Reference in New Issue
Block a user