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)
This commit is contained in:
@@ -113,7 +113,7 @@ export async function processRappelRetry() {
|
||||
|
||||
// Réessayer l'envoi
|
||||
try {
|
||||
if (log.typeRappel === "rappel") {
|
||||
if (log.type === "rappel") {
|
||||
await sendRappelJ7Email({
|
||||
apprenantEmail: apprenant[0].email,
|
||||
apprenantPrenom: apprenant[0].prenom,
|
||||
@@ -128,7 +128,7 @@ export async function processRappelRetry() {
|
||||
})),
|
||||
lieu: seq.lieu || "",
|
||||
});
|
||||
} else if (log.typeRappel === "rappelJ1") {
|
||||
} else if (log.type === "rappel2") {
|
||||
await sendRappelJ1Email({
|
||||
apprenantEmail: apprenant[0].email,
|
||||
apprenantPrenom: apprenant[0].prenom,
|
||||
@@ -149,7 +149,7 @@ export async function processRappelRetry() {
|
||||
await db
|
||||
.update(logsRappels)
|
||||
.set({
|
||||
statut: "success",
|
||||
statut: "succes",
|
||||
nbTentatives: log.nbTentatives + 1,
|
||||
prochainEssai: null,
|
||||
})
|
||||
@@ -166,7 +166,7 @@ export async function processRappelRetry() {
|
||||
await db
|
||||
.update(logsRappels)
|
||||
.set({
|
||||
statut: "failed",
|
||||
statut: "echec",
|
||||
nbTentatives: nouvelleTentative,
|
||||
messageErreur: `Abandon après 3 tentatives: ${messageErreur}`,
|
||||
prochainEssai: null,
|
||||
|
||||
Reference in New Issue
Block a user