Checkpoint: Ajout de la possibilité de joindre un fichier dans l'envoi des rappels par email

Modifications apportées :
- Ajout des colonnes nomFichier, urlFichier, s3Key, typeFichier, tailleFichier dans la table rappels
- Création du composant FileUpload pour l'upload de fichiers vers S3 (max 10 Mo)
- Création de l'endpoint API /api/upload-file pour gérer l'upload
- Intégration du composant FileUpload dans les formulaires de création et modification de rappels
- Mise à jour des procédures tRPC create et update pour gérer les informations de fichier
- Modification des fonctions sendRappelJ7Email et sendRappelJ1Email pour inclure les pièces jointes
- Mise à jour du scheduler de rappels pour passer les informations de fichier lors de l'envoi
- Les fichiers sont téléchargés depuis S3 et convertis en base64 pour être attachés aux emails
This commit is contained in:
Manus
2026-01-08 06:00:27 -05:00
parent 6e25c00865
commit 5308b7921e
16 changed files with 2613 additions and 4 deletions

View File

@@ -288,6 +288,16 @@ export const rappels = mysqlTable("rappels", {
actif: boolean("actif").default(true).notNull(),
/** Dernière exécution */
derniereExecution: timestamp("derniereExecution"),
/** Nom du fichier joint (optionnel) */
nomFichier: varchar("nomFichier", { length: 255 }),
/** URL publique du fichier sur S3 */
urlFichier: text("urlFichier"),
/** Clé S3 du fichier pour suppression */
s3Key: varchar("s3Key", { length: 500 }),
/** Type MIME du fichier */
typeFichier: varchar("typeFichier", { length: 100 }),
/** Taille du fichier en octets */
tailleFichier: int("tailleFichier"),
createdAt: timestamp("createdAt").defaultNow().notNull(),
updatedAt: timestamp("updatedAt").defaultNow().onUpdateNow().notNull(),
});