📱 Système de crédits
Principe
Le système de crédits limite l'utilisation quotidienne pour maintenir la qualité du service dans le plan gratuit.
| Paramètre | Valeur |
|---|---|
| Crédits par jour | 5 |
| Reset | Minuit UTC automatique |
| Portée | Partagés entre Mail Analyseur et BlocNum Analyseur |
| Stockage actuel | localStorage (MVP) |
Comportement
Consommation d'un crédit
Un crédit est consommé à chaque appel aux endpoints :
analyze-email-headers(Mail Analyseur)arcep-check(BlocNum Analyseur)
L'endpoint analyze-spam est appelé simultanément avec analyze-email-headers mais ne consomme pas de crédit séparé.
Reset automatique
// src/lib/credits.ts
const getCreditsUsed = (): CreditState => {
const stored = localStorage.getItem('dailyCredits');
const today = new Date().toISOString().split('T')[0]; // format YYYY-MM-DD (UTC)
if (!stored) return { count: 0, date: today };
const parsed = JSON.parse(stored);
if (parsed.date !== today) return { count: 0, date: today }; // Auto-reset
return parsed;
};
Le reset est automatique : dès que la date ISO (UTC) change, les crédits reviennent à 5.
API publique (src/lib/credits.ts)
const MAX_DAILY_CREDITS = 5;
canUseCredit(): boolean // true si count < 5
consumeCredit(): boolean // décrémente, retourne true si succès
getRemaining(): number // 5 - count (0 à 5)
Affichage visuel
Dans les Analyseurs
Barre de progression avec couleur contextuelle :
| Crédits restants | Couleur barre |
|---|---|
| 4–5 | 🟢 Vert |
| 2–3 | 🟡 Jaune |
| 0–1 | 🔴 Rouge |
Texte : X crédit(s) restant(s) aujourd'hui
Dans les Paramètres
Section dédiée avec barre de progression + compteur X / 5 + bouton de rechargement manuel.
Modèles tarifaires et crédits
| Plan | Crédits/jour | Analyses illimitées | Prix |
|---|---|---|---|
| Gratuit | 5 | ❌ | 0€ |
| Premium | ∞ | ✅ | 9,99€/mois |
| PME Basic | ∞ | ✅ | 29€/mois |
| PME Pro | ∞ | ✅ + SLA | 59€/mois |
Limitations actuelles (MVP)
Le système de crédits actuel présente des limitations identifiées :
- Contournable : stocké dans localStorage, effaçable par l'utilisateur
- Non cross-device : les crédits ne sont pas synchronisés entre appareils
- Non lié au compte : un utilisateur peut créer plusieurs comptes
Migration prévue Q2 2026 :
- Table
user_quotasen PostgreSQL avec RLS - Décrémentation côté serveur dans les Edge Functions
- Impossibilité de contournement
- Synchronisation cross-device pour les utilisateurs authentifiés
Gamification prévue (Q2-Q3 2026)
| Fonctionnalité | Description |
|---|---|
| Crédits progressifs | 5 → 10 → 20 selon l'engagement |
| Badges "Premières analyses" | Encourager la prise en main |
| Streaks quotidiens | Bonus crédits pour utilisation régulière |
| Parrainage | Crédits bonus pour chaque utilisateur parrainé |