initial commit
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# 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".
|
||||
Reference in New Issue
Block a user