feat: implement communications module with SMTP settings, email logging, and frontend UI

This commit is contained in:
2025-12-12 11:19:25 +01:00
parent dedd4f4e69
commit 9174e75be0
19 changed files with 727 additions and 9 deletions

View File

@@ -11,35 +11,35 @@ Sarà allineato alla visione del modulo "Comunicazioni" (Gestione invio mail, ch
## Piano di Lavoro
### 1. Documentazione
- [ ] Aggiornamento piano di lavoro (questo file).
- [ ] Aggiornamento `ZENTRAL.md`.
- [x] Aggiornamento piano di lavoro (questo file).
- [x] Aggiornamento `ZENTRAL.md`.
### 2. Backend (.NET)
#### Domain Layer (`Zentral.Domain`)
- [ ] **Interfaccia `IEmailSender`**: Contratto standard per l'invio.
- [ ] **Entities (Namespace `Communications`)**:
- [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`)
- [ ] **Implementazione `SmtpEmailSender`**:
- [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`)
- [ ] **Controller `CommunicationsController`**:
- [x] **Controller `CommunicationsController`**:
- Endpoint per test invio.
- Endpoint per consultazione Logs.
- Endpoint per salvataggio Configurazione SMTP.
### 3. Frontend (React)
#### Modulo `communications` (`src/apps/communications`)
- [ ] **Setup App**: Creazione struttura standard modulo.
- [ ] **Settings Page**:
- [x] **Setup App**: Creazione struttura standard modulo.
- [x] **Settings Page**:
- Form per configurazione SMTP (Host, Port, User, Pass, SSL).
- Pulsante "Test Connessione".
- [ ] **Logs Page**:
- [x] **Logs Page**:
- Tabella visualizzazione storico email inviate con stato (Successo/Errore).
## Integrazione