Skip to content

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)

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 :

  1. Vérifie si le compte existe dans Firestore
  2. Met à jour lastLoginDate avec timestamp actuel
  3. Ajoute un enregistrement à l'historique des connexions
  4. Vérifie le statut de l'essai automatiquement

Étapes automatiques lors de chaque deconnexion :

  1. Met à jour lastLogoutDate avec timestamp actuel
  2. 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