# Piano di Sviluppo Modulo Gestione Eventi ## Obiettivo Implementare il modulo "Gestione Eventi" integrando le funzionalità esistenti (Dashboard, Calendario, Eventi, Clienti, Location, Articoli, Risorse) e rendendolo acquistabile nello store. ## Stato Attuale - Esistono già pagine frontend: `EventiPage`, `EventoDetailPage`, `CalendarioPage`, `ClientiPage`, `LocationPage`, `ArticoliPage`, `RisorsePage`. - Esiste già backend: `EventiController`, `Evento` entity, e relative entità collegate. - Il modulo non è ancora strutturato come "AppModule" formale nel sistema (non c'è cartella `modules/events` nel frontend, non c'è guard). ## Piano di Lavoro ### 1. Strutturazione Modulo Frontend - [x] Creare cartella `src/frontend/src/modules/events`. - [x] Spostare le pagine specifiche degli eventi (`EventiPage`, `EventoDetailPage`, `CalendarioPage`, `LocationPage`) dentro `src/frontend/src/modules/events/pages`. - [x] Creare `src/frontend/src/modules/events/routes.tsx` per gestire le rotte del modulo. - [x] Aggiornare `App.tsx` per includere le rotte del modulo eventi sotto `ModuleGuard`. ### 2. Integrazione Funzionalità Esistenti - [x] Verificare che `ClientiPage`, `ArticoliPage`, `RisorsePage` siano accessibili e integrate correttamente. (Sono rimaste nel menu Core come previsto). - [x] Assicurarsi che il menu laterale mostri le voci corrette quando il modulo è attivo. ### 3. Backend & Database - [x] Verificare l'esistenza del modulo "events" nella tabella `AppModules` (o crearlo tramite migrazione/seed). - [x] Assicurarsi che le API esistenti siano protette o accessibili correttamente. ### 4. Store & Attivazione - [x] Verificare che il modulo appaia nella pagina di acquisto moduli. - [x] Testare l'attivazione/disattivazione del modulo. ### 5. Refactoring & Pulizia - [x] Aggiornare gli import nei file spostati. - [x] Rimuovere le rotte vecchie da `App.tsx`. ## Note - I moduli `Clienti`, `Articoli`, `Risorse` sembrano essere entità "core" o condivise. Per ora le manterremo accessibili, valutando se spostarle in moduli specifici (es. `crm`, `catalog`, `resources`) in futuro, o se lasciarle globali. Dato che la richiesta è specifica sugli eventi, ci concentreremo sul raggruppare le funzioni eventi.