# Fase 5: Notifiche e Comunicazioni Data: 2025-12-15 Stato: In Corso ## Obiettivo Implementare il sistema di generazione e invio delle notifiche di scadenza alle aziende. ## Requisiti 1. **Generazione Automatica**: Il sistema deve identificare i corsi in scadenza (es. preavviso 30gg) e generare una "proposta di notifica". 2. **Review Umana**: Le notifiche non partono subito; l'operatore deve poterle visionare nella sezione "Comunicazioni" e approvarle. 3. **Queue System**: Gestione dello stato della notifica (Pending -> Sending -> Sent/Error). 4. **Email Templates**: Uso di template HTML per le mail. ## Piano Tecnico ### Backend - [x] Installazione `nodemailer` e `ejs` per templating. - [x] Aggiornamento Schema Prisma: Aggiunta model `Notification` (type: EXPIRING_REMINDER, status: PENDING/SENT). - [x] `notification.service.ts`: - `generateReminders()`: Scansiona `TrainingEvent` e crea record `Notification`. - `sendPending(ids[])`: Invia le mail selezionate. - [x] `notification.controller.ts`: Endpoints per lista, generazione e invio. ### Frontend - [x] `CommunicationsPage.tsx`: Tabella delle notifiche generate. - [x] Azioni massive: "Genera Nuove" e "Invia Selezionate".