From f40cb917735075b27acc2077f0ce9cd866bbc7b2 Mon Sep 17 00:00:00 2001 From: Gianmarco Date: Fri, 30 Jan 2026 17:09:02 +0100 Subject: [PATCH] Anagrafiche --- TecniStamp/TecniStamp.Domain/Cliente.cs | 25 + TecniStamp/TecniStamp.Domain/Commessa.cs | 27 + TecniStamp/TecniStamp.Domain/ComuneIstat.cs | 18 + .../TecniStamp.Domain/ProvinciaIstat.cs | 9 + .../DAL/Context/TecniStampDbContext.cs | 4 + ...20260130155527_CommessaCliente.Designer.cs | 838 ++++++++++++++++++ .../20260130155527_CommessaCliente.cs | 237 +++++ .../TecniStampDbContextModelSnapshot.cs | 323 +++++++ 8 files changed, 1481 insertions(+) create mode 100644 TecniStamp/TecniStamp.Domain/Cliente.cs create mode 100644 TecniStamp/TecniStamp.Domain/Commessa.cs create mode 100644 TecniStamp/TecniStamp.Domain/ComuneIstat.cs create mode 100644 TecniStamp/TecniStamp.Domain/ProvinciaIstat.cs create mode 100644 TecniStamp/TecniStamp.Infrastructure/Migrations/20260130155527_CommessaCliente.Designer.cs create mode 100644 TecniStamp/TecniStamp.Infrastructure/Migrations/20260130155527_CommessaCliente.cs diff --git a/TecniStamp/TecniStamp.Domain/Cliente.cs b/TecniStamp/TecniStamp.Domain/Cliente.cs new file mode 100644 index 0000000..9fcad04 --- /dev/null +++ b/TecniStamp/TecniStamp.Domain/Cliente.cs @@ -0,0 +1,25 @@ +using System.ComponentModel.DataAnnotations.Schema; +using TecniStamp.Domain.Base; + +namespace TecniStamp.Domain; + +public class Cliente : EntitaBase +{ + public string RagioneSociale { get; set; } + public string PartitaIva { get; set; } + public string Paese { get; set; } + public string Telefono { get; set; } + public string Email { get; set; } + public string Indirizzo { get; set; } + public string CAP { get; set; } + public string Citta { get; set; } + public string NumeroCivico { get; set; } + public string Via { get; set; } + public string Provincia { get; set; } + public string Note { get; set; } + + [ForeignKey(nameof(Comune))] + public Guid? ComuneId { get; set; } + public ComuneIstat Comune { get; set; } + +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Domain/Commessa.cs b/TecniStamp/TecniStamp.Domain/Commessa.cs new file mode 100644 index 0000000..069a694 --- /dev/null +++ b/TecniStamp/TecniStamp.Domain/Commessa.cs @@ -0,0 +1,27 @@ +using System.ComponentModel.DataAnnotations.Schema; +using TecniStamp.Domain.Base; + +namespace TecniStamp.Domain; + +public class Commessa : EntitaBase +{ + public string CodiceCommessa { get; set; } + public int AnnoCommessa { get; set; } + [ForeignKey(nameof(Cliente))] + public Guid? ClienteId { get; set; } + public Cliente Cliente { get; set; } + public string RiferimentoCliente { get; set; } + public string OrdineNr { get; set; } + public decimal? OreTotali { get; set; } + public DateTime DataOrdine { get; set; } + public DateTime DataConsegnaPrevista { get; set; } + public DateTime DataConsegna { get; set; } + public CommessaStato Stato { get; set; } +} + +public enum CommessaStato +{ + NonAvviata = 0, + InLavorazione, + Completata +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Domain/ComuneIstat.cs b/TecniStamp/TecniStamp.Domain/ComuneIstat.cs new file mode 100644 index 0000000..e94cb15 --- /dev/null +++ b/TecniStamp/TecniStamp.Domain/ComuneIstat.cs @@ -0,0 +1,18 @@ +using System.ComponentModel.DataAnnotations.Schema; +using TecniStamp.Domain.Base; + +namespace TecniStamp.Domain; + +public class ComuneIstat : EntitaBase +{ + public string Istat { get; set; } + public string Comune { get; set; } + public string Regione { get; set; } + public string Provincia { get; set; } + public string Prefisso { get; set; } + public string CodFisco { get; set; } + + [ForeignKey(nameof(ProvinciaIstat))] + public Guid? ProvinciaIstatId { get; set; } + public ProvinciaIstat ProvinciaIstat { get; set; } +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Domain/ProvinciaIstat.cs b/TecniStamp/TecniStamp.Domain/ProvinciaIstat.cs new file mode 100644 index 0000000..45e80ef --- /dev/null +++ b/TecniStamp/TecniStamp.Domain/ProvinciaIstat.cs @@ -0,0 +1,9 @@ +using TecniStamp.Domain.Base; + +namespace TecniStamp.Domain; + +public class ProvinciaIstat : EntitaBase +{ + public string Sigla { get; set; } + public string Provincia { get; set; } +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Infrastructure/DAL/Context/TecniStampDbContext.cs b/TecniStamp/TecniStamp.Infrastructure/DAL/Context/TecniStampDbContext.cs index 4b1e918..9a782b7 100644 --- a/TecniStamp/TecniStamp.Infrastructure/DAL/Context/TecniStampDbContext.cs +++ b/TecniStamp/TecniStamp.Infrastructure/DAL/Context/TecniStampDbContext.cs @@ -9,10 +9,14 @@ public class TecniStampDbContext : OAServiceContext public TecniStampDbContext() : base() { } public TecniStampDbContext(DbContextOptions options) : base(options) { } + public DbSet Cliente { get; set; } + public DbSet Commessa { get; set; } + public DbSet ComuneIstat { get; set; } public DbSet Feature { get; set; } public DbSet Lavorazione { get; set; } public DbSet Macchinario { get; set; } public DbSet Permission { get; set; } + public DbSet ProvinciaIstat { get; set; } public DbSet Ruolo { get; set; } public DbSet Sezione { get; set; } public DbSet Utente { get; set; } diff --git a/TecniStamp/TecniStamp.Infrastructure/Migrations/20260130155527_CommessaCliente.Designer.cs b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260130155527_CommessaCliente.Designer.cs new file mode 100644 index 0000000..6d37ad5 --- /dev/null +++ b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260130155527_CommessaCliente.Designer.cs @@ -0,0 +1,838 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using TecniStamp.Infrastructure.DAL.Context; + +#nullable disable + +namespace TecniStamp.Infrastructure.Migrations +{ + [DbContext(typeof(TecniStampDbContext))] + [Migration("20260130155527_CommessaCliente")] + partial class CommessaCliente + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "9.0.11") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("TecniStamp.Domain.Cliente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CAP") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Citta") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ComuneId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Indirizzo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroCivico") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Paese") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PartitaIva") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Telefono") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Via") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ComuneId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Cliente"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Commessa", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AnnoCommessa") + .HasColumnType("int"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceCommessa") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataConsegna") + .HasColumnType("datetime2"); + + b.Property("DataConsegnaPrevista") + .HasColumnType("datetime2"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DataOrdine") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("OrdineNr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OreTotali") + .HasColumnType("decimal(18,2)"); + + b.Property("RiferimentoCliente") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Stato") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ClienteId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Commessa"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ComuneIstat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CodFisco") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Comune") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Istat") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Prefisso") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProvinciaIstatId") + .HasColumnType("uniqueidentifier"); + + b.Property("Regione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("ProvinciaIstatId"); + + b.ToTable("ComuneIstat"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Feature", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Descrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Ordinamento") + .HasColumnType("int"); + + b.Property("SezioneId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("SezioneId"); + + b.ToTable("Feature"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Lavorazione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ChiaveEsterna") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Codice") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CodiceColore") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CostoOrario") + .HasColumnType("real"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Descrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Sovrapponibile") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Lavorazione"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Macchinario", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceEsterno") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ConfigurazioneJSON") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ConfigurazionePercorso") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Descrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Interscambio") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Macchinario"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdFeature") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("RuoloId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("IdFeature"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("RuoloId"); + + b.ToTable("Permission"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ProvinciaIstat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Sigla") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("ProvinciaIstat"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Ruolo"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Sezione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Blank") + .HasColumnType("bit"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Icona") + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Ordinamento") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Url") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("ParentId"); + + b.ToTable("Sezione"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Utente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Costo") + .HasColumnType("decimal(18,2)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RuoloId") + .HasColumnType("uniqueidentifier"); + + b.Property("Username") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("RuoloId"); + + b.ToTable("Utente"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Cliente", b => + { + b.HasOne("TecniStamp.Domain.ComuneIstat", "Comune") + .WithMany() + .HasForeignKey("ComuneId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Comune"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Commessa", b => + { + b.HasOne("TecniStamp.Domain.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Cliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ComuneIstat", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.ProvinciaIstat", "ProvinciaIstat") + .WithMany() + .HasForeignKey("ProvinciaIstatId"); + + b.Navigation("ProvinciaIstat"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Feature", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Sezione", "Sezione") + .WithMany("Features") + .HasForeignKey("SezioneId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Sezione"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Lavorazione", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Macchinario", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Permission", b => + { + b.HasOne("TecniStamp.Domain.Feature", "Feature") + .WithMany() + .HasForeignKey("IdFeature") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Ruolo", "Ruolo") + .WithMany("Permessi") + .HasForeignKey("RuoloId"); + + b.Navigation("Feature"); + + b.Navigation("Ruolo"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ProvinciaIstat", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Sezione", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Sezione", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("Parent"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Utente", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Ruolo", "Ruolo") + .WithMany("Utenti") + .HasForeignKey("RuoloId"); + + b.Navigation("Ruolo"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => + { + b.Navigation("Permessi"); + + b.Navigation("Utenti"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Sezione", b => + { + b.Navigation("Features"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/TecniStamp/TecniStamp.Infrastructure/Migrations/20260130155527_CommessaCliente.cs b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260130155527_CommessaCliente.cs new file mode 100644 index 0000000..4c08ccb --- /dev/null +++ b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260130155527_CommessaCliente.cs @@ -0,0 +1,237 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace TecniStamp.Infrastructure.Migrations +{ + /// + public partial class CommessaCliente : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "ProvinciaIstat", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Sigla = table.Column(type: "nvarchar(max)", nullable: false), + Provincia = table.Column(type: "nvarchar(max)", nullable: false), + DataCreazione = table.Column(type: "datetime2", nullable: false), + DataModifica = table.Column(type: "datetime2", nullable: true), + Eliminato = table.Column(type: "bit", nullable: false), + IdUtenteCreazione = table.Column(type: "uniqueidentifier", nullable: true), + IdUtenteModifica = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_ProvinciaIstat", x => x.Id); + table.ForeignKey( + name: "FK_ProvinciaIstat_Utente_IdUtenteCreazione", + column: x => x.IdUtenteCreazione, + principalTable: "Utente", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_ProvinciaIstat_Utente_IdUtenteModifica", + column: x => x.IdUtenteModifica, + principalTable: "Utente", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "ComuneIstat", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Istat = table.Column(type: "nvarchar(max)", nullable: false), + Comune = table.Column(type: "nvarchar(max)", nullable: false), + Regione = table.Column(type: "nvarchar(max)", nullable: false), + Provincia = table.Column(type: "nvarchar(max)", nullable: false), + Prefisso = table.Column(type: "nvarchar(max)", nullable: false), + CodFisco = table.Column(type: "nvarchar(max)", nullable: false), + ProvinciaIstatId = table.Column(type: "uniqueidentifier", nullable: true), + DataCreazione = table.Column(type: "datetime2", nullable: false), + DataModifica = table.Column(type: "datetime2", nullable: true), + Eliminato = table.Column(type: "bit", nullable: false), + IdUtenteCreazione = table.Column(type: "uniqueidentifier", nullable: true), + IdUtenteModifica = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_ComuneIstat", x => x.Id); + table.ForeignKey( + name: "FK_ComuneIstat_ProvinciaIstat_ProvinciaIstatId", + column: x => x.ProvinciaIstatId, + principalTable: "ProvinciaIstat", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_ComuneIstat_Utente_IdUtenteCreazione", + column: x => x.IdUtenteCreazione, + principalTable: "Utente", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_ComuneIstat_Utente_IdUtenteModifica", + column: x => x.IdUtenteModifica, + principalTable: "Utente", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "Cliente", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + RagioneSociale = table.Column(type: "nvarchar(max)", nullable: false), + PartitaIva = table.Column(type: "nvarchar(max)", nullable: false), + Paese = table.Column(type: "nvarchar(max)", nullable: false), + Telefono = table.Column(type: "nvarchar(max)", nullable: false), + Email = table.Column(type: "nvarchar(max)", nullable: false), + Indirizzo = table.Column(type: "nvarchar(max)", nullable: false), + CAP = table.Column(type: "nvarchar(max)", nullable: false), + Citta = table.Column(type: "nvarchar(max)", nullable: false), + NumeroCivico = table.Column(type: "nvarchar(max)", nullable: false), + Via = table.Column(type: "nvarchar(max)", nullable: false), + Provincia = table.Column(type: "nvarchar(max)", nullable: false), + Note = table.Column(type: "nvarchar(max)", nullable: false), + ComuneId = table.Column(type: "uniqueidentifier", nullable: true), + DataCreazione = table.Column(type: "datetime2", nullable: false), + DataModifica = table.Column(type: "datetime2", nullable: true), + Eliminato = table.Column(type: "bit", nullable: false), + IdUtenteCreazione = table.Column(type: "uniqueidentifier", nullable: true), + IdUtenteModifica = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Cliente", x => x.Id); + table.ForeignKey( + name: "FK_Cliente_ComuneIstat_ComuneId", + column: x => x.ComuneId, + principalTable: "ComuneIstat", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Cliente_Utente_IdUtenteCreazione", + column: x => x.IdUtenteCreazione, + principalTable: "Utente", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Cliente_Utente_IdUtenteModifica", + column: x => x.IdUtenteModifica, + principalTable: "Utente", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "Commessa", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + CodiceCommessa = table.Column(type: "nvarchar(max)", nullable: false), + AnnoCommessa = table.Column(type: "int", nullable: false), + ClienteId = table.Column(type: "uniqueidentifier", nullable: true), + RiferimentoCliente = table.Column(type: "nvarchar(max)", nullable: false), + OrdineNr = table.Column(type: "nvarchar(max)", nullable: false), + OreTotali = table.Column(type: "decimal(18,2)", nullable: true), + DataOrdine = table.Column(type: "datetime2", nullable: false), + DataConsegnaPrevista = table.Column(type: "datetime2", nullable: false), + DataConsegna = table.Column(type: "datetime2", nullable: false), + Stato = table.Column(type: "int", nullable: false), + DataCreazione = table.Column(type: "datetime2", nullable: false), + DataModifica = table.Column(type: "datetime2", nullable: true), + Eliminato = table.Column(type: "bit", nullable: false), + IdUtenteCreazione = table.Column(type: "uniqueidentifier", nullable: true), + IdUtenteModifica = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Commessa", x => x.Id); + table.ForeignKey( + name: "FK_Commessa_Cliente_ClienteId", + column: x => x.ClienteId, + principalTable: "Cliente", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Commessa_Utente_IdUtenteCreazione", + column: x => x.IdUtenteCreazione, + principalTable: "Utente", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Commessa_Utente_IdUtenteModifica", + column: x => x.IdUtenteModifica, + principalTable: "Utente", + principalColumn: "Id"); + }); + + migrationBuilder.CreateIndex( + name: "IX_Cliente_ComuneId", + table: "Cliente", + column: "ComuneId"); + + migrationBuilder.CreateIndex( + name: "IX_Cliente_IdUtenteCreazione", + table: "Cliente", + column: "IdUtenteCreazione"); + + migrationBuilder.CreateIndex( + name: "IX_Cliente_IdUtenteModifica", + table: "Cliente", + column: "IdUtenteModifica"); + + migrationBuilder.CreateIndex( + name: "IX_Commessa_ClienteId", + table: "Commessa", + column: "ClienteId"); + + migrationBuilder.CreateIndex( + name: "IX_Commessa_IdUtenteCreazione", + table: "Commessa", + column: "IdUtenteCreazione"); + + migrationBuilder.CreateIndex( + name: "IX_Commessa_IdUtenteModifica", + table: "Commessa", + column: "IdUtenteModifica"); + + migrationBuilder.CreateIndex( + name: "IX_ComuneIstat_IdUtenteCreazione", + table: "ComuneIstat", + column: "IdUtenteCreazione"); + + migrationBuilder.CreateIndex( + name: "IX_ComuneIstat_IdUtenteModifica", + table: "ComuneIstat", + column: "IdUtenteModifica"); + + migrationBuilder.CreateIndex( + name: "IX_ComuneIstat_ProvinciaIstatId", + table: "ComuneIstat", + column: "ProvinciaIstatId"); + + migrationBuilder.CreateIndex( + name: "IX_ProvinciaIstat_IdUtenteCreazione", + table: "ProvinciaIstat", + column: "IdUtenteCreazione"); + + migrationBuilder.CreateIndex( + name: "IX_ProvinciaIstat_IdUtenteModifica", + table: "ProvinciaIstat", + column: "IdUtenteModifica"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Commessa"); + + migrationBuilder.DropTable( + name: "Cliente"); + + migrationBuilder.DropTable( + name: "ComuneIstat"); + + migrationBuilder.DropTable( + name: "ProvinciaIstat"); + } + } +} diff --git a/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs b/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs index 3ab3fc2..af35120 100644 --- a/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs +++ b/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs @@ -22,6 +22,213 @@ namespace TecniStamp.Infrastructure.Migrations SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + modelBuilder.Entity("TecniStamp.Domain.Cliente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CAP") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Citta") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ComuneId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Indirizzo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroCivico") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Paese") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PartitaIva") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Telefono") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Via") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ComuneId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Cliente"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Commessa", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AnnoCommessa") + .HasColumnType("int"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceCommessa") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataConsegna") + .HasColumnType("datetime2"); + + b.Property("DataConsegnaPrevista") + .HasColumnType("datetime2"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DataOrdine") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("OrdineNr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OreTotali") + .HasColumnType("decimal(18,2)"); + + b.Property("RiferimentoCliente") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Stato") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ClienteId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Commessa"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ComuneIstat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CodFisco") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Comune") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Istat") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Prefisso") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProvinciaIstatId") + .HasColumnType("uniqueidentifier"); + + b.Property("Regione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("ProvinciaIstatId"); + + b.ToTable("ComuneIstat"); + }); + modelBuilder.Entity("TecniStamp.Domain.Feature", b => { b.Property("Id") @@ -212,6 +419,44 @@ namespace TecniStamp.Infrastructure.Migrations b.ToTable("Permission"); }); + modelBuilder.Entity("TecniStamp.Domain.ProvinciaIstat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Sigla") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("ProvinciaIstat"); + }); + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => { b.Property("Id") @@ -356,6 +601,69 @@ namespace TecniStamp.Infrastructure.Migrations b.ToTable("Utente"); }); + modelBuilder.Entity("TecniStamp.Domain.Cliente", b => + { + b.HasOne("TecniStamp.Domain.ComuneIstat", "Comune") + .WithMany() + .HasForeignKey("ComuneId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Comune"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Commessa", b => + { + b.HasOne("TecniStamp.Domain.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Cliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ComuneIstat", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.ProvinciaIstat", "ProvinciaIstat") + .WithMany() + .HasForeignKey("ProvinciaIstatId"); + + b.Navigation("ProvinciaIstat"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + modelBuilder.Entity("TecniStamp.Domain.Feature", b => { b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") @@ -438,6 +746,21 @@ namespace TecniStamp.Infrastructure.Migrations b.Navigation("UtenteModifica"); }); + modelBuilder.Entity("TecniStamp.Domain.ProvinciaIstat", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => { b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione")