# 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.