- Correction des 170 erreurs TypeScript liées aux types templateType dans les procédures rappels.create et rappels.update (passage de z.string() à z.enum() avec les valeurs correctes)
- Nettoyage complet des fichiers de migration Drizzle (suppression des 32 anciens fichiers et génération d'une nouvelle migration propre 0000_clean_justice.sql)
- Création du guide utilisateur GUIDE_CONFIGURATION_ATTESTATIONS.md expliquant en détail le nouveau workflow de configuration des attestations (modes de génération et d'envoi, workflows recommandés, bonnes pratiques, dépannage)
**Nouvelles fonctionnalités** :
1. **Historique des rappels envoyés**
- Nouvelle table `logsRappels` pour tracer tous les emails de rappels
- Enregistrement automatique de chaque envoi (succès ou échec)
- Prévention des doublons : vérification avant envoi
- Informations stockées : rappelId, sequenceId, apprenantId, email, type, statut, message d'erreur
2. **Notifications automatiques à l'administrateur**
- Alerte par email en cas d'échec d'envoi de rappels
- Détail des échecs : liste des emails et messages d'erreur
- Résumé : nombre d'envois réussis vs échecs
3. **Procédure de test manuel** (backend uniquement)
- Nouvelle procédure tRPC `rappels.testerRappel`
- Permet de tester l'envoi d'un rappel J-7 ou J-1 pour une séquence
- Envoie au premier apprenant inscrit uniquement
**Fichiers créés** :
- `server/rappelDb.ts` : Fonctions de gestion des logs de rappels
- `drizzle/schema.ts` : Ajout de la table `logsRappels`
**Fichiers modifiés** :
- `server/rappelScheduler.ts` : Intégration du logging et des notifications
- `server/routers.ts` : Ajout de la procédure `testerRappel`
**Bénéfices** :
- ✅ Aucun doublon même en cas de redémarrage du serveur
- ✅ Traçabilité complète de tous les rappels envoyés
- ✅ Alertes automatiques en cas de problème d'envoi
- ✅ Possibilité de tester les rappels avant envoi automatique