diff --git a/docs/development/ZENTRAL.md b/docs/development/ZENTRAL.md
index 7a9cdf9..a7ce6bc 100644
--- a/docs/development/ZENTRAL.md
+++ b/docs/development/ZENTRAL.md
@@ -47,3 +47,5 @@ File riassuntivo dello stato di sviluppo di Zentral.
- [2025-12-06 01:48:00 - Traduzione Modulo Acquisti](./devlog/2025-12-06-014800_translate_purchases.md) - **Completato**
- [2025-12-06 01:35:00 - Fix Traduzione Tab Applicazioni](./devlog/2025-12-06-013500_fix_apps_tab_translation.md) - **Completato**
- 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.
diff --git a/docs/development/devlog/2025-12-06-021000_autocodes_reorg.md b/docs/development/devlog/2025-12-06-021000_autocodes_reorg.md
new file mode 100644
index 0000000..7087507
--- /dev/null
+++ b/docs/development/devlog/2025-12-06-021000_autocodes_reorg.md
@@ -0,0 +1,30 @@
+# Riorganizzazione Auto Codes
+
+## Obiettivo
+Riorganizzare la sezione "Auto Codes" per allinearla graficamente e strutturalmente alla sezione "Custom Fields", migliorando le traduzioni e la categorizzazione.
+
+## Stato Attuale
+- La pagina `AutoCodesAdminPage.tsx` funziona ma ha nomi di moduli hardcoded in `types/autoCode.ts`.
+- La struttura grafica è simile ma può essere migliorata per essere identica a `CustomFieldsAdminPage`.
+- Mancano alcune traduzioni e la categorizzazione potrebbe non essere aggiornata con gli ultimi moduli.
+
+## Piano di Lavoro
+1. **Analisi e Preparazione**
+ - [x] Identificare le differenze stilistiche tra `AutoCodesAdminPage` e `CustomFieldsAdminPage`.
+ - [x] Identificare le stringhe non tradotte (es. nomi moduli).
+
+2. **Refactoring Frontend**
+ - [x] Aggiornare `AutoCodesAdminPage.tsx` per usare lo stesso layout di `CustomFieldsAdminPage`.
+ - [x] Sostituire i nomi hardcoded dei moduli con chiavi di traduzione.
+ - [x] Aggiornare `types/autoCode.ts` per rimuovere `appNames` hardcoded o mapparlo su chiavi i18n.
+
+3. **Aggiornamento Traduzioni**
+ - [x] Aggiungere le chiavi mancanti in `public/locales/it/translation.json`.
+ - [x] Aggiungere le chiavi mancanti in `public/locales/en/translation.json`.
+
+4. **Verifica**
+ - [x] Verificare che la pagina si carichi correttamente.
+ - [x] Verificare che le traduzioni funzionino.
+ - [x] Verificare che la categorizzazione sia corretta.
+ - [x] Aggiornare `AutoCodeDto` nel frontend per usare `moduleCode`.
+ - [x] Creare migrazione per aggiornare `ModuleCode` nel database per le entità esistenti.
diff --git a/src/backend/Zentral.Infrastructure/Migrations/20251206011423_UpdateAutoCodeModules.Designer.cs b/src/backend/Zentral.Infrastructure/Migrations/20251206011423_UpdateAutoCodeModules.Designer.cs
new file mode 100644
index 0000000..a34637d
--- /dev/null
+++ b/src/backend/Zentral.Infrastructure/Migrations/20251206011423_UpdateAutoCodeModules.Designer.cs
@@ -0,0 +1,4704 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Zentral.Infrastructure.Data;
+
+#nullable disable
+
+namespace Zentral.Infrastructure.Migrations
+{
+ [DbContext(typeof(ZentralDbContext))]
+ [Migration("20251206011423_UpdateAutoCodeModules")]
+ partial class UpdateAutoCodeModules
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder.HasAnnotation("ProductVersion", "9.0.0");
+
+ modelBuilder.Entity("Zentral.Domain.Entities.App", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("BasePrice")
+ .HasPrecision(18, 2)
+ .HasColumnType("TEXT");
+
+ b.Property("Code")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("Dependencies")
+ .HasColumnType("TEXT");
+
+ b.Property("Description")
+ .HasColumnType("TEXT");
+
+ b.Property("Icon")
+ .HasColumnType("TEXT");
+
+ b.Property("IsAvailable")
+ .HasColumnType("INTEGER");
+
+ b.Property("IsCore")
+ .HasColumnType("INTEGER");
+
+ b.Property("MonthlyMultiplier")
+ .HasPrecision(5, 2)
+ .HasColumnType("TEXT");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("RoutePath")
+ .HasColumnType("TEXT");
+
+ b.Property("SortOrder")
+ .HasColumnType("INTEGER");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Code")
+ .IsUnique();
+
+ b.HasIndex("SortOrder");
+
+ b.ToTable("Apps");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.AppSubscription", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("AppId")
+ .HasColumnType("INTEGER");
+
+ b.Property("AutoRenew")
+ .HasColumnType("INTEGER");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("EndDate")
+ .HasColumnType("TEXT");
+
+ b.Property("IsEnabled")
+ .HasColumnType("INTEGER");
+
+ b.Property("LastRenewalDate")
+ .HasColumnType("TEXT");
+
+ b.Property("Notes")
+ .HasColumnType("TEXT");
+
+ b.Property("PaidPrice")
+ .HasPrecision(18, 2)
+ .HasColumnType("TEXT");
+
+ b.Property("StartDate")
+ .HasColumnType("TEXT");
+
+ b.Property("SubscriptionType")
+ .HasColumnType("INTEGER");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AppId")
+ .IsUnique();
+
+ b.ToTable("AppSubscriptions");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.Articolo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Attivo")
+ .HasColumnType("INTEGER");
+
+ b.Property("CategoriaId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Codice")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("CodiceAlternativo")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("Descrizione")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("Immagine")
+ .HasColumnType("BLOB");
+
+ b.Property("MimeType")
+ .HasColumnType("TEXT");
+
+ b.Property("Note")
+ .HasColumnType("TEXT");
+
+ b.Property("QtaDisponibile")
+ .HasColumnType("TEXT");
+
+ b.Property("QtaStdA")
+ .HasColumnType("TEXT");
+
+ b.Property("QtaStdB")
+ .HasColumnType("TEXT");
+
+ b.Property("QtaStdS")
+ .HasColumnType("TEXT");
+
+ b.Property("TipoMaterialeId")
+ .HasColumnType("INTEGER");
+
+ b.Property("UnitaMisura")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CategoriaId");
+
+ b.HasIndex("Codice")
+ .IsUnique();
+
+ b.HasIndex("TipoMaterialeId");
+
+ b.ToTable("Articoli");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.AutoCode", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("Description")
+ .HasColumnType("TEXT");
+
+ b.Property("EntityCode")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("EntityName")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("IsEnabled")
+ .HasColumnType("INTEGER");
+
+ b.Property("IsReadOnly")
+ .HasColumnType("INTEGER");
+
+ b.Property("LastResetMonth")
+ .HasColumnType("INTEGER");
+
+ b.Property("LastResetYear")
+ .HasColumnType("INTEGER");
+
+ b.Property("LastSequence")
+ .HasColumnType("INTEGER");
+
+ b.Property("ModuleCode")
+ .HasColumnType("TEXT");
+
+ b.Property("Pattern")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("Prefix")
+ .HasColumnType("TEXT");
+
+ b.Property("ResetSequenceMonthly")
+ .HasColumnType("INTEGER");
+
+ b.Property("ResetSequenceYearly")
+ .HasColumnType("INTEGER");
+
+ b.Property("SortOrder")
+ .HasColumnType("INTEGER");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EntityCode")
+ .IsUnique();
+
+ b.HasIndex("ModuleCode");
+
+ b.ToTable("AutoCodes");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.Cliente", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Attivo")
+ .HasColumnType("INTEGER");
+
+ b.Property("Cap")
+ .HasColumnType("TEXT");
+
+ b.Property("Citta")
+ .HasColumnType("TEXT");
+
+ b.Property("Codice")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("CodiceAlternativo")
+ .HasColumnType("TEXT");
+
+ b.Property("CodiceDestinatario")
+ .HasColumnType("TEXT");
+
+ b.Property("CodiceFiscale")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("Email")
+ .HasColumnType("TEXT");
+
+ b.Property("Indirizzo")
+ .HasColumnType("TEXT");
+
+ b.Property("Note")
+ .HasColumnType("TEXT");
+
+ b.Property("PartitaIva")
+ .HasColumnType("TEXT");
+
+ b.Property("Pec")
+ .HasColumnType("TEXT");
+
+ b.Property("Provincia")
+ .HasColumnType("TEXT");
+
+ b.Property("RagioneSociale")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("Telefono")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PartitaIva");
+
+ b.HasIndex("RagioneSociale");
+
+ b.ToTable("Clienti");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.CodiceCategoria", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Attivo")
+ .HasColumnType("INTEGER");
+
+ b.Property("Codice")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("CoeffA")
+ .HasColumnType("TEXT");
+
+ b.Property("CoeffB")
+ .HasColumnType("TEXT");
+
+ b.Property("CoeffS")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("Descrizione")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.ToTable("CodiciCategoria");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.Configurazione", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Chiave")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("Descrizione")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("Valore")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Chiave")
+ .IsUnique();
+
+ b.ToTable("Configurazioni");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.CustomFieldDefinition", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("DefaultValue")
+ .HasColumnType("TEXT");
+
+ b.Property("Description")
+ .HasColumnType("TEXT");
+
+ b.Property("EntityName")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("FieldName")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("IsActive")
+ .HasColumnType("INTEGER");
+
+ b.Property("IsRequired")
+ .HasColumnType("INTEGER");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("OptionsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("Placeholder")
+ .HasColumnType("TEXT");
+
+ b.Property("SortOrder")
+ .HasColumnType("INTEGER");
+
+ b.Property("Type")
+ .HasColumnType("INTEGER");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("ValidationRegex")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EntityName");
+
+ b.HasIndex("EntityName", "FieldName")
+ .IsUnique();
+
+ b.ToTable("CustomFieldDefinitions");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.Evento", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ClienteId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Codice")
+ .HasColumnType("TEXT");
+
+ b.Property("Confermato")
+ .HasColumnType("INTEGER");
+
+ b.Property("CostoPersona")
+ .HasColumnType("TEXT");
+
+ b.Property("CostoTotale")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("DataEvento")
+ .HasColumnType("TEXT");
+
+ b.Property("DataScadenzaPreventivo")
+ .HasColumnType("TEXT");
+
+ b.Property("Descrizione")
+ .HasColumnType("TEXT");
+
+ b.Property("LocationId")
+ .HasColumnType("INTEGER");
+
+ b.Property("NoteAllestimento")
+ .HasColumnType("TEXT");
+
+ b.Property("NoteCliente")
+ .HasColumnType("TEXT");
+
+ b.Property("NoteCucina")
+ .HasColumnType("TEXT");
+
+ b.Property("NoteInterne")
+ .HasColumnType("TEXT");
+
+ b.Property("NumeroOspiti")
+ .HasColumnType("INTEGER");
+
+ b.Property("NumeroOspitiAdulti")
+ .HasColumnType("INTEGER");
+
+ b.Property("NumeroOspitiBambini")
+ .HasColumnType("INTEGER");
+
+ b.Property("NumeroOspitiBuffet")
+ .HasColumnType("INTEGER");
+
+ b.Property("NumeroOspitiSeduti")
+ .HasColumnType("INTEGER");
+
+ b.Property("OraFine")
+ .HasColumnType("TEXT");
+
+ b.Property("OraInizio")
+ .HasColumnType("TEXT");
+
+ b.Property("Saldo")
+ .HasColumnType("TEXT");
+
+ b.Property("Stato")
+ .HasColumnType("INTEGER");
+
+ b.Property("TipoEventoId")
+ .HasColumnType("INTEGER");
+
+ b.Property("TotaleAcconti")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClienteId");
+
+ b.HasIndex("Codice");
+
+ b.HasIndex("DataEvento");
+
+ b.HasIndex("LocationId");
+
+ b.HasIndex("Stato");
+
+ b.HasIndex("TipoEventoId");
+
+ b.ToTable("Eventi");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.EventoAcconto", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("AConferma")
+ .HasColumnType("INTEGER");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("DataPagamento")
+ .HasColumnType("TEXT");
+
+ b.Property("Descrizione")
+ .HasColumnType("TEXT");
+
+ b.Property("EventoId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Importo")
+ .HasColumnType("TEXT");
+
+ b.Property("MetodoPagamento")
+ .HasColumnType("TEXT");
+
+ b.Property("Note")
+ .HasColumnType("TEXT");
+
+ b.Property("Ordine")
+ .HasColumnType("INTEGER");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EventoId");
+
+ b.ToTable("EventiAcconti");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.EventoAllegato", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Contenuto")
+ .HasColumnType("BLOB");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("EventoId")
+ .HasColumnType("INTEGER");
+
+ b.Property("MimeType")
+ .HasColumnType("TEXT");
+
+ b.Property("NomeFile")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("Note")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EventoId");
+
+ b.ToTable("EventiAllegati");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.EventoAltroCosto", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("AliquotaIva")
+ .HasColumnType("TEXT");
+
+ b.Property("ApplicaIva")
+ .HasColumnType("INTEGER");
+
+ b.Property("CostoUnitario")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("Descrizione")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("EventoId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Ordine")
+ .HasColumnType("INTEGER");
+
+ b.Property("Quantita")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EventoId");
+
+ b.ToTable("EventiAltriCosti");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.EventoDegustazione", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Completata")
+ .HasColumnType("INTEGER");
+
+ b.Property("CostoDegustazione")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("DataDegustazione")
+ .HasColumnType("TEXT");
+
+ b.Property("Detraibile")
+ .HasColumnType("INTEGER");
+
+ b.Property("EventoId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Luogo")
+ .HasColumnType("TEXT");
+
+ b.Property("Menu")
+ .HasColumnType("TEXT");
+
+ b.Property("Note")
+ .HasColumnType("TEXT");
+
+ b.Property("NumeroPaganti")
+ .HasColumnType("INTEGER");
+
+ b.Property("NumeroPersone")
+ .HasColumnType("INTEGER");
+
+ b.Property("Ora")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EventoId");
+
+ b.ToTable("EventiDegustazioni");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.EventoDettaglioOspiti", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("CostoUnitario")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("EventoId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Note")
+ .HasColumnType("TEXT");
+
+ b.Property("Numero")
+ .HasColumnType("INTEGER");
+
+ b.Property("Ordine")
+ .HasColumnType("INTEGER");
+
+ b.Property("Sconto")
+ .HasColumnType("TEXT");
+
+ b.Property("TipoOspiteId")
+ .HasColumnType("INTEGER");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("EventoId");
+
+ b.HasIndex("TipoOspiteId");
+
+ b.ToTable("EventiDettaglioOspiti");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.EventoDettaglioPrelievo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("ArticoloId")
+ .HasColumnType("INTEGER");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("EventoId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Note")
+ .HasColumnType("TEXT");
+
+ b.Property("QtaCalcolata")
+ .HasColumnType("TEXT");
+
+ b.Property("QtaEffettiva")
+ .HasColumnType("TEXT");
+
+ b.Property("QtaRichiesta")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedBy")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ArticoloId");
+
+ b.HasIndex("EventoId");
+
+ b.ToTable("EventiDettaglioPrelievo");
+ });
+
+ modelBuilder.Entity("Zentral.Domain.Entities.EventoDettaglioRisorsa", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Costo")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedAt")
+ .HasColumnType("TEXT");
+
+ b.Property("CreatedBy")
+ .HasColumnType("TEXT");
+
+ b.Property("CustomFieldsJson")
+ .HasColumnType("TEXT");
+
+ b.Property("EventoId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Note")
+ .HasColumnType("TEXT");
+
+ b.Property("OraFine")
+ .HasColumnType("TEXT");
+
+ b.Property("OraInizio")
+ .HasColumnType("TEXT");
+
+ b.Property("OreLavoro")
+ .HasColumnType("TEXT");
+
+ b.Property("RisorsaId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Ruolo")
+ .HasColumnType("TEXT");
+
+ b.Property