From dedd4f4e694ca9bf3cb70d97605b64eea8da0c0d Mon Sep 17 00:00:00 2001 From: dnviti Date: Fri, 12 Dec 2025 11:00:28 +0100 Subject: [PATCH] docs: Add devlogs for safety training and communications modules, and update the main development status index. --- .agent/rules/market-placing.md | 2 + docs/development/ZENTRAL.md | 4 ++ ...5-12-12-105500_safety_training_schedule.md | 65 +++++++++++++++++++ ...2025-12-12-110000_communications_module.md | 51 +++++++++++++++ 4 files changed, 122 insertions(+) create mode 100644 docs/development/devlog/2025-12-12-105500_safety_training_schedule.md create mode 100644 docs/development/devlog/2025-12-12-110000_communications_module.md diff --git a/.agent/rules/market-placing.md b/.agent/rules/market-placing.md index de29264..a13403c 100644 --- a/.agent/rules/market-placing.md +++ b/.agent/rules/market-placing.md @@ -12,6 +12,8 @@ Il software si chiama Zentral e, tramite diverse applicazioni, si occupa di gest - magazzino (Gestione inventario, movimenti di magazzino, giacenze e valorizzazione scorte) - HR (o personale) (Gestione personale, contratti, pagamenti, assenze, rimborsi e analisi personale) - report e stampe (Gestione report, creazione e analisi report) +- comunicazioni (Gestione invio mail, chat interna, condivisione risorse del gestionale ad interni ed esterni) +- corsi e formazione (Gestione corsi di formazione, erogazione corsi, tracciabilità scadenze) mostra statistiche grafiche per ogni applicazione nella dashboard dell'applicazione. diff --git a/docs/development/ZENTRAL.md b/docs/development/ZENTRAL.md index a7ce6bc..38c2bd5 100644 --- a/docs/development/ZENTRAL.md +++ b/docs/development/ZENTRAL.md @@ -49,3 +49,7 @@ File riassuntivo dello stato di sviluppo di Zentral. - Corretta chiave di traduzione errata per la tab "Gestione Applicazioni" e migliorata la gestione dell'aggiornamento etichette tab. - [2025-12-06 Auto Codes Reorganization](./devlog/2025-12-06-021000_autocodes_reorg.md) - **Completato** - Riorganizzazione UI Auto Codes, allineamento stile a Custom Fields, miglioramento traduzioni e categorizzazione. +- [2025-12-12 - Modulo Comunicazioni](./devlog/2025-12-12-110000_communications_module.md) - **In Corso** + - Implementazione invio email e gestione comunicazioni. +- [2025-12-12 - Gestione Scadenzario Formazione Sicurezza](./devlog/2025-12-12-105500_safety_training_schedule.md) - **In Corso** + - Implementazione modulo sicurezza, formazione e scadenziario. \ No newline at end of file diff --git a/docs/development/devlog/2025-12-12-105500_safety_training_schedule.md b/docs/development/devlog/2025-12-12-105500_safety_training_schedule.md new file mode 100644 index 0000000..53648fa --- /dev/null +++ b/docs/development/devlog/2025-12-12-105500_safety_training_schedule.md @@ -0,0 +1,65 @@ +# Implementazione Gestione Scadenzario Formazione Sicurezza + +## Obiettivo +Configurare il flusso per la gestione dello scadenzario della formazione sicurezza, accentrando dati e scadenze, abbandonando file Excel disconnessi. + +## Strategia +Mapping delle funzionalità sui moduli esistenti: +1. **Anagrafica Corsi** -> Modulo **Magazzino** (`Articolo`) +2. **Anagrafica Soggetti** -> Modulo **Clienti** (`Cliente` + nuova entità `ClienteContatto`) +3. **Gestione Attestati e Scadenze** -> Nuovo Modulo **Safety** (o estensione Eventi/Qualità) +4. **Workflow Notifiche** -> Human-in-the-loop tramite Dashboard dedicato. + +## Piano di Lavoro + +### 1. Documentazione e Analisi +- [ ] Creazione piano di lavoro (questo file). +- [ ] Aggiornamento `ZENTRAL.md`. + +### 2. Backend (.NET) +#### Domain Layer +- [ ] **Modifica Entity `Articolo`**: + - Aggiungere `int? DurataValiditaAnni` (Validità del corso). + - Aggiungere `bool IsCorsoFormazione` (Flag identificativo). +- [ ] **Nuova Entity `ClienteContatto`**: + - Proprietà: `Nome`, `Cognome`, `Email`, `Ruolo`, `Telefono`, foreign key a `Cliente`. + - Aggiornare `Cliente` con collection `Contatti`. +- [ ] **Nuova Entity `TrainingRecord` (Safety)**: + - Proprietà: `ClienteContattoId`, `ArticoloId` (Corso), `DataEsecuzione`, `DataScadenza` (Calcolata), `AttestatoUrl`, `Stato` (Valid, Expiring, Expired). + - Note e audit log. + +#### Infrastructure / EF Core +- [ ] Creare Migrazione EF per le nuove entità e modifiche. +- [ ] Aggiornare `ApplicationDbContext`. + +#### API Layer +- [ ] **Aggiornare `ArticoliController`**: Gestione nuovi campi. +- [ ] **Aggiornare `ClientiController`**: Gestione CRUD Contatti. +- [ ] **Nuovo `TrainingController`**: + - CRUD TrainingRecords. + - Upload file attestato. + - Endpoint `GetExpiringTrainings` per la dashboard (filtri per data, azienda). + - Endpoint `approve-notification`: Utilizza il nuovo servizio `IEmailSender` per inviare le notifiche. + +### 3. Frontend (React) +#### Modulo Safety (Nuova App `safety`) +- [ ] **Setup Modulo**: Creare cartella `src/frontend/src/apps/safety` e configurare route. +- [ ] **Componenti**: + - `SafetyDashboard`: Widget con scadenze imminenti e scadute. + - `CourseRegistry`: Tabella corsi (Articoli filtrati). + - `TrainingMatrix`: Vista lavoratori x corsi o lista formazioni. + - `TrainingForm`: Modale inserimento/modifica formazione (Caricamento file, calcolo automatico scadenza). + +#### Integrazione Moduli Esistenti +- [ ] **Magazzino**: Aggiungere campi Validità nel form Articolo. +- [ ] **Clienti**: Aggiungere Tab "Contatti" nel dettaglio Cliente per gestire i lavoratori. + +### 4. Workflow e Notifiche +- [ ] Implementare logica "Human-in-the-loop": Liste "Da Inviare" nella Dashboard. +- [ ] Integrazione con il **Modulo Email Standard**: Chiamata al servizio di invio email reale. + +### 5. Verifica e Test +- [ ] Test flusso completo: Creazione Corso -> Creazione Lavoratore -> Registrazione Formazione -> Verifica Scadenza -> Notifica. + +## Stato Attuale +- Inizio analisi e setup. diff --git a/docs/development/devlog/2025-12-12-110000_communications_module.md b/docs/development/devlog/2025-12-12-110000_communications_module.md new file mode 100644 index 0000000..c878ceb --- /dev/null +++ b/docs/development/devlog/2025-12-12-110000_communications_module.md @@ -0,0 +1,51 @@ +# 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.