Guide des Rôles Utilisateurs - Yin Shi
Date : 24 novembre 2025
Statut : Documentation active
Propriétaire : Équipe Dev
📋 Processus d'Inscription de l'Utilisateur
À l'issue de son inscription, l'utilisateur a accès à une période d'essaie de 30 jours avec l'accès à toutes les fonctionnalités payantes.
1. Inscription via Firebase UI Auth
- L'utilisateur s'inscrit via Firebase UI Auth (email/mot de passe, Google, Apple)
- Le système détecte automatiquement la nouvelle connexion
2. Création Automatique du Profil Utilisateur
Le système crée automatiquement un profil utilisateur dans la base de données lors de la première connexion avec : - Rôle défini : Trial - Date de fin d'essai : date actuelle + 30 jours - Langue par défaut : français - Champs profil : initialisés avec valeurs vides (à compléter par l'utilisateur)
3. Vérification Email (si applicable)
Pour les comptes email/mot de passe : - Vérifie si c'est un compte email/mot de passe - Envoie automatiquement un email de vérification - Continue même si l'envoi échoue (ne bloque pas l'inscription)
📝 Processus d'abonnement de l'Utilisateur
Quand l'utilisateur veut s'abonner, il valide les CGV (Pré-paiement)
1. Écran de consentement avant paiement
L'utilisateur doit cocher une case pour accepter : - Conditions Générales de Vente (CGV Yin Shi) - Politique de Confidentialité
2. Traçabilité du consentement
Le système enregistre automatiquement : - Date et heure de la validation - Adresse IP de l'utilisateur - Version des CGV acceptées - Méthode de validation (case à cocher)
3. Stockage légal
Les informations sont conservées dans :
- Base de données : consent_records collection
- Durée de conservation : 5 ans (conformité légale)
- Accès : Seul l'administrateur peut consulter
4. Processus complet
Demande d'abonnement → Affichage CGV → Case à cocher → Enregistrement → Session Stripe s'ouvre
5. Preuve de consentement
En cas de litige, le système peut fournir : - Timestamp précis de l'acceptation - Version exacte des CGV à ce moment - Preuve technique (IP, device, session)
L'utilisateur a validé les CGV, le paiement débute :
⏰ Processus de non-paiement de l'Utilisateur
Quand l'utilisateur ne paye pas pendant sa période d'essai :
1. Détection automatique
Le système vérifie automatiquement si la période d'essai est terminée chaque fois que l'utilisateur se connecte. Il compare la date actuelle avec la date de fin d'essai.
2. Déclenchement
- À chaque connexion : Le système vérifie automatiquement le statut
- Vérification quotidienne : Comparaison entre la date du jour et la fin de l'essai
3. Processus complet
Jour 1-30 : Rôle = Trial (accès complet)
Jour 31 : Connexion → trialEndDate dépassée → Rôle = Expired
4. Conséquences
- ✅ Mise à jour automatique du rôle dans Firestore
- ✅ Perte d'accès aux fonctionnalités premium
- ✅ Affichage du message "Votre essai est terminé"
5. Logique de récupération (Cas exceptionnel)
Si un utilisateur est marqué comme "Expired" mais que sa période d'essai n'est pas vraiment terminée (erreur de date), le système le réactive automatiquement en "Trial" lors de sa connexion.
🔄 Processus autres des Utilisateurs
Étapes automatiques lors de chaque connexion :
- Vérifie si le compte existe dans Firestore
- Met à jour
lastLoginDateavec timestamp actuel - Ajoute un enregistrement à l'historique des connexions
- Vérifie le statut de l'essai automatiquement
Étapes automatiques lors de chaque deconnexion :
- Met à jour
lastLogoutDateavec timestamp actuel - Ajoute un enregistrement à l'historique des deconnexions
🎯 Constantes Importantes
| Constante | Valeur | Description |
|---|---|---|
| Durée d'essai | 30 jours | Période d'essai automatique |
| Rôle par défaut | Trial | Attribution automatique à l'inscription |
| Base de données | app_users | Stockage des profils utilisateurs |
📊 Flux Complet
Accès gratuit → Inscription → Authentification → Création Profil → Rôle Trial (30j) → Connexion → Vérification statut → Accès complet → Validation CGV → Paiement → Rôle Paid → Accès complet → Expired (si non-paiement après période d'essai) → Accès gratuit
🔗 Documents Complémentaires
- Architecture complète :
docs/stripe_compliance/ARCHITECTURE_STRIPE.md - Architecture auth :
docs/ARCHITECTURE_AUTH.md - Code source :
lib/providers/auth_provider.dart,lib/services/user_service.dart
Document créé pour synthétiser le processus des rôles utilisateurs