Commit Graph

2 Commits

Author SHA1 Message Date
Manus
92362ec1d2 Checkpoint: Checkpoint saved: Correction complète de la cohérence des types de rappels entre l'interface et le backend :
**Modifications du schéma Drizzle :**
- logsrappels.type : enum('rappel1','rappel2','rappel3','rappel4','rappel5','rappel6')
- emailTemplates.type : enum('inscription','teaser','rappel1','rappel2','rappel3','rappel4','rappel5','rappel6','reset_password')
- rappels.templateType : enum('rappel1','rappel2','rappel3','rappel4','rappel5','rappel6')

**Modifications du code :**
- server/routers.ts : mise à jour des enums Zod
- server/db.ts : renommage des templates par défaut (rappel → rappel1, rappelJ1 → rappel2)
- server/rappelRetry.ts : correction de la condition rappelJ1 → rappel2
- drizzle/schema.ts : mise à jour de tous les enums

**Migration de la base de données MySQL :**
- Script SQL créé et exécuté avec succès sur le VPS
- Migration en 3 étapes : élargir enum → mettre à jour données → restreindre enum
- Toutes les données existantes migrées correctement

**Résultat :**
-  Plus d'erreur "Unknown column 'type'" dans les logs
-  Cohérence parfaite entre l'interface (Rappel 1, Rappel 2) et le backend (rappel1, rappel2)
-  Système de rappels fonctionnel
-  Déployé et testé sur le VPS de production (https://formations.itinova.org)
2026-01-19 06:39:00 -05:00
Manus Sandbox
355cb43dc7 Checkpoint: Historique, statistiques et réessai automatique des rappels
**Nouvelles fonctionnalités** :

1. **Page d'historique des rappels** (`/admin/rappels/historique`)
   - Tableau complet de tous les rappels envoyés
   - Filtres avancés : date début/fin, séquence, statut (succès/échec), email
   - Recherche par email avec mise en surbrillance
   - Pagination (50 résultats par page)
   - Affichage du nombre de tentatives pour chaque rappel
   - Code couleur : vert pour succès, rouge pour échec

2. **Tableau de bord statistiques** (`/admin/rappels/statistiques`)
   - 4 cartes de statistiques globales : total envoyés, succès, échecs, taux de succès
   - Graphique d'évolution : nombre de rappels envoyés par jour (succès vs échecs)
   - Graphique du taux de succès par jour (barres)
   - Top 10 des emails problématiques avec nombre d'échecs
   - Visualisation interactive avec Recharts

3. **Système de réessai automatique**
   - Détection automatique des rappels échoués
   - Délai exponentiel : 1h après 1er échec, 4h après 2ème, 24h après 3ème
   - Limite de 3 tentatives maximum
   - Notification automatique à l'admin en cas d'abandon (3 échecs)
   - Mise à jour automatique du statut dans les logs
   - Vérification toutes les heures

**Nouveaux champs dans logsRappels** :
- `nbTentatives` : nombre de tentatives d'envoi (1 à 3)
- `prochainEssai` : date du prochain essai en cas d'échec

**Nouveaux fichiers** :
- `client/src/pages/admin/AdminRappelsHistorique.tsx` : Page d'historique
- `client/src/pages/admin/AdminRappelsStats.tsx` : Page de statistiques
- `server/rappelRetry.ts` : Système de réessai automatique
- `server/rappelDb.ts` : Fonctions étendues (filtres, stats, évolution)

**Fichiers modifiés** :
- `drizzle/schema.ts` : Ajout de nbTentatives et prochainEssai
- `server/routers.ts` : Nouvelles procédures tRPC (historique, statistiques, évolution)
- `client/src/App.tsx` : Routes pour historique et statistiques
- `client/src/components/DashboardLayout.tsx` : Sous-menu Rappels
- `server/_core/index.ts` : Initialisation du scheduler de retry

**Bénéfices** :
-  Traçabilité complète de tous les rappels
-  Analyse des performances avec graphiques
-  Identification rapide des emails problématiques
-  Réessai automatique des échecs sans intervention manuelle
-  Notification en cas d'échec persistant
-  Optimisation de la délivrabilité des emails
2025-12-08 03:38:14 -05:00