diff --git a/server/emailService.ts b/server/emailService.ts index 05c98c6..7102674 100644 --- a/server/emailService.ts +++ b/server/emailService.ts @@ -154,6 +154,8 @@ export async function sendTeaserEmail(params: { formationNom: string; sequenceNom: string; dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>; + lieu?: string; + formateur?: string; }): Promise { const fonctionLabel = params.apprenantFonction === 'directeur' ? 'Directeur' : params.apprenantFonction === 'chef_service' ? 'Chef de service' : ''; @@ -180,6 +182,8 @@ export async function sendTeaserEmail(params: {

Séquence : ${params.sequenceNom}

Dates :

${datesHTML} + ${params.lieu ? `

Lieu : ${params.lieu}

` : ''} + ${params.formateur ? `

Formateur : ${params.formateur}

` : ''}

Préparez-vous à vivre une expérience enrichissante qui vous permettra de développer vos compétences managériales.

@@ -194,6 +198,8 @@ export async function sendTeaserEmail(params: { nomSequence: params.sequenceNom, dateDebut: params.dates[0]?.dateDebut.toLocaleDateString('fr-FR') || '', dateFin: params.dates[params.dates.length - 1]?.dateFin.toLocaleDateString('fr-FR') || '', + lieu: params.lieu || '', + formateur: params.formateur || '', }; return sendEmail({ @@ -282,6 +288,7 @@ export async function sendGroupEmail(params: { type: 'teaser' | 'rappel'; dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>; lieu?: string; + formateur?: string; }): Promise<{ sent: number; failed: number }> { let sent = 0; let failed = 0; @@ -297,6 +304,8 @@ export async function sendGroupEmail(params: { formationNom: params.formationNom, sequenceNom: params.sequenceNom, dates: params.dates, + lieu: params.lieu, + formateur: params.formateur, }); } else { await sendRappelJ7Email({ diff --git a/server/routers.ts b/server/routers.ts index 9926c10..b4c92c7 100644 --- a/server/routers.ts +++ b/server/routers.ts @@ -525,6 +525,12 @@ export const appRouter = router({ console.log(`[Email Group] Envoi de ${recipients.length} emails de type ${input.type}`); console.log(`[Email Group] Destinataires:`, recipients.map(r => r.email)); + let formateurNom: string | undefined; + if (sequence.formateurId) { + const formateur = await db.getFormateurById(sequence.formateurId); + formateurNom = formateur?.nom; + } + const result = await sendGroupEmail({ recipients, formationNom: formation.nom, @@ -536,6 +542,7 @@ export const appRouter = router({ ordre: d.ordre, })), lieu: sequence.lieu, + formateur: formateurNom, }); console.log(`[Email Group] Résultat: ${result.sent} envoyés, ${result.failed} échoués`); diff --git a/todo.md b/todo.md index 8359cad..f52a1df 100644 --- a/todo.md +++ b/todo.md @@ -793,3 +793,12 @@ - [x] Vérifier le système de remplacement des tags ({{nomFormation}}) - [x] Corriger le remplacement du tag (ajout des variables dans sendTeaserEmail et sendRappelJ7Email) - [x] Corriger et préparer pour test en production + +## Email teaser sans formateur ni lieu + +- [x] Vérifier les données disponibles dans sendTeaserEmail +- [x] Ajouter le formateur et le lieu dans les paramètres de sendTeaserEmail +- [x] Récupérer le formateur depuis la base de données dans routers.ts +- [x] Modifier le template pour afficher lieu et formateur +- [x] Ajouter lieu et formateur dans les variables +- [x] Préparer pour test en production