Files
zentral/docs/development/devlog/2025-12-12-110000_communications_module.md

52 lines
2.1 KiB
Markdown

# Implementazione Modulo Comunicazioni (Ex Email Standard)
## Obiettivo
Implementare il modulo **Comunicazioni** (`communications`), inizialmente focalizzato sulla gestione centralizzata dell'invio email (SMTP).
Questo modulo servirà da fondamento per tutte le comunicazioni in uscita (e in futuro interne) del gestionale.
## Strategia
Il modulo gestirà sia l'infrastruttura tecnica (Service Layer per invio mail) sia l'interfaccia utente per la configurazione e il monitoraggio (Log).
Sarà allineato alla visione del modulo "Comunicazioni" (Gestione invio mail, chat interna, ecc.).
## Piano di Lavoro
### 1. Documentazione
- [x] Aggiornamento piano di lavoro (questo file).
- [x] Aggiornamento `ZENTRAL.md`.
### 2. Backend (.NET)
#### Domain Layer (`Zentral.Domain`)
- [x] **Interfaccia `IEmailSender`**: Contratto standard per l'invio.
- [x] **Entities (Namespace `Communications`)**:
- `EmailLog`: Storico invii (`Id`, `Data`, `Mittente`, `Destinatario`, `Oggetto`, `Stato`, `Errore`).
- `EmailTemplate` (Opzionale Fase 1): Per standardizzare il layout delle mail.
#### Infrastructure Layer (`Zentral.Infrastructure`)
- [x] **Implementazione `SmtpEmailSender`**:
- Logica di invio tramite MailKit.
- Integrazione con `Configurazione` per leggere le credenziali SMTP a runtime.
- Salvataggio automatico del log in `EmailLog`.
#### API Layer (`Zentral.API`)
- [x] **Controller `CommunicationsController`**:
- Endpoint per test invio.
- Endpoint per consultazione Logs.
- Endpoint per salvataggio Configurazione SMTP.
### 3. Frontend (React)
#### Modulo `communications` (`src/apps/communications`)
- [x] **Setup App**: Creazione struttura standard modulo.
- [x] **Settings Page**:
- Form per configurazione SMTP (Host, Port, User, Pass, SSL).
- Pulsante "Test Connessione".
- [x] **Logs Page**:
- Tabella visualizzazione storico email inviate con stato (Successo/Errore).
## Integrazione
- Il servizio `IEmailSender` sarà iniettato negli altri moduli (es. Safety) per l'invio delle notifiche.
## Verifica
- [ ] Configurazione SMTP (es. Mailtrap).
- [ ] Test invio mail da interfaccia.
- [ ] Verifica scrittura Log su DB.