# Protection coût IA TopStats

Objectif : éviter qu'un client PRO coûte plus cher en IA que son abonnement.

## Migration SQL

Importer :

```text
database/migrations/2026-06-18-ai-usage-budget.sql
```

Cette migration ajoute :

- `ai_usage_logs` : chaque appel IA avec provider, modèle, tokens et coût estimé.
- `ai_budget_periods` : budget par utilisateur sur sa période active.

## Variables de budget

```env
AI_BUDGET_FREE_WEEKLY_CENTS=20
AI_BUDGET_PRO_WEEKLY_CENTS=150
AI_BUDGET_PRO_MONTHLY_CENTS=450
AI_BUDGET_PRO_6_MONTHS_CENTS=1800
AI_BUDGET_ADMIN_WEEKLY_CENTS=5000
AI_BUDGET_CONSERVATIVE_THRESHOLD=0.8
```

Exemple : `AI_BUDGET_PRO_WEEKLY_CENTS=150` signifie que TopStats accepte environ 1,50€ de coût IA estimé par semaine pour un client PRO semaine.

## Variables de coût provider

Les coûts exacts peuvent changer selon le modèle. Les valeurs sont donc configurables.

```env
AI_COST_OPENAI_INPUT_1M_CENTS=300
AI_COST_OPENAI_OUTPUT_1M_CENTS=1500
AI_COST_GEMINI_INPUT_1M_CENTS=50
AI_COST_GEMINI_OUTPUT_1M_CENTS=200
AI_COST_CLAUDE_INPUT_1M_CENTS=300
AI_COST_CLAUDE_OUTPUT_1M_CENTS=1500
```

Les valeurs sont en centimes par million de tokens.

## Fonctionnement

- Mode `normal` : TopStats utilise le moteur IA premium.
- Mode `conservative` : TopStats utilise encore l'IA, mais limite la longueur des réponses.
- Mode `economy` : TopStats n'appelle plus l'IA premium pour cet utilisateur et répond avec les données déterministes/cache.

## Admin

Le dashboard admin affiche :

- coût IA estimé du jour ;
- coût IA estimé des 7 derniers jours ;
- utilisateurs les plus coûteux ;
- nombre d'appels ;
- budget et mode actuel.

## Réponses propres

Les réponses du chat sont nettoyées avant affichage :

- suppression des `**` Markdown ;
- suppression des titres Markdown ;
- nettoyage des blocs de code ;
- texte plus propre pour web et iOS.
