Checkpoint: Refonte majeure du système de rappels : sélection granulaire au niveau des dates de formation individuelles (dateFormationId) au lieu des séquences. Permet de choisir précisément quelles dates d'une séquence recevront un rappel. Interface hiérarchique avec séquences dépliables et checkboxes par date. Scheduler adapté pour traiter date par date.
This commit is contained in:
@@ -1070,7 +1070,7 @@ export const appRouter = router({
|
||||
joursAvant: z.number(),
|
||||
heureEnvoi: z.string().default("09:00"),
|
||||
actif: z.boolean(),
|
||||
sequenceIds: z.array(z.number()).optional(),
|
||||
dateFormationIds: z.array(z.number()).optional(),
|
||||
fichier: z.object({
|
||||
nomFichier: z.string(),
|
||||
urlFichier: z.string(),
|
||||
@@ -1080,14 +1080,14 @@ export const appRouter = router({
|
||||
}).nullable().optional(),
|
||||
}))
|
||||
.mutation(async ({ input }) => {
|
||||
const { sequenceIds, ...rappelData } = input;
|
||||
const { dateFormationIds, ...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) {
|
||||
// Créer les associations rappel-date si des dates sont spécifiées
|
||||
if (dateFormationIds && dateFormationIds.length > 0) {
|
||||
const rappelId = result.insertId || result[0]?.insertId;
|
||||
if (rappelId) {
|
||||
await db.createRappelSequences(Number(rappelId), sequenceIds);
|
||||
await db.createRappelDates(Number(rappelId), dateFormationIds);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1103,7 +1103,7 @@ export const appRouter = router({
|
||||
joursAvant: z.number().optional(),
|
||||
heureEnvoi: z.string().optional(),
|
||||
actif: z.boolean().optional(),
|
||||
sequenceIds: z.array(z.number()).optional(),
|
||||
dateFormationIds: z.array(z.number()).optional(),
|
||||
fichier: z.object({
|
||||
nomFichier: z.string(),
|
||||
urlFichier: z.string(),
|
||||
@@ -1113,14 +1113,14 @@ export const appRouter = router({
|
||||
}).nullable().optional(),
|
||||
}))
|
||||
.mutation(async ({ input }) => {
|
||||
const { id, sequenceIds, ...data } = input;
|
||||
const { id, dateFormationIds, ...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);
|
||||
// Mettre à jour les associations rappel-date si spécifiées
|
||||
if (dateFormationIds !== undefined) {
|
||||
await db.deleteRappelDates(id);
|
||||
if (dateFormationIds.length > 0) {
|
||||
await db.createRappelDates(id, dateFormationIds);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user