// using System; using CutList.Web.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; #nullable disable namespace CutList.Web.Migrations { [DbContext(typeof(ApplicationDbContext))] partial class ApplicationDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "8.0.11") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("CutList.Web.Data.Entities.CuttingTool", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("IsActive") .HasColumnType("bit"); b.Property("IsDefault") .HasColumnType("bit"); b.Property("KerfInches") .HasPrecision(6, 4) .HasColumnType("decimal(6,4)"); b.Property("Name") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.ToTable("CuttingTools"); b.HasData( new { Id = 1, IsActive = true, IsDefault = true, KerfInches = 0.0625m, Name = "Bandsaw" }, new { Id = 2, IsActive = true, IsDefault = false, KerfInches = 0.125m, Name = "Chop Saw" }, new { Id = 3, IsActive = true, IsDefault = false, KerfInches = 0.0625m, Name = "Cold Cut Saw" }, new { Id = 4, IsActive = true, IsDefault = false, KerfInches = 0.0625m, Name = "Hacksaw" }); }); modelBuilder.Entity("CutList.Web.Data.Entities.Material", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("Description") .HasMaxLength(255) .HasColumnType("nvarchar(255)"); b.Property("IsActive") .HasColumnType("bit"); b.Property("Shape") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("Size") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.HasKey("Id"); b.ToTable("Materials"); }); modelBuilder.Entity("CutList.Web.Data.Entities.MaterialStockLength", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("IsActive") .HasColumnType("bit"); b.Property("LengthInches") .HasPrecision(10, 4) .HasColumnType("decimal(10,4)"); b.Property("MaterialId") .HasColumnType("int"); b.Property("Notes") .HasMaxLength(255) .HasColumnType("nvarchar(255)"); b.Property("Quantity") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("MaterialId", "LengthInches") .IsUnique(); b.ToTable("MaterialStockLengths"); }); modelBuilder.Entity("CutList.Web.Data.Entities.Project", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("Customer") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("CuttingToolId") .HasColumnType("int"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("Notes") .HasColumnType("nvarchar(max)"); b.Property("UpdatedAt") .HasColumnType("datetime2"); b.HasKey("Id"); b.HasIndex("CuttingToolId"); b.ToTable("Projects"); }); modelBuilder.Entity("CutList.Web.Data.Entities.ProjectPart", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("LengthInches") .HasPrecision(10, 4) .HasColumnType("decimal(10,4)"); b.Property("MaterialId") .HasColumnType("int"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("ProjectId") .HasColumnType("int"); b.Property("Quantity") .HasColumnType("int"); b.Property("SortOrder") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("MaterialId"); b.HasIndex("ProjectId"); b.ToTable("ProjectParts"); }); modelBuilder.Entity("CutList.Web.Data.Entities.Supplier", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ContactInfo") .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("IsActive") .HasColumnType("bit"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("Notes") .HasColumnType("nvarchar(max)"); b.HasKey("Id"); b.ToTable("Suppliers"); }); modelBuilder.Entity("CutList.Web.Data.Entities.SupplierStock", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("IsActive") .HasColumnType("bit"); b.Property("LengthInches") .HasPrecision(10, 4) .HasColumnType("decimal(10,4)"); b.Property("MaterialId") .HasColumnType("int"); b.Property("Notes") .HasMaxLength(255) .HasColumnType("nvarchar(255)"); b.Property("Price") .HasPrecision(10, 2) .HasColumnType("decimal(10,2)"); b.Property("SupplierId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("MaterialId"); b.HasIndex("SupplierId", "MaterialId", "LengthInches") .IsUnique(); b.ToTable("SupplierStocks"); }); modelBuilder.Entity("CutList.Web.Data.Entities.MaterialStockLength", b => { b.HasOne("CutList.Web.Data.Entities.Material", "Material") .WithMany("StockLengths") .HasForeignKey("MaterialId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Material"); }); modelBuilder.Entity("CutList.Web.Data.Entities.Project", b => { b.HasOne("CutList.Web.Data.Entities.CuttingTool", "CuttingTool") .WithMany("Projects") .HasForeignKey("CuttingToolId") .OnDelete(DeleteBehavior.SetNull); b.Navigation("CuttingTool"); }); modelBuilder.Entity("CutList.Web.Data.Entities.ProjectPart", b => { b.HasOne("CutList.Web.Data.Entities.Material", "Material") .WithMany("ProjectParts") .HasForeignKey("MaterialId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("CutList.Web.Data.Entities.Project", "Project") .WithMany("Parts") .HasForeignKey("ProjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Material"); b.Navigation("Project"); }); modelBuilder.Entity("CutList.Web.Data.Entities.SupplierStock", b => { b.HasOne("CutList.Web.Data.Entities.Material", "Material") .WithMany("SupplierStocks") .HasForeignKey("MaterialId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("CutList.Web.Data.Entities.Supplier", "Supplier") .WithMany("Stocks") .HasForeignKey("SupplierId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Material"); b.Navigation("Supplier"); }); modelBuilder.Entity("CutList.Web.Data.Entities.CuttingTool", b => { b.Navigation("Projects"); }); modelBuilder.Entity("CutList.Web.Data.Entities.Material", b => { b.Navigation("ProjectParts"); b.Navigation("StockLengths"); b.Navigation("SupplierStocks"); }); modelBuilder.Entity("CutList.Web.Data.Entities.Project", b => { b.Navigation("Parts"); }); modelBuilder.Entity("CutList.Web.Data.Entities.Supplier", b => { b.Navigation("Stocks"); }); #pragma warning restore 612, 618 } } }