🎁 Système de Codes Promo - Kazalendar
📋 Vue d'ensemble
Le système de codes promo permet d'offrir des mois premium gratuits à des utilisateurs spécifiques via des codes uniques.
🚀 Installation
1. Appliquer la migration SQL
Exécutez le fichier SQL dans votre base Supabase :
supabase/migrations/create_promo_codes.sql
Ou copiez-collez le contenu dans l'éditeur SQL de Supabase.
2. Vérifier les codes de test
3 codes de test sont automatiquement créés :
KAZAPRO2024: 3 mois gratuits (limite : 100 utilisations)WELCOME2024: 1 mois gratuit (illimité)VIP6MONTHS: 6 mois gratuits (limite : 10 utilisations)
🔐 Accès Admin
Votre compte admin
Email : mardil.bebel@gmail.com
Quand vous êtes connecté avec cet email, vous voyez une section "Administration" dans les Paramètres avec :
- Codes promo : Créer et gérer les codes
Ajouter d'autres admins
Éditez le fichier lib/core/config/admin_config.dart :
static const List<String> adminEmails = [
'mardil.bebel@gmail.com',
'autre.admin@example.com', // Ajoutez d'autres emails ici
];
📱 Utilisation
Pour les utilisateurs
- Aller dans Paramètres → Premium
- Cliquer sur "J'ai un code promo"
- Entrer le code (ex: KAZAPRO2024)
- Valider → Recevoir les mois gratuits !
Pour vous (admin)
Créer un code promo
-
Paramètres → Administration → Codes promo
-
Remplir le formulaire :
- Code : Le code que les utilisateurs entreront (ex: NOEL2024)
- Description : Note pour vous (ex: "Promo Noël 2024")
- Durée (mois) : Nombre de mois offerts (1-12+)
- Max utilisations : Limite ou laisser vide pour illimité
- Date d'expiration : Optionnel
-
Cliquer sur "Créer le code"
Gérer vos codes
- Voir les statistiques : Utilisations actuelles / max
- Désactiver un code : Cliquer sur l'icône ❌
- Les codes désactivés ne peuvent plus être utilisés
💡 Cas d'usage
Lancement produit
Code : LAUNCH2024
Durée : 3 mois
Max uses : 50
Expire : 31/12/2024
VIP / Influenceurs
Code : VIP-MARIE2024
Durée : 6 mois
Max uses : 1 (usage unique)
Expire : jamais
Partenariat
Code : PARTNER-XYZ
Durée : 1 mois
Max uses : 100
Expire : 30/06/2024
Compensation client
Code : SORRY-CLIENT123
Durée : 2 mois
Max uses : 1
Expire : 7 jours
🔒 Sécurité
Protections incluses
✅ Un utilisateur ne peut utiliser un code qu'une seule fois ✅ Les codes expirés sont automatiquement rejetés ✅ Les codes désactivés ne fonctionnent plus ✅ Limite d'utilisations respectée ✅ RLS (Row Level Security) activé sur les tables
Bonnes pratiques
- Codes courts et mémorables : KAZAPRO2024 (pas K4Z4PR0-2024-XYZ)
- Limiter les utilisations pour les codes publics
- Mettre une date d'expiration pour les campagnes temporaires
- Désactiver les codes anciens plutôt que les supprimer (historique)
📊 Base de données
Tables créées
promo_codes
- Stocke tous les codes créés
- Tracking des utilisations (current_uses)
- Champs : code, duration_months, max_uses, expires_at, is_active
promo_code_usage
- Enregistre qui a utilisé quel code
- Empêche la double utilisation
- Champs : promo_code_id, user_id, used_at, premium_expires_at
Fonction SQL
use_promo_code(code, user_id)
- Valide le code (actif, pas expiré, pas épuisé)
- Vérifie que l'utilisateur ne l'a pas déjà utilisé
- Met à jour le premium de l'utilisateur
- Incrémente le compteur d'utilisations
- Retourne le résultat (succès/erreur + message)
🐛 Dépannage
"Code promo invalide ou expiré"
→ Vérifier dans l'admin que le code existe et est actif
"Vous avez déjà utilisé ce code"
→ C'est normal, un code = une seule utilisation par user
"Ce code a atteint sa limite d'utilisations"
→ Le max_uses est atteint, créer un nouveau code
Je ne vois pas la section "Administration"
→ Vérifier que vous êtes connecté avec mardil.bebel@gmail.com
🔮 Évolutions futures possibles
- Système de parrainage (les users génèrent leurs propres codes)
- Dashboard avec statistiques avancées
- Export des codes et utilisations (CSV)
- Notifications quand un code atteint X% d'utilisation
- Codes avec pourcentage de réduction (pas que mois gratuits)
- Interface web admin séparée
📞 Support
En cas de problème :
- Vérifier les logs dans Supabase (Table Editor + SQL Editor)
- Tester avec les codes de test (KAZAPRO2024, etc.)
- Vérifier que la migration SQL est bien appliquée
Créé par Claude Code 🤖 Date : $(date)