# Règles métier RoadWave

> Documentation complète des règles métier validées pour l'application RoadWave.
> Chaque section détaille les comportements, flux et décisions techniques.

---

## 📋 Table des matières

---

## 🏗️ Fondations & Compte utilisateur

### [01. Authentification & Inscription](01-authentification-inscription.md)

**Contenu** : Inscription, connexion, récupération de compte

- Inscription : email/password uniquement (pas d'OAuth tiers)
- Vérification email : optionnelle auditeurs (limite 5 contenus), obligatoire créateurs (lien expire 7j)
- Connexion : 5 tentatives max, blocage 15 min, refresh token 30j
- Récupération mot de passe : email, lien expire 1h

---

### [02. Conformité RGPD](02-conformite-rgpd.md)

**Contenu** : Consentements, anonymisation, export, suppression

- Consentement : Tarteaucitron.js + PostgreSQL versioning
- GPS précis : 24h puis geohash 5 (~5km²)
- Export : JSON + HTML + audio → ZIP, génération asynchrone sous 48h, expire 7j
- Suppression : grace period 30j, contenus créés anonymisés (créateur = "Utilisateur supprimé")
- Analytics : Matomo self-hosted, IP anonymisées, 0 cookie tiers
- DPO : fondateur formé CNIL (non obligatoire <250 employés)

---

## 🎧 Consommation de contenu (Auditeur)

### [03. Centres d'intérêt et jauges](03-centres-interet-jauges.md)

**Contenu** : Évolution jauges, valeurs initiales

- Like automatique : écoute ≥80% → +2%, écoute 30-79% → +1%
- Like explicite (manuel) : +2% (cumulable avec auto)
- Abonnement : +5%
- Skip rapide (<10s) : -0.5%
- Valeur initiale : 50% (neutre)
- Limites : 0-100% stricte, pas de dégradation temporelle

---

### [04. Algorithme de recommandation](04-algorithme-recommandation.md)

**Contenu** : Scoring, géolocalisation, orientation politique, mode Kids

- Classification géo : Ancré (70%) / Contextuel (50%) / Neutre (20%)
- Engagement : 20%, Aléatoire : 10%
- Orientation politique : 5 niveaux, équilibre imposé (40/40/20)
- Mode Kids : 4 tranches (3-6 / 6-9 / 9-12 / 13-15 ans), activation auto <13 ans
- Historique : >80% jamais reproposer, <10s ne pas reproposer

---

### [05. Interactions et navigation](05-interactions-navigation.md)

**Contenu** : Commandes Suivant/Précédent, interactions volant, lecture en boucle

- Suivant : pré-calcul 5 contenus, recalcul >10km ou 10 min
- Précédent : <10s → contenu avant, ≥10s → replay début
- Commandes volant : Suivant, Précédent, Play/Pause uniquement
- Like automatique : ≥80% écoute → +2 points, 30-79% → +1 point
- Actions manuelles : bouton cœur (arrêt véhicule) ou vocal (CarPlay/Android Auto)
- Passage auto après 2s (1s mode Kids)

---

### [06. Audio-guides multi-séquences](06-audio-guides-multi-sequences.md)

**Contenu** : Modes déplacement, navigation, déclenchement GPS, publicités

- **4 modes** : 🚶 Piéton (manuel) / 🚗 Voiture (GPS auto + manuel) / 🚴 Vélo / 🚌 Transport
- **Mode Piéton** : pause auto après chaque séquence, user clique Suivant, navigation libre
- **Mode Voiture** : déclenchement GPS auto (rayon 30m), boutons manuels actifs, warning sécurité >10 km/h
- **Affichage voiture** : distance temps réel + ETA + direction (flèche) + vitesse
- **Rayons** : Voiture 30m, Vélo 50m, Transport 100m (configurable créateur 10-200m)
- **Publicités** : 1/5 séquences tous modes, auto-play, skippable 5s
- **Reprise** : sauvegarde auto (séquence + position exacte), popup si <30j, multi-device (sync cloud)

---

### [07. Contenus géolocalisés voiture](07-contenus-geolocalises-voiture.md)

**Contenu** : Expérience voiture, UI minimaliste, sécurité

- Interface voiture : minimaliste, boutons larges (80×80px min), lecture auto-play
- Commandes vocales : OK Google/Siri + CarPlay/Android Auto
- Notifications : in-app uniquement (pas de push), badge discret
- Sécurité : warning si interaction manuelle >10 km/h
- Mode nuit : automatique selon luminosité GPS ou heure (22h-6h)

---

### [08. Mode offline](08-mode-offline.md)

**Contenu** : Téléchargement, validité, synchronisation

- Zone géographique : choix manuel (autour de moi / ville / département / région)
- Nombre contenus : gratuit 50 max, Premium illimité
- WiFi par défaut, mobile avec confirmation + estimation volume
- Validité : 30 jours, renouvellement auto si WiFi (contenus >25 jours)
- Sync : likes/abonnements batch auto à reconnexion, queue actions 7j max

---

### [09. Abonnements et notifications](09-abonnements-notifications.md)

**Contenu** : Impact algorithme, notifications, audio-guides, limites

- Boost +30% au score final (pas priorité absolue)
- Détection contexte : <5 km/h piéton, >10 km/h voiture
- Voiture : in-app uniquement, Piéton : push actives
- Limite 10 notifications push/jour (5-20), mode silencieux 22h-8h
- Audio-guide piéton : détection <100m lieu, page sélection, navigation manuelle
- Max 200 abonnements, +5% jauges tous tags créateur

---

### [10. Gestion des erreurs](10-gestion-erreurs.md)

**Contenu** : Aucun contenu, contenu supprimé, perte réseau, GPS désactivé

- Aucun contenu : élargissement auto 50km → 100km → département → région → national
- Contenu supprimé : laisser terminer, passage auto suivant après 2s
- Perte réseau : buffer adaptatif (WiFi 5-120s, 4G 10-120s, 3G 30-300s), retry 5s max 6×
- GPS désactivé : mode dégradé (contenu national + neutre + téléchargé)

---

## 🎙️ Création de contenu (Créateur)

### [11. Création et publication de contenu](11-creation-publication-contenu.md)

**Contenu** : Upload, métadonnées, validation, modification

- Formats : MP3, AAC (.mp3, .aac, .m4a), max 200 MB, 4h
- Métadonnées obligatoires : titre, type géo, zone, tags (1-3), classification âge
- Validation 3 premiers contenus : 24-48h (modération RoadWave)
- Modification : métadonnées uniquement, pas audio/zone/classification

---

### [12. Radio live](12-radio-live.md)

**Contenu** : Démarrage, arrêt, comportement auditeur

- Buffer 15s avant diffusion publique, durée max 8h
- Notification push abonnés dans zone géo uniquement
- Arrêt : compte à rebours 5s (manuel) ou auto si déco ≥60s
- Enregistrement auto MP3 256 kbps → replay sous 5-10 min
- Auditeur : buffer 15s, continuation si sortie zone, AUCUN chat

---

### [13. Détection de contenu protégé](13-detection-contenu-protege.md)

**Contenu** : Droits d'auteur, détection musique, sanctions, fair use

- Périmètre MVP : musique uniquement (films/livres exclus)
- Fair use : extraits ≤30s autorisés si usage transformatif (critique/analyse)
- Détection : manuelle lors des 3 premiers contenus (coût 0€)
- Sanctions progressives : Avertissement → Strike 1 (3j) → Strike 2 (7j) → Strike 3 (30j) → Strike 4 (ban)
- Réhabilitation : -1 strike tous les 6 mois sans incident
- Appel : réutilise processus section 14, délai 72h, preuve licence acceptée
- Post-MVP : Chromaprint + MusicBrainz si >50 signalements/mois (50-100€/mois)

---

## 🛡️ Modération & Sécurité

### [14. Modération - Flows opérationnels](14-moderation-flows.md)

**Contenu** : Signalement, traitement, sanctions

- Signalement : 7 catégories (haine, sexuel, illégalité, droits auteur, spam, fake news, autre)
- IA pré-filtre : Whisper large-v3 (transcription) + NLP open source (1-10 min)
- SLA : Critique <2h (24/7), Haute/Moyenne <24h, Basse <72h
- Notification sanction : email + push + in-app (détail complet : catégorie, timestamp, transcription)
- Appel : formulaire in-app, délai 7j max, réponse 72h garanti (standard)

---

### [15. Modération Communautaire - Badges et Récompenses](15-moderation-communautaire.md)

**Contenu** : Système badges, score fiabilité, récompenses, anti-abus

- **3 niveaux badges** : 🥉 Bronze (5 validés), 🥈 Argent (20 validés), 🥇 Or (50 validés)
- **Modal découverte** : affichage unique au 1er signalement, message gratifiant
- **Score fiabilité** : calcul auto pour priorisation algorithme (0-100 points)
- **Utilisateurs de confiance** : statut auto Argent/Or, traitement prioritaire <12h
- **Réduction Premium Or** : -50% pendant 3 mois (2.49€ au lieu de 4.99€), Post-MVP
- **Anti-abus** : limite 10 signalements/24h, audit trimestriel, révocation badges
- **ROI** : positif dès 2-3 utilisateurs Or (économie modération > coût réductions)
- **Coût MVP** : 0€ / **Coût Post-MVP** : 0-200€/mois

---

## 💰 Monétisation & Business

### [16. Publicités](16-publicites.md)

**Contenu** : Campagnes, fréquence, insertion, facturation

- Interface self-service, budget min 50€, étalement paramétrable
- Fréquence : 1/5 contenus (gratuits uniquement)
- Durée : 10-60s (recommandé 15-30s), skippable après 5s
- Validation manuelle 24-48h, prépaiement Mangopay
- Facturation : écoute complète 0.05€, skip après 5s : 0.02€, skip immédiat : 0€

---

### [17. Premium](17-premium.md)

**Contenu** : Offre, multi-devices, avantages, gestion abonnement

- Prix : 4.99€/mois OU 49.99€/an (4.16€/mois effectif)
- Pas d'essai gratuit, pas de partage familial (MVP)
- Multi-devices : 1 seul stream actif, détection connexion simultanée
- Avantages : 0 pub, contenus exclusifs 👑, qualité 64 kbps Opus, offline illimité
- Paiement : Mangopay (web) ou IAP iOS/Android 5.99€/mois (+30% commission)

---

### [18. Monétisation créateurs](18-monetisation-createurs.md)

**Contenu** : Activation, KYC, sources revenus, paiement

- Conditions : compte ≥3 mois, ≥500 abonnés, ≥10K écoutes, 0 strike, ≥5 contenus/90j
- KYC via Mangopay Connect : SIRET, TVA, RIB pro, pièce ID, Kbis <3 mois
- Revenus pub : 3€ / 1000 écoutes complètes (6% CA pub)
- Revenus Premium : 70% créateur, 30% plateforme (proportionnel temps écoute)
- Paiement : seuil 50€, mensuel (15 du mois suivant), SEPA Mangopay

---

## 🔧 Fonctionnalités transverses

### [19. Autres comportements](19-autres-comportements.md)

**Contenu** : Partage, profil créateur, recherche

- Partage : bouton partout, lien `roadwave.fr/share/c/[id]`, web player + deep link
- Profil créateur : @pseudo, bio (300 car), stats publiques arrondies, badge vérifié ✓
- Badge vérifié : KYC validé OU célébrité OU >10K abonnés
- Recherche : full-text PostgreSQL (français, stemming), recherche géo (Nominatim OSM)
- Filtres : type, durée, âge, géo, tags, date, premium (combinables)
- Affichage : liste enrichie (20/page, infinite scroll) + vue carte Leaflet

---

## 🗂️ Organisation

Chaque fichier de règles métier suit la structure :

1. **Décisions** : choix validés avec justifications
2. **Comportements détaillés** : flux utilisateur, cas limites
3. **Paramètres** : valeurs exactes, seuils, durées
4. **Points d'attention Gherkin** : éléments à tester

---

## 🚀 Utilisation

Ces documents servent de **référence unique** pour :

- ✅ Développement backend/frontend
- ✅ Écriture des tests Gherkin (BDD)
- ✅ Validation QA
- ✅ Documentation produit

**Prochaine étape** : Création des fichiers `.feature` Gherkin dans `features/` basés sur ces règles.

---

## 📊 Statistiques

- **19 sections** validées
- **~14 500 lignes** de spécifications détaillées
- **Coût infrastructure MVP** : ~50-250€/mois (hors salaires)
- **Coût Post-MVP** : +0-200€/mois (réductions Premium contributeurs Or)
- **Technologies** : 100% open source (sauf Mangopay paiements)

---

**Dernière mise à jour** : Janvier 2026
**Statut** : ✅ Toutes sections validées + Modération communautaire ajoutée
