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:
Manus
2026-01-08 08:27:20 -05:00
parent 5de295a18c
commit 6ee87f9b22
12 changed files with 2462 additions and 15 deletions

View File

@@ -305,6 +305,23 @@ export const rappels = mysqlTable("rappels", {
export type Rappel = typeof rappels.$inferSelect;
export type InsertRappel = typeof rappels.$inferInsert;
/**
* Table de liaison entre rappels et séquences (many-to-many)
* Permet de définir quelles séquences sont concernées par chaque rappel
* Si aucune association n'existe pour un rappel, il s'applique à toutes les séquences
*/
export const rappelSequences = mysqlTable("rappelSequences", {
id: int("id").autoincrement().primaryKey(),
/** ID du rappel */
rappelId: int("rappelId").notNull(),
/** ID de la séquence concernée */
sequenceId: int("sequenceId").notNull(),
createdAt: timestamp("createdAt").defaultNow().notNull(),
});
export type RappelSequence = typeof rappelSequences.$inferSelect;
export type InsertRappelSequence = typeof rappelSequences.$inferInsert;
/**
* Table des questionnaires
* Stocke les questionnaires de satisfaction et d'évaluation des acquis