Checkpoint: Refonte complète du système de rappels pour permettre une gestion granulaire par séquence
Fonctionnalités ajoutées : - Table de liaison rappelSequences pour associer rappels et séquences - Composant SequenceMultiSelect avec recherche et multi-sélection - Gestion des associations dans les procédures create/update - Modification du scheduler pour filtrer les séquences selon les associations - Si aucune séquence n'est sélectionnée, le rappel s'applique à toutes les séquences (comportement par défaut) Le système permet maintenant de configurer des rappels spécifiques pour certaines dates/séquences particulières, offrant une flexibilité complète dans la gestion des rappels automatiques.
This commit is contained in:
@@ -1070,6 +1070,7 @@ export const appRouter = router({
|
||||
joursAvant: z.number(),
|
||||
heureEnvoi: z.string().default("09:00"),
|
||||
actif: z.boolean(),
|
||||
sequenceIds: z.array(z.number()).optional(),
|
||||
fichier: z.object({
|
||||
nomFichier: z.string(),
|
||||
urlFichier: z.string(),
|
||||
@@ -1079,7 +1080,18 @@ export const appRouter = router({
|
||||
}).nullable().optional(),
|
||||
}))
|
||||
.mutation(async ({ input }) => {
|
||||
return db.createRappel(input);
|
||||
const { sequenceIds, ...rappelData } = input;
|
||||
const result: any = await db.createRappel(rappelData);
|
||||
|
||||
// Créer les associations rappel-séquence si des séquences sont spécifiées
|
||||
if (sequenceIds && sequenceIds.length > 0) {
|
||||
const rappelId = result.insertId || result[0]?.insertId;
|
||||
if (rappelId) {
|
||||
await db.createRappelSequences(Number(rappelId), sequenceIds);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}),
|
||||
|
||||
update: adminProcedure
|
||||
@@ -1091,6 +1103,7 @@ export const appRouter = router({
|
||||
joursAvant: z.number().optional(),
|
||||
heureEnvoi: z.string().optional(),
|
||||
actif: z.boolean().optional(),
|
||||
sequenceIds: z.array(z.number()).optional(),
|
||||
fichier: z.object({
|
||||
nomFichier: z.string(),
|
||||
urlFichier: z.string(),
|
||||
@@ -1100,8 +1113,17 @@ export const appRouter = router({
|
||||
}).nullable().optional(),
|
||||
}))
|
||||
.mutation(async ({ input }) => {
|
||||
const { id, ...data } = input;
|
||||
const { id, sequenceIds, ...data } = input;
|
||||
await db.updateRappel(id, data);
|
||||
|
||||
// Mettre à jour les associations rappel-séquence si spécifiées
|
||||
if (sequenceIds !== undefined) {
|
||||
await db.deleteRappelSequences(id);
|
||||
if (sequenceIds.length > 0) {
|
||||
await db.createRappelSequences(id, sequenceIds);
|
||||
}
|
||||
}
|
||||
|
||||
return { success: true };
|
||||
}),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user