// using System; using Extrudex.Infrastructure.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace Extrudex.Infrastructure.Data.Migrations { [DbContext(typeof(ExtrudexDbContext))] [Migration("20260426183433_AddFilamentUsageTrackingModel")] partial class AddFilamentUsageTrackingModel { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "9.0.3") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("Extrudex.Domain.Entities.AmsSlot", b => { b.Property("Id") .HasColumnType("uuid") .HasColumnName("id"); b.Property("AmsUnitId") .HasColumnType("uuid") .HasColumnName("ams_unit_id"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("created_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("RemainingWeightG") .HasPrecision(10, 2) .HasColumnType("numeric(10,2)") .HasColumnName("remaining_weight_g"); b.Property("SpoolId") .HasColumnType("uuid") .HasColumnName("spool_id"); b.Property("TrayIndex") .HasColumnType("integer") .HasColumnName("tray_index"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("updated_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.HasKey("Id"); b.HasIndex("SpoolId") .HasDatabaseName("ix_ams_slots_spool_id"); b.HasIndex("AmsUnitId", "TrayIndex") .IsUnique() .HasDatabaseName("ix_ams_slots_ams_unit_id_tray_index"); b.ToTable("ams_slots", (string)null); }); modelBuilder.Entity("Extrudex.Domain.Entities.AmsUnit", b => { b.Property("Id") .HasColumnType("uuid") .HasColumnName("id"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("created_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("PrinterId") .HasColumnType("uuid") .HasColumnName("printer_id"); b.Property("UnitIndex") .HasColumnType("integer") .HasColumnName("unit_index"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("updated_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.HasKey("Id"); b.HasIndex("PrinterId", "UnitIndex") .IsUnique() .HasDatabaseName("ix_ams_units_printer_id_unit_index"); b.ToTable("ams_units", (string)null); }); modelBuilder.Entity("Extrudex.Domain.Entities.FilamentUsage", b => { b.Property("Id") .HasColumnType("uuid") .HasColumnName("id"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("created_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("GramsUsed") .HasPrecision(10, 2) .HasColumnType("numeric(10,2)") .HasColumnName("grams_used"); b.Property("MmExtruded") .HasPrecision(12, 2) .HasColumnType("numeric(12,2)") .HasColumnName("mm_extruded"); b.Property("Notes") .HasMaxLength(2000) .HasColumnType("character varying(2000)") .HasColumnName("notes"); b.Property("PrintJobId") .HasColumnType("uuid") .HasColumnName("print_job_id"); b.Property("PrinterId") .HasColumnType("uuid") .HasColumnName("printer_id"); b.Property("RecordedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("recorded_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("SpoolId") .HasColumnType("uuid") .HasColumnName("spool_id"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("updated_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.HasKey("Id"); b.HasIndex("PrintJobId") .HasDatabaseName("ix_filament_usages_print_job_id"); b.HasIndex("PrinterId") .HasDatabaseName("ix_filament_usages_printer_id"); b.HasIndex("RecordedAt") .HasDatabaseName("ix_filament_usages_recorded_at"); b.HasIndex("SpoolId") .HasDatabaseName("ix_filament_usages_spool_id"); b.HasIndex("SpoolId", "RecordedAt") .HasDatabaseName("ix_filament_usages_spool_id_recorded_at"); b.ToTable("filament_usages", (string)null); }); modelBuilder.Entity("Extrudex.Domain.Entities.MaterialBase", b => { b.Property("Id") .HasColumnType("uuid") .HasColumnName("id"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("created_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("DensityGperCm3") .HasPrecision(10, 4) .HasColumnType("numeric(10,4)") .HasColumnName("density_g_per_cm3"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("name"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("updated_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("ix_material_bases_name"); b.ToTable("material_bases", (string)null); b.HasData( new { Id = new Guid("10000000-0000-0000-0000-000000000001"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9388), DensityGperCm3 = 1.24m, Name = "PLA", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9388) }, new { Id = new Guid("10000000-0000-0000-0000-000000000002"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9871), DensityGperCm3 = 1.27m, Name = "PETG", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9871) }, new { Id = new Guid("10000000-0000-0000-0000-000000000003"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9881), DensityGperCm3 = 1.04m, Name = "ABS", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9881) }, new { Id = new Guid("10000000-0000-0000-0000-000000000004"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9888), DensityGperCm3 = 1.07m, Name = "ASA", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9888) }, new { Id = new Guid("10000000-0000-0000-0000-000000000005"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9895), DensityGperCm3 = 1.21m, Name = "TPU", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9895) }, new { Id = new Guid("10000000-0000-0000-0000-000000000006"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9901), DensityGperCm3 = 1.14m, Name = "Nylon", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 291, DateTimeKind.Utc).AddTicks(9902) }); }); modelBuilder.Entity("Extrudex.Domain.Entities.MaterialFinish", b => { b.Property("Id") .HasColumnType("uuid") .HasColumnName("id"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("created_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("MaterialBaseId") .HasColumnType("uuid") .HasColumnName("material_base_id"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("name"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("updated_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.HasKey("Id"); b.HasIndex("MaterialBaseId", "Name") .IsUnique() .HasDatabaseName("ix_material_finishes_material_base_id_name"); b.ToTable("material_finishes", (string)null); b.HasData( new { Id = new Guid("20000000-0000-0000-0000-000000000001"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(90), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000001"), Name = "Basic", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(90) }, new { Id = new Guid("20000000-0000-0000-0000-000000000002"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(251), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000001"), Name = "Matte", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(251) }, new { Id = new Guid("20000000-0000-0000-0000-000000000003"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(259), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000001"), Name = "Silk", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(259) }, new { Id = new Guid("20000000-0000-0000-0000-000000000004"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(266), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000001"), Name = "Glitter", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(266) }, new { Id = new Guid("20000000-0000-0000-0000-000000000005"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(272), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000001"), Name = "Marble", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(272) }, new { Id = new Guid("20000000-0000-0000-0000-000000000006"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(278), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000001"), Name = "Sparkle", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(278) }, new { Id = new Guid("20000000-0000-0000-0000-000000000007"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(285), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000002"), Name = "Basic", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(285) }, new { Id = new Guid("20000000-0000-0000-0000-000000000008"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(291), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000002"), Name = "Matte", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(291) }, new { Id = new Guid("20000000-0000-0000-0000-000000000009"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(297), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000002"), Name = "Silk", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(298) }, new { Id = new Guid("20000000-0000-0000-0000-000000000010"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(304), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000003"), Name = "Basic", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(304) }, new { Id = new Guid("20000000-0000-0000-0000-000000000011"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(310), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000003"), Name = "Matte", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(310) }, new { Id = new Guid("20000000-0000-0000-0000-000000000012"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(316), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000004"), Name = "Basic", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(317) }, new { Id = new Guid("20000000-0000-0000-0000-000000000013"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(323), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000004"), Name = "Matte", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(323) }, new { Id = new Guid("20000000-0000-0000-0000-000000000014"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(329), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000005"), Name = "Basic", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(329) }, new { Id = new Guid("20000000-0000-0000-0000-000000000015"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(336), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000006"), Name = "Basic", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(336) }); }); modelBuilder.Entity("Extrudex.Domain.Entities.MaterialModifier", b => { b.Property("Id") .HasColumnType("uuid") .HasColumnName("id"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("created_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("MaterialBaseId") .HasColumnType("uuid") .HasColumnName("material_base_id"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("name"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("updated_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.HasKey("Id"); b.HasIndex("MaterialBaseId", "Name") .IsUnique() .HasDatabaseName("ix_material_modifiers_material_base_id_name"); b.ToTable("material_modifiers", (string)null); b.HasData( new { Id = new Guid("30000000-0000-0000-0000-000000000001"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(482), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000001"), Name = "Carbon Fiber", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(482) }, new { Id = new Guid("30000000-0000-0000-0000-000000000002"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(805), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000001"), Name = "Glass Fiber", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(806) }, new { Id = new Guid("30000000-0000-0000-0000-000000000003"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(815), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000001"), Name = "Wood Fill", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(815) }, new { Id = new Guid("30000000-0000-0000-0000-000000000004"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(821), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000001"), Name = "Glow-in-the-Dark", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(821) }, new { Id = new Guid("30000000-0000-0000-0000-000000000005"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(828), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000002"), Name = "Carbon Fiber", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(828) }, new { Id = new Guid("30000000-0000-0000-0000-000000000006"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(834), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000002"), Name = "Glass Fiber", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(834) }, new { Id = new Guid("30000000-0000-0000-0000-000000000007"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(840), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000003"), Name = "Carbon Fiber", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(840) }, new { Id = new Guid("30000000-0000-0000-0000-000000000008"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(847), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000003"), Name = "Glass Fiber", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(847) }, new { Id = new Guid("30000000-0000-0000-0000-000000000009"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(853), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000004"), Name = "Carbon Fiber", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(853) }, new { Id = new Guid("30000000-0000-0000-0000-000000000010"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(859), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000006"), Name = "Carbon Fiber", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(860) }, new { Id = new Guid("30000000-0000-0000-0000-000000000011"), CreatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(866), MaterialBaseId = new Guid("10000000-0000-0000-0000-000000000006"), Name = "Glass Fiber", UpdatedAt = new DateTime(2026, 4, 26, 18, 34, 33, 292, DateTimeKind.Utc).AddTicks(866) }); }); modelBuilder.Entity("Extrudex.Domain.Entities.PrintJob", b => { b.Property("Id") .HasColumnType("uuid") .HasColumnName("id"); b.Property("CompletedAt") .HasColumnType("timestamp with time zone") .HasColumnName("completed_at"); b.Property("CostPerPrint") .HasPrecision(10, 4) .HasColumnType("numeric(10,4)") .HasColumnName("cost_per_print"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("created_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("DataSource") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("data_source"); b.Property("FilamentDiameterAtPrintMm") .HasPrecision(6, 3) .HasColumnType("numeric(6,3)") .HasColumnName("filament_diameter_at_print_mm"); b.Property("GcodeFilePath") .HasMaxLength(1000) .HasColumnType("character varying(1000)") .HasColumnName("gcode_file_path"); b.Property("GramsDerived") .HasPrecision(10, 2) .HasColumnType("numeric(10,2)") .HasColumnName("grams_derived"); b.Property("MaterialDensityAtPrint") .HasPrecision(10, 4) .HasColumnType("numeric(10,4)") .HasColumnName("material_density_at_print"); b.Property("MmExtruded") .HasPrecision(12, 2) .HasColumnType("numeric(12,2)") .HasColumnName("mm_extruded"); b.Property("Notes") .HasMaxLength(2000) .HasColumnType("character varying(2000)") .HasColumnName("notes"); b.Property("PrintName") .IsRequired() .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("print_name"); b.Property("PrinterId") .HasColumnType("uuid") .HasColumnName("printer_id"); b.Property("SpoolId") .HasColumnType("uuid") .HasColumnName("spool_id"); b.Property("StartedAt") .HasColumnType("timestamp with time zone") .HasColumnName("started_at"); b.Property("Status") .IsRequired() .ValueGeneratedOnAdd() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasDefaultValue("Queued") .HasColumnName("status"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("updated_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.HasKey("Id"); b.HasIndex("DataSource") .HasDatabaseName("ix_print_jobs_data_source"); b.HasIndex("PrinterId") .HasDatabaseName("ix_print_jobs_printer_id"); b.HasIndex("SpoolId") .HasDatabaseName("ix_print_jobs_spool_id"); b.HasIndex("Status") .HasDatabaseName("ix_print_jobs_status"); b.ToTable("print_jobs", (string)null); }); modelBuilder.Entity("Extrudex.Domain.Entities.Printer", b => { b.Property("Id") .HasColumnType("uuid") .HasColumnName("id"); b.Property("ApiKey") .IsRequired() .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("api_key"); b.Property("ConnectionType") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("connection_type"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("created_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("HostnameOrIp") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasColumnName("hostname_or_ip"); b.Property("IsActive") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(true) .HasColumnName("is_active"); b.Property("LastSeenAt") .HasColumnType("timestamp with time zone") .HasColumnName("last_seen_at"); b.Property("Manufacturer") .IsRequired() .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("manufacturer"); b.Property("Model") .IsRequired() .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("model"); b.Property("MqttPassword") .IsRequired() .HasMaxLength(500) .HasColumnType("character varying(500)") .HasColumnName("mqtt_password"); b.Property("MqttUseTls") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false) .HasColumnName("mqtt_use_tls"); b.Property("MqttUsername") .IsRequired() .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("mqtt_username"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("name"); b.Property("Port") .HasColumnType("integer") .HasColumnName("port"); b.Property("PrinterType") .IsRequired() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasColumnName("printer_type"); b.Property("Status") .IsRequired() .ValueGeneratedOnAdd() .HasMaxLength(50) .HasColumnType("character varying(50)") .HasDefaultValue("Offline") .HasColumnName("status"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("updated_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.HasKey("Id"); b.HasIndex("ConnectionType") .HasDatabaseName("ix_printers_connection_type"); b.HasIndex("IsActive") .HasDatabaseName("ix_printers_is_active"); b.HasIndex("PrinterType") .HasDatabaseName("ix_printers_printer_type"); b.HasIndex("Status") .HasDatabaseName("ix_printers_status"); b.ToTable("printers", (string)null); }); modelBuilder.Entity("Extrudex.Domain.Entities.Spool", b => { b.Property("Id") .HasColumnType("uuid") .HasColumnName("id"); b.Property("Brand") .IsRequired() .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("brand"); b.Property("ColorHex") .IsRequired() .HasMaxLength(7) .HasColumnType("character varying(7)") .HasColumnName("color_hex"); b.Property("ColorName") .IsRequired() .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("color_name"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("created_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("FilamentDiameterMm") .HasPrecision(6, 3) .HasColumnType("numeric(6,3)") .HasColumnName("filament_diameter_mm"); b.Property("IsActive") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(true) .HasColumnName("is_active"); b.Property("MaterialBaseId") .HasColumnType("uuid") .HasColumnName("material_base_id"); b.Property("MaterialFinishId") .HasColumnType("uuid") .HasColumnName("material_finish_id"); b.Property("MaterialModifierId") .HasColumnType("uuid") .HasColumnName("material_modifier_id"); b.Property("PurchaseDate") .HasColumnType("timestamp with time zone") .HasColumnName("purchase_date"); b.Property("PurchasePrice") .HasPrecision(10, 2) .HasColumnType("numeric(10,2)") .HasColumnName("purchase_price"); b.Property("SpoolSerial") .IsRequired() .HasMaxLength(200) .HasColumnType("character varying(200)") .HasColumnName("spool_serial"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasColumnName("updated_at") .HasDefaultValueSql("now() at time zone 'utc'"); b.Property("WeightRemainingGrams") .HasPrecision(10, 2) .HasColumnType("numeric(10,2)") .HasColumnName("weight_remaining_grams"); b.Property("WeightTotalGrams") .HasPrecision(10, 2) .HasColumnType("numeric(10,2)") .HasColumnName("weight_total_grams"); b.HasKey("Id"); b.HasIndex("IsActive") .HasDatabaseName("ix_spools_is_active"); b.HasIndex("MaterialBaseId") .HasDatabaseName("ix_spools_material_base_id"); b.HasIndex("MaterialFinishId") .HasDatabaseName("ix_spools_material_finish_id"); b.HasIndex("MaterialModifierId") .HasDatabaseName("ix_spools_material_modifier_id"); b.HasIndex("SpoolSerial") .IsUnique() .HasDatabaseName("ix_spools_spool_serial"); b.ToTable("spools", (string)null); }); modelBuilder.Entity("Extrudex.Domain.Entities.AmsSlot", b => { b.HasOne("Extrudex.Domain.Entities.AmsUnit", "AmsUnit") .WithMany("Slots") .HasForeignKey("AmsUnitId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_ams_slots_ams_unit"); b.HasOne("Extrudex.Domain.Entities.Spool", "Spool") .WithMany("AmsSlots") .HasForeignKey("SpoolId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_ams_slots_spool"); b.Navigation("AmsUnit"); b.Navigation("Spool"); }); modelBuilder.Entity("Extrudex.Domain.Entities.AmsUnit", b => { b.HasOne("Extrudex.Domain.Entities.Printer", "Printer") .WithMany("AmsUnits") .HasForeignKey("PrinterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_ams_units_printer"); b.Navigation("Printer"); }); modelBuilder.Entity("Extrudex.Domain.Entities.FilamentUsage", b => { b.HasOne("Extrudex.Domain.Entities.PrintJob", "PrintJob") .WithMany("FilamentUsages") .HasForeignKey("PrintJobId") .OnDelete(DeleteBehavior.Cascade) .IsRequired() .HasConstraintName("fk_filament_usages_print_job"); b.HasOne("Extrudex.Domain.Entities.Printer", "Printer") .WithMany("FilamentUsages") .HasForeignKey("PrinterId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_filament_usages_printer"); b.HasOne("Extrudex.Domain.Entities.Spool", "Spool") .WithMany("FilamentUsages") .HasForeignKey("SpoolId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_filament_usages_spool"); b.Navigation("PrintJob"); b.Navigation("Printer"); b.Navigation("Spool"); }); modelBuilder.Entity("Extrudex.Domain.Entities.MaterialFinish", b => { b.HasOne("Extrudex.Domain.Entities.MaterialBase", "MaterialBase") .WithMany("Finishes") .HasForeignKey("MaterialBaseId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_material_finishes_material_base"); b.Navigation("MaterialBase"); }); modelBuilder.Entity("Extrudex.Domain.Entities.MaterialModifier", b => { b.HasOne("Extrudex.Domain.Entities.MaterialBase", "MaterialBase") .WithMany("Modifiers") .HasForeignKey("MaterialBaseId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_material_modifiers_material_base"); b.Navigation("MaterialBase"); }); modelBuilder.Entity("Extrudex.Domain.Entities.PrintJob", b => { b.HasOne("Extrudex.Domain.Entities.Printer", "Printer") .WithMany("PrintJobs") .HasForeignKey("PrinterId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_print_jobs_printer"); b.HasOne("Extrudex.Domain.Entities.Spool", "Spool") .WithMany("PrintJobs") .HasForeignKey("SpoolId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_print_jobs_spool"); b.Navigation("Printer"); b.Navigation("Spool"); }); modelBuilder.Entity("Extrudex.Domain.Entities.Spool", b => { b.HasOne("Extrudex.Domain.Entities.MaterialBase", "MaterialBase") .WithMany("Spools") .HasForeignKey("MaterialBaseId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_spools_material_base"); b.HasOne("Extrudex.Domain.Entities.MaterialFinish", "MaterialFinish") .WithMany("Spools") .HasForeignKey("MaterialFinishId") .OnDelete(DeleteBehavior.Restrict) .IsRequired() .HasConstraintName("fk_spools_material_finish"); b.HasOne("Extrudex.Domain.Entities.MaterialModifier", "MaterialModifier") .WithMany("Spools") .HasForeignKey("MaterialModifierId") .OnDelete(DeleteBehavior.SetNull) .HasConstraintName("fk_spools_material_modifier"); b.Navigation("MaterialBase"); b.Navigation("MaterialFinish"); b.Navigation("MaterialModifier"); }); modelBuilder.Entity("Extrudex.Domain.Entities.AmsUnit", b => { b.Navigation("Slots"); }); modelBuilder.Entity("Extrudex.Domain.Entities.MaterialBase", b => { b.Navigation("Finishes"); b.Navigation("Modifiers"); b.Navigation("Spools"); }); modelBuilder.Entity("Extrudex.Domain.Entities.MaterialFinish", b => { b.Navigation("Spools"); }); modelBuilder.Entity("Extrudex.Domain.Entities.MaterialModifier", b => { b.Navigation("Spools"); }); modelBuilder.Entity("Extrudex.Domain.Entities.PrintJob", b => { b.Navigation("FilamentUsages"); }); modelBuilder.Entity("Extrudex.Domain.Entities.Printer", b => { b.Navigation("AmsUnits"); b.Navigation("FilamentUsages"); b.Navigation("PrintJobs"); }); modelBuilder.Entity("Extrudex.Domain.Entities.Spool", b => { b.Navigation("AmsSlots"); b.Navigation("FilamentUsages"); b.Navigation("PrintJobs"); }); #pragma warning restore 612, 618 } } }