feat(admin): canaux IA par palier (z.ai/DeepSeek directs), emails generes par IA, reductions Stripe
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m40s

- Chaque modele d'un palier devient une route {canal, modele} : openrouter,
  deepseek direct, zhipu (z.ai, nouveau canal), minimax, openai, xai ;
  repli automatique sur la route suivante si la cle manque, compatibilite
  ascendante avec les anciens reglages a chaines
- Page Fournisseurs refondue en sections ; interrupteurs et chaine de
  secours retablis ; tests de connexion avec delai d'attente
- Emails de relance generes par IA (canal au choix, prompt construit depuis
  le plan marketing, HTML sane, RTL arabe/persan, jamais d'envoi automatique)
- Codes promo : validation locale avant Stripe, Coupon+PromotionCode avec
  double plafond, comptage par session (webhook+sync=1 fois), ecriture
  atomique, relier-a-Stripe, suppression, validation publique au checkout
- Page Tarifs : champ code promo (?promo=) avec verification traduite
- Tests : 1357 verts (facturation par palier testee dans le worker,
  point de contact providers/available, promos, generation)
This commit is contained in:
2026-09-05 19:46:33 +02:00
parent 6c26712687
commit 0a013c679d
47 changed files with 7210 additions and 679 deletions

View File

@@ -71,3 +71,10 @@ Reportés de la revue marketing du 2026-09-05 (spec-hermes-marketing-execution.m
- source_spec: `_bmad-output/implementation-artifacts/spec-strategie-llm-abonnements-admin.md`
summary: Les cartes de revenus ne distinguent pas « aucune donnée » de « base injoignable » (affichage silencieux de zéro).
evidence: Relecture de contenu ; amélioration d'affichage à prévoir sur RevenueOverview.tsx.
- source_spec: `_bmad-output/implementation-artifacts/spec-admin-fournisseurs-ia-emails-promos.md`
summary: Le verrou des fichiers JSON de codes promo ne couvre qu'un processus ; avec plusieurs workers, deux paiements simultanés peuvent dépasser le plafond local.
evidence: Relectures ; le plafond côté Stripe (max_redemptions sur le Promotion Code) reste le garde-fou réel. Un verrou inter-processus (fichier ou base) est un chantier à part, commun à tous les fichiers data/*.json.
- source_spec: `_bmad-output/implementation-artifacts/spec-admin-fournisseurs-ia-emails-promos.md`
summary: Environ 160 clés de traduction antérieures à ces chantiers n'existent que dans une partie des 13 langues (glossaires, traduction, connexion…).
evidence: Constat du relecteur et de l'implémentation ; rapprochement complet à faire dans un passage dédié.