# Implementazione Gruppi Merceologici Magazzino ## Richiesta Implementare la gestione dei gruppi merceologici per la categorizzazione degli articoli nel modulo magazzino, sia backend che frontend. ## Stato Attuale - Esiste già una gestione di "Categorie Articoli" (`WarehouseArticleCategory`) che è gerarchica. - "Gruppi Merceologici" (`WarehouseProductGroup`) sarà una nuova entità, probabilmente una classificazione parallela non gerarchica (o piatta) spesso usata per fini statistici o contabili, o semplicemente come raggruppamento alternativo. ## Piano di Lavoro ### Backend 1. **Domain Layer** - Creare entità `WarehouseProductGroup` in `Zentral.Domain.Entities.Warehouse`. - Campi: Code, Name, Description, IsActive. - Aggiornare `WarehouseArticle` aggiungendo FK `ProductGroupId` e navigation property. 2. **Infrastructure Layer** - Aggiungere `DbSet` in `ApplicationDbContext`. - Configurare le relazioni entity framework se necessario. - Creare Migrazione `AddWarehouseProductGroups`. 3. **Service Layer** - Aggiornare `IWarehouseService` e `WarehouseService` con i metodi CRUD per i gruppi merceologici. 4. **API Layer** - Creare `WarehouseProductGroupsController`. - Aggiornare DTOs degli articoli per includere `ProductGroupId`. ### Frontend 1. **Services** - Creare `productGroupService.ts` per chiamare le API. 2. **Pages** - Creare `ProductGroupsPage` per elenco e gestione (CRUD). 3. **Components** - Aggiornare il form di creazione/modifica articolo per permettere la selezione del gruppo merceologico. 4. **Routing & Navigation** - Aggiungere rotta per `ProductGroupsPage`. - Aggiungere voce di menu nella sidebar del magazzino. ## Note - L'implementazione seguirà lo stile esistente del modulo Warehouse, usando Services e Controllers.