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>
382 lines
16 KiB
Gherkin
382 lines
16 KiB
Gherkin
# language: fr
|
||
Fonctionnalité: Désactivation et suspension monétisation
|
||
En tant que créateur ou plateforme
|
||
Je veux pouvoir désactiver ou suspendre la monétisation selon certaines conditions
|
||
Afin de gérer les pauses, problèmes techniques ou violations des règles
|
||
|
||
Contexte:
|
||
Étant donné que je suis un créateur avec la monétisation activée
|
||
|
||
# ===== DÉSACTIVATION VOLONTAIRE PAR LE CRÉATEUR =====
|
||
|
||
Scénario: Désactivation temporaire par le créateur
|
||
Étant donné que je veux faire une pause dans ma création de contenu
|
||
Quand j'accède à "Paramètres > Monétisation"
|
||
Et que je clique sur "Désactiver temporairement la monétisation"
|
||
Alors ma monétisation est désactivée immédiatement
|
||
Et je ne génère plus de revenus à partir de maintenant
|
||
|
||
Scénario: Confirmation avant désactivation
|
||
Étant donné que je clique sur "Désactiver temporairement"
|
||
Quand une popup de confirmation apparaît
|
||
Alors je vois le message:
|
||
"""
|
||
⚠️ Désactiver la monétisation ?
|
||
|
||
Vous ne générerez plus de revenus à partir de maintenant.
|
||
Votre solde actuel sera conservé et versé normalement.
|
||
|
||
Vous pourrez réactiver quand vous le souhaitez.
|
||
"""
|
||
Et je dois confirmer pour continuer
|
||
|
||
Scénario: Solde conservé pendant désactivation
|
||
Étant donné que mon solde actuel est 87.45€
|
||
Quand je désactive ma monétisation le 15 du mois
|
||
Alors mon solde de 87.45€ est conservé
|
||
Et il sera reporté au mois suivant
|
||
Et si le total dépasse 50€, il sera versé normalement le 15 du mois prochain
|
||
|
||
Scénario: Contenus restent accessibles pendant désactivation
|
||
Étant donné que j'ai désactivé ma monétisation
|
||
Quand des utilisateurs écoutent mes contenus
|
||
Alors mes contenus restent accessibles normalement
|
||
Mais je ne génère aucun revenu (ni pub ni Premium)
|
||
|
||
Scénario: Réactivation sans refaire le KYC si <2 ans
|
||
Étant donné que j'ai désactivé ma monétisation il y a 8 mois
|
||
Et que mes documents KYC sont toujours valides
|
||
Quand je clique sur "Réactiver la monétisation"
|
||
Alors la réactivation est immédiate
|
||
Et je n'ai pas besoin de refaire le KYC
|
||
Et je recommence à générer des revenus dès maintenant
|
||
|
||
Scénario: Nouveau KYC requis si inactivité >2 ans
|
||
Étant donné que j'ai désactivé ma monétisation il y a 25 mois
|
||
Quand j'essaie de réactiver
|
||
Alors le système demande un nouveau KYC
|
||
Et je vois:
|
||
"""
|
||
Votre monétisation était désactivée depuis plus de 2 ans.
|
||
Veuillez mettre à jour vos documents KYC pour réactiver.
|
||
"""
|
||
Et je dois soumettre à nouveau mes documents
|
||
|
||
Scénario: Historique des désactivations/réactivations
|
||
Étant donné que j'ai désactivé et réactivé ma monétisation plusieurs fois
|
||
Quand j'accède à "Paramètres > Monétisation > Historique"
|
||
Alors je vois la liste complète:
|
||
| date | action | raison |
|
||
| 15/06/2025 | Réactivation | Reprise création contenu |
|
||
| 01/03/2025 | Désactivation | Pause vacances |
|
||
| 20/01/2025 | Activation | KYC validé |
|
||
|
||
# ===== SUSPENSION AUTOMATIQUE PAR LA PLATEFORME =====
|
||
|
||
Scénario: Suspension si 3+ strikes actifs
|
||
Étant donné que je reçois un 3ème strike pour violation des règles
|
||
Quand le strike devient actif
|
||
Alors ma monétisation est suspendue automatiquement
|
||
Et je vois:
|
||
"""
|
||
⚠️ Monétisation suspendue
|
||
|
||
Votre compte a 3 strikes actifs.
|
||
La monétisation est suspendue jusqu'à résolution des violations.
|
||
"""
|
||
|
||
Scénario: Réactivation après résolution des strikes
|
||
Étant donné que ma monétisation est suspendue pour 3 strikes
|
||
Quand je résous tous mes strikes (après expiration ou contestation)
|
||
Et que mon compteur de strikes passe à 0
|
||
Alors ma monétisation est réactivée automatiquement
|
||
Et je reçois un email de confirmation
|
||
|
||
Scénario: Suspension si RIB invalide après 3 échecs de virement
|
||
Étant donné que 3 tentatives de virement ont échoué (15, 18, 22 du mois)
|
||
Quand le 3ème échec est confirmé
|
||
Alors ma monétisation est suspendue automatiquement
|
||
Et je vois:
|
||
"""
|
||
⚠️ Monétisation suspendue
|
||
|
||
Vos virements ont échoué 3 fois (RIB invalide ou compte fermé).
|
||
Veuillez mettre à jour votre RIB dans "Paramètres > Monétisation".
|
||
|
||
Votre solde en attente (150.00€) sera versé dès que le RIB sera valide.
|
||
"""
|
||
|
||
Scénario: Réactivation après mise à jour RIB valide
|
||
Étant donné que ma monétisation est suspendue pour RIB invalide
|
||
Quand je mets à jour mon RIB avec un compte bancaire valide
|
||
Et que Mangopay valide le nouveau RIB
|
||
Alors ma monétisation est réactivée automatiquement
|
||
Et un virement est tenté immédiatement pour le solde en attente
|
||
|
||
Scénario: Suspension si documents KYC expirés
|
||
Étant donné que ma carte d'identité expire dans 30 jours
|
||
Quand je reçois un email de rappel de mise à jour
|
||
Mais que je ne mets pas à jour mes documents
|
||
Et que ma CNI expire
|
||
Alors ma monétisation est suspendue automatiquement après 30 jours de grâce
|
||
|
||
Scénario: Préavis 30 jours avant suspension pour docs expirés
|
||
Étant donné que ma CNI expire le 15 juin 2025
|
||
Quand le 15 mai 2025 arrive (30 jours avant)
|
||
Alors je reçois un email d'alerte:
|
||
"""
|
||
⚠️ Vos documents KYC expirent dans 30 jours
|
||
|
||
Votre carte d'identité expire le 15 juin 2025.
|
||
Veuillez mettre à jour vos documents dans "Paramètres > Monétisation > KYC".
|
||
|
||
Si vous ne mettez pas à jour, votre monétisation sera suspendue le 16 juin 2025.
|
||
"""
|
||
|
||
Scénario: Réactivation après renouvellement documents KYC
|
||
Étant donné que ma monétisation est suspendue pour CNI expirée
|
||
Quand je soumets une nouvelle CNI valide
|
||
Et que Mangopay valide le document sous 24-72h
|
||
Alors ma monétisation est réactivée automatiquement
|
||
Et je recommence à générer des revenus
|
||
|
||
Scénario: Suspension si fraude détectée
|
||
Étant donné que le système détecte une activité frauduleuse (bots, écoutes artificielles)
|
||
Quand l'équipe modération confirme la fraude
|
||
Alors ma monétisation est suspendue immédiatement
|
||
Et mon compte est mis sous enquête
|
||
Et je reçois un email m'informant de la suspension
|
||
|
||
Scénario: Enquête fraude - Vérification manuelle
|
||
Étant donné que ma monétisation est suspendue pour suspicion de fraude
|
||
Quand l'équipe modération enquête
|
||
Alors elle analyse:
|
||
| élément à vérifier | outil |
|
||
| Patterns d'écoute suspects | Analytics + logs |
|
||
| Origine géographique | Logs IP |
|
||
| Vitesse de croissance anormale | Graphiques statistiques |
|
||
| Plaintes utilisateurs | Système de signalement |
|
||
|
||
Scénario: Levée suspension si fraude non confirmée
|
||
Étant donné que mon compte était suspendu pour suspicion de fraude
|
||
Quand l'enquête conclut qu'il n'y a pas eu de fraude
|
||
Alors ma monétisation est réactivée
|
||
Et les revenus suspendus pendant l'enquête sont versés normalement
|
||
Et je reçois un email d'excuses avec explication
|
||
|
||
Scénario: Suspension définitive si fraude confirmée
|
||
Étant donné que l'enquête confirme une fraude avérée
|
||
Quand l'équipe modération prend la décision
|
||
Alors ma monétisation est définitivement désactivée
|
||
Et mon solde en attente est gelé (non versé)
|
||
Et je peux recevoir un strike 4 (ban définitif du compte)
|
||
|
||
# ===== SUPPRESSION DÉFINITIVE =====
|
||
|
||
Scénario: Suppression définitive sur demande créateur
|
||
Étant donné que je veux arrêter définitivement la monétisation
|
||
Quand j'accède à "Paramètres > Monétisation > Supprimer définitivement"
|
||
Alors une confirmation stricte est demandée
|
||
Et je dois taper "SUPPRIMER" pour confirmer
|
||
|
||
Scénario: Solde versé sous 30 jours après suppression
|
||
Étant donné que je supprime définitivement ma monétisation
|
||
Et que mon solde en attente est 127.45€
|
||
Quand la suppression est confirmée
|
||
Alors mon solde sera versé sous 30 jours
|
||
Et je reçois un dernier virement de clôture
|
||
Et mon e-wallet Mangopay est clôturé
|
||
|
||
Scénario: Suppression auto si inactivité 24 mois + solde <50€
|
||
Étant donné que je n'ai plus publié de contenu depuis 24 mois
|
||
Et que mon solde en attente est 12.30€ (<50€)
|
||
Quand le processus de purge RGPD s'exécute
|
||
Alors ma monétisation est automatiquement supprimée
|
||
Et mon solde de 12.30€ est perdu (trop faible pour virement)
|
||
Et mes données KYC sont archivées puis supprimées selon la législation
|
||
|
||
Scénario: Email de préavis 60 jours avant purge RGPD
|
||
Étant donné que je suis inactif depuis 22 mois
|
||
Quand le système détecte l'inactivité
|
||
Alors je reçois un email:
|
||
"""
|
||
⚠️ Votre monétisation sera supprimée dans 60 jours
|
||
|
||
Vous n'avez pas publié de contenu depuis 22 mois.
|
||
Si vous restez inactif 2 mois de plus (24 mois total), votre monétisation sera automatiquement supprimée.
|
||
|
||
Solde actuel: 12.30€
|
||
|
||
Pour éviter la suppression, publiez un nouveau contenu ou contactez-nous.
|
||
"""
|
||
|
||
Scénario: Ban définitif compte - Strike 4
|
||
Étant donné que je reçois un 4ème strike (violation grave ou répétée)
|
||
Quand l'équipe modération applique le strike 4
|
||
Alors mon compte est banni définitivement
|
||
Et ma monétisation est supprimée définitivement
|
||
Et mon solde en attente est gelé (non versé)
|
||
Et je ne peux plus créer de nouveau compte (blacklist email/SIRET)
|
||
|
||
# ===== NOTIFICATIONS =====
|
||
|
||
Scénario: Email pour toute suspension
|
||
Étant donné que ma monétisation est suspendue (quelle qu'en soit la raison)
|
||
Quand la suspension devient effective
|
||
Alors je reçois immédiatement un email:
|
||
"""
|
||
⚠️ Monétisation RoadWave suspendue
|
||
|
||
Raison: [Raison explicite]
|
||
|
||
Que faire:
|
||
[Procédure de réactivation selon la raison]
|
||
|
||
Votre solde actuel sera conservé pendant la suspension.
|
||
|
||
Questions? Contactez support@roadwave.com
|
||
"""
|
||
|
||
Scénario: Notification in-app avec raison explicite
|
||
Étant donné que ma monétisation est suspendue
|
||
Quand je me connecte à l'application
|
||
Alors je vois une bannière en haut de mon dashboard:
|
||
```
|
||
⚠️ MONÉTISATION SUSPENDUE
|
||
Raison: 3 strikes actifs
|
||
Action requise: Résoudre les violations pour réactiver
|
||
[En savoir plus]
|
||
```
|
||
|
||
Scénario: Email de confirmation lors de réactivation
|
||
Étant donné que ma monétisation était suspendue
|
||
Quand elle est réactivée (automatiquement ou manuellement)
|
||
Alors je reçois un email:
|
||
"""
|
||
✅ Monétisation RoadWave réactivée
|
||
|
||
Votre monétisation a été réactivée avec succès.
|
||
Vous recommencez à générer des revenus dès maintenant.
|
||
|
||
Tableau de bord: [Lien]
|
||
"""
|
||
|
||
# ===== STATISTIQUES ET MONITORING =====
|
||
|
||
Scénario: Dashboard admin - Suspensions actives
|
||
Étant donné qu'un admin RoadWave consulte les suspensions
|
||
Quand il accède au dashboard admin "Monétisation > Suspensions"
|
||
Alors il voit:
|
||
| raison suspension | nombre actif | taux |
|
||
| Strikes (3+) | 23 | 1.8% |
|
||
| RIB invalide | 12 | 0.9% |
|
||
| Documents KYC expirés | 8 | 0.6% |
|
||
| Fraude sous enquête | 3 | 0.2% |
|
||
| TOTAL | 46 | 3.7% |
|
||
|
||
Scénario: Alertes si taux de suspension >5%
|
||
Étant donné que le taux de suspension dépasse 5%
|
||
Quand le système détecte cette anomalie
|
||
Alors une alerte est envoyée à l'équipe:
|
||
"""
|
||
⚠️ Taux de suspension monétisation anormal: 5.8%
|
||
|
||
Causes principales:
|
||
- RIB invalides: 67 créateurs (3.2%)
|
||
- Documents expirés: 34 créateurs (1.6%)
|
||
- Strikes: 21 créateurs (1.0%)
|
||
|
||
Action recommandée: Campagne email de rappel mise à jour docs
|
||
"""
|
||
|
||
Scénario: Statistiques personnelles - Temps actif monétisation
|
||
Étant donné que j'accède à mon dashboard créateur
|
||
Quand je consulte "Statistiques > Monétisation"
|
||
Alors je vois:
|
||
| métrique | valeur |
|
||
| Date activation monétisation | 20 janvier 2025 |
|
||
| Temps actif total | 8 mois |
|
||
| Périodes de désactivation | 2 (3 mois total)|
|
||
| Suspensions subies | 0 |
|
||
| Statut actuel | ✅ Actif |
|
||
|
||
# ===== RGPD ET CONFORMITÉ =====
|
||
|
||
Scénario: Export données suspension (RGPD)
|
||
Étant donné que je demande l'export de mes données
|
||
Quand l'export est généré
|
||
Alors l'historique des suspensions est inclus:
|
||
```json
|
||
{
|
||
"monetization_history": [
|
||
{
|
||
"event": "suspension",
|
||
"reason": "3 active strikes",
|
||
"suspended_at": "2025-06-15T10:30:00Z",
|
||
"reactivated_at": "2025-07-01T14:20:00Z",
|
||
"duration_days": 16
|
||
},
|
||
{
|
||
"event": "voluntary_deactivation",
|
||
"deactivated_at": "2025-03-01T08:00:00Z",
|
||
"reactivated_at": "2025-06-15T10:00:00Z",
|
||
"duration_days": 106
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
Scénario: Suppression compte et données monétisation
|
||
Étant donné que je supprime définitivement mon compte RoadWave
|
||
Quand la suppression est confirmée
|
||
Alors toutes mes données de monétisation sont supprimées:
|
||
| donnée | action |
|
||
| Solde en attente | Versé sous 30 jours puis supprimé |
|
||
| Historique revenus | Archivé 10 ans (obligation légale) |
|
||
| Documents KYC | Archivés 10 ans chez Mangopay puis supprimés |
|
||
| E-wallet Mangopay | Clôturé après versement final |
|
||
|
||
Scénario: Conservation archives 10 ans obligation légale
|
||
Étant donné que je supprime mon compte
|
||
Quand mes données sont archivées
|
||
Alors RoadWave conserve 10 ans:
|
||
| donnée archivée | raison |
|
||
| Relevés mensuels PDF | Obligation comptable France |
|
||
| Déclarations DAS2 | Obligation fiscale France |
|
||
| Justificatifs virements | Preuve paiement en cas d'audit |
|
||
Et après 10 ans, tout est supprimé définitivement
|
||
|
||
# ===== CAS PARTICULIERS =====
|
||
|
||
Scénario: Suspension temporaire pour maintenance technique
|
||
Étant donné que Mangopay effectue une maintenance planifiée
|
||
Quand la maintenance est programmée
|
||
Alors tous les créateurs reçoivent un email préventif 7 jours avant:
|
||
"""
|
||
📅 Maintenance planifiée Mangopay
|
||
|
||
Date: 15 juin 2025, 02h00-06h00 (heure de Paris)
|
||
Impact: Les virements programmés ce jour seront reportés de 24h
|
||
|
||
Aucune action de votre part n'est requise.
|
||
Vos revenus seront versés normalement avec 1 jour de retard.
|
||
"""
|
||
|
||
Scénario: Réactivation progressive après incident majeur
|
||
Étant donné qu'un incident technique majeur suspend toutes les monétisations
|
||
Quand l'incident est résolu
|
||
Alors les réactivations se font progressivement:
|
||
| vague | critère | % créateurs |
|
||
| 1 | Top 10% créateurs (revenus) | 10% |
|
||
| 2 | Créateurs vérifiés | 30% |
|
||
| 3 | Tous les autres créateurs | 60% |
|
||
Et cela évite une surcharge système lors de la reprise
|
||
|
||
Scénario: Support prioritaire pour créateurs suspendus injustement
|
||
Étant donné que ma monétisation est suspendue
|
||
Et que je pense que c'est une erreur
|
||
Quand je contacte le support avec tag "Suspension monétisation"
|
||
Alors mon ticket est traité en priorité (SLA 24h)
|
||
Et un agent expert examine mon cas
|
||
Et si suspension injustifiée, je suis réactivé immédiatement avec excuses
|