Aller au contenu principal

🎁 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

  1. Aller dans Paramètres → Premium
  2. Cliquer sur "J'ai un code promo"
  3. Entrer le code (ex: KAZAPRO2024)
  4. Valider → Recevoir les mois gratuits !

Pour vous (admin)

Créer un code promo

  1. Paramètres → Administration → Codes promo

  2. 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
  3. 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 :

  1. Vérifier les logs dans Supabase (Table Editor + SQL Editor)
  2. Tester avec les codes de test (KAZAPRO2024, etc.)
  3. Vérifier que la migration SQL est bien appliquée

Créé par Claude Code 🤖 Date : $(date)