initial commit

This commit is contained in:
2025-12-15 13:16:19 +01:00
commit 0b5b9c3485
110 changed files with 13448 additions and 0 deletions

View File

@@ -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".