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

2.1 KiB

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

  • Aggiornamento piano di lavoro (questo file).
  • Aggiornamento ZENTRAL.md.

2. Backend (.NET)

Domain Layer (Zentral.Domain)

  • Interfaccia IEmailSender: Contratto standard per l'invio.
  • 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:
    • 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:
    • 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:
    • Form per configurazione SMTP (Host, Port, User, Pass, SSL).
    • Pulsante "Test Connessione".
  • 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.