// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Printbase.Infrastructure.Database; #nullable disable namespace Printbase.Infrastructure.Migrations { [DbContext(typeof(ApplicationDbContext))] [Migration("20250526100748_InitialSetup")] partial class InitialSetup { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "9.0.5") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("ApplicationRole", b => { b.Property("Id") .HasColumnType("nvarchar(450)"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("nvarchar(max)"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("Description") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("IsActive") .ValueGeneratedOnAdd() .HasColumnType("bit") .HasDefaultValue(true); b.Property("Name") .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.Property("NormalizedName") .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.HasKey("Id"); b.HasIndex("IsActive") .HasDatabaseName("IX_ApplicationRole_IsActive"); b.HasIndex("NormalizedName") .IsUnique() .HasDatabaseName("RoleNameIndex") .HasFilter("[NormalizedName] IS NOT NULL"); b.ToTable("AspNetRoles", (string)null); b.HasData( new { Id = "1", CreatedAt = new DateTime(2025, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), Description = "Full system access", IsActive = true, Name = "Administrator", NormalizedName = "ADMINISTRATOR" }, new { Id = "2", CreatedAt = new DateTime(2025, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), Description = "Standard customer access", IsActive = true, Name = "Customer", NormalizedName = "CUSTOMER" }, new { Id = "3", CreatedAt = new DateTime(2025, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), Description = "Manage orders and fulfillment", IsActive = true, Name = "OrderManager", NormalizedName = "ORDERMANAGER" }, new { Id = "4", CreatedAt = new DateTime(2025, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), Description = "Manage products and inventory", IsActive = true, Name = "ProductManager", NormalizedName = "PRODUCTMANAGER" }); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ClaimType") .HasColumnType("nvarchar(max)"); b.Property("ClaimValue") .HasColumnType("nvarchar(max)"); b.Property("RoleId") .IsRequired() .HasColumnType("nvarchar(450)"); b.HasKey("Id"); b.HasIndex("RoleId"); b.ToTable("AspNetRoleClaims", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ClaimType") .HasColumnType("nvarchar(max)"); b.Property("ClaimValue") .HasColumnType("nvarchar(max)"); b.Property("UserId") .IsRequired() .HasColumnType("nvarchar(450)"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("AspNetUserClaims", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.Property("LoginProvider") .HasColumnType("nvarchar(450)"); b.Property("ProviderKey") .HasColumnType("nvarchar(450)"); b.Property("ProviderDisplayName") .HasColumnType("nvarchar(max)"); b.Property("UserId") .IsRequired() .HasColumnType("nvarchar(450)"); b.HasKey("LoginProvider", "ProviderKey"); b.HasIndex("UserId"); b.ToTable("AspNetUserLogins", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { b.Property("UserId") .HasColumnType("nvarchar(450)"); b.Property("RoleId") .HasColumnType("nvarchar(450)"); b.HasKey("UserId", "RoleId"); b.HasIndex("RoleId"); b.ToTable("AspNetUserRoles", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.Property("UserId") .HasColumnType("nvarchar(450)"); b.Property("LoginProvider") .HasColumnType("nvarchar(450)"); b.Property("Name") .HasColumnType("nvarchar(450)"); b.Property("Value") .HasColumnType("nvarchar(max)"); b.HasKey("UserId", "LoginProvider", "Name"); b.ToTable("AspNetUserTokens", (string)null); }); modelBuilder.Entity("Printbase.Domain.Entities.Address", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasDefaultValueSql("NEWID()"); b.Property("AddressType") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("City") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("Country") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("CreatedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("IsActive") .ValueGeneratedOnAdd() .HasColumnType("bit") .HasDefaultValue(true); b.Property("IsDefault") .ValueGeneratedOnAdd() .HasColumnType("bit") .HasDefaultValue(false); b.Property("ModifiedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("ModifiedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("PostalCode") .IsRequired() .HasMaxLength(20) .HasColumnType("nvarchar(20)"); b.Property("State") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("Street") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.Property("UserId") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.HasKey("Id"); b.HasIndex("CreatedAt") .HasDatabaseName("IX_Address_CreatedAt"); b.HasIndex("CreatedBy") .HasDatabaseName("IX_Address_CreatedBy"); b.HasIndex("ModifiedAt") .HasDatabaseName("IX_Address_ModifiedAt"); b.HasIndex("UserId") .HasDatabaseName("IX_Address_UserId"); b.HasIndex("UserId", "AddressType") .HasDatabaseName("IX_Address_User_Type"); b.HasIndex("UserId", "IsDefault") .HasDatabaseName("IX_Address_User_Default"); b.ToTable("Addresses"); }); modelBuilder.Entity("Printbase.Domain.Entities.Category", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("CreatedBy") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Description") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("ImageUrl") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("IsActive") .HasColumnType("bit"); b.Property("ModifiedAt") .HasColumnType("datetime2"); b.Property("ModifiedBy") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("Name") .IsRequired() .HasColumnType("nvarchar(max)"); b.Property("ParentCategoryId") .HasColumnType("uniqueidentifier"); b.Property("SortOrder") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("ParentCategoryId"); b.ToTable("Category"); }); modelBuilder.Entity("Printbase.Domain.Entities.Order", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasDefaultValueSql("NEWID()"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("CreatedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("ModifiedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("ModifiedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("Notes") .IsRequired() .HasMaxLength(1000) .HasColumnType("nvarchar(1000)"); b.Property("OrderDate") .HasColumnType("datetime2"); b.Property("OrderNumber") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("OrderStatusId") .HasColumnType("int"); b.Property("ShippingStatusId") .HasColumnType("int"); b.Property("TotalPrice") .HasColumnType("decimal(18,2)"); b.Property("UserId") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.HasKey("Id"); b.HasIndex("CreatedAt") .HasDatabaseName("IX_Order_CreatedAt"); b.HasIndex("CreatedBy") .HasDatabaseName("IX_Order_CreatedBy"); b.HasIndex("ModifiedAt") .HasDatabaseName("IX_Order_ModifiedAt"); b.HasIndex("OrderDate") .HasDatabaseName("IX_Order_OrderDate"); b.HasIndex("OrderNumber") .IsUnique() .HasDatabaseName("IX_Order_OrderNumber"); b.HasIndex("OrderStatusId") .HasDatabaseName("IX_Order_OrderStatusId"); b.HasIndex("ShippingStatusId") .HasDatabaseName("IX_Order_ShippingStatusId"); b.HasIndex("UserId") .HasDatabaseName("IX_Order_UserId"); b.HasIndex("UserId", "OrderDate") .HasDatabaseName("IX_Order_User_Date"); b.ToTable("Orders"); }); modelBuilder.Entity("Printbase.Domain.Entities.OrderAddress", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasDefaultValueSql("NEWID()"); b.Property("City") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("Country") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("CreatedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("ModifiedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("ModifiedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("OrderId") .HasColumnType("uniqueidentifier"); b.Property("PostalCode") .IsRequired() .HasMaxLength(20) .HasColumnType("nvarchar(20)"); b.Property("State") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("Street") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.HasKey("Id"); b.HasIndex("CreatedAt") .HasDatabaseName("IX_OrderAddress_CreatedAt"); b.HasIndex("CreatedBy") .HasDatabaseName("IX_OrderAddress_CreatedBy"); b.HasIndex("ModifiedAt") .HasDatabaseName("IX_OrderAddress_ModifiedAt"); b.HasIndex("OrderId") .IsUnique() .HasDatabaseName("IX_OrderAddress_OrderId"); b.ToTable("OrderAddresses"); }); modelBuilder.Entity("Printbase.Domain.Entities.OrderItem", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasDefaultValueSql("NEWID()"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("CreatedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("CustomizationDescription") .IsRequired() .HasMaxLength(2000) .HasColumnType("nvarchar(2000)"); b.Property("CustomizationImageUrl") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("ModifiedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("ModifiedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("OrderId") .HasColumnType("uniqueidentifier"); b.Property("ProductId") .HasColumnType("uniqueidentifier"); b.Property("ProductVariantId") .HasColumnType("uniqueidentifier"); b.Property("Quantity") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(1); b.Property("TotalPrice") .HasColumnType("decimal(18,2)"); b.Property("UnitPrice") .HasColumnType("decimal(18,2)"); b.HasKey("Id"); b.HasIndex("CreatedAt") .HasDatabaseName("IX_OrderItem_CreatedAt"); b.HasIndex("CreatedBy") .HasDatabaseName("IX_OrderItem_CreatedBy"); b.HasIndex("ModifiedAt") .HasDatabaseName("IX_OrderItem_ModifiedAt"); b.HasIndex("OrderId") .HasDatabaseName("IX_OrderItem_OrderId"); b.HasIndex("ProductId") .HasDatabaseName("IX_OrderItem_ProductId"); b.HasIndex("ProductVariantId") .HasDatabaseName("IX_OrderItem_ProductVariantId"); b.HasIndex("OrderId", "ProductId") .HasDatabaseName("IX_OrderItem_Order_Product"); b.ToTable("OrderItems"); }); modelBuilder.Entity("Printbase.Domain.Entities.OrderStatus", b => { b.Property("Id") .HasColumnType("int"); b.Property("Name") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("IX_OrderStatus_Name"); b.ToTable("OrderStatuses"); b.HasData( new { Id = 0, Name = "Pending" }, new { Id = 1, Name = "Processing" }, new { Id = 2, Name = "Completed" }, new { Id = 3, Name = "Cancelled" }); }); modelBuilder.Entity("Printbase.Domain.Entities.Product", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasDefaultValueSql("NEWID()"); b.Property("BasePrice") .HasColumnType("decimal(18,2)"); b.Property("CategoryId") .HasColumnType("uniqueidentifier"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("CreatedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("Description") .IsRequired() .HasMaxLength(2000) .HasColumnType("nvarchar(2000)"); b.Property("ImageUrl") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("IsActive") .ValueGeneratedOnAdd() .HasColumnType("bit") .HasDefaultValue(true); b.Property("IsCustomizable") .ValueGeneratedOnAdd() .HasColumnType("bit") .HasDefaultValue(false); b.Property("ModifiedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("ModifiedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); b.HasKey("Id"); b.HasIndex("CategoryId") .HasDatabaseName("IX_Product_CategoryId"); b.HasIndex("CreatedAt") .HasDatabaseName("IX_Product_CreatedAt"); b.HasIndex("CreatedBy") .HasDatabaseName("IX_Product_CreatedBy"); b.HasIndex("IsActive") .HasDatabaseName("IX_Product_IsActive"); b.HasIndex("IsCustomizable") .HasDatabaseName("IX_Product_IsCustomizable"); b.HasIndex("ModifiedAt") .HasDatabaseName("IX_Product_ModifiedAt"); b.HasIndex("Name") .HasDatabaseName("IX_Product_Name"); b.HasIndex("CategoryId", "IsActive") .HasDatabaseName("IX_Product_Category_Active"); b.HasIndex("IsActive", "IsCustomizable") .HasDatabaseName("IX_Product_Active_Customizable"); b.ToTable("Products"); }); modelBuilder.Entity("Printbase.Domain.Entities.ProductVariant", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier") .HasDefaultValueSql("NEWID()"); b.Property("Color") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("CreatedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("ImageUrl") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("IsActive") .ValueGeneratedOnAdd() .HasColumnType("bit") .HasDefaultValue(true); b.Property("ModifiedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("ModifiedBy") .IsRequired() .HasMaxLength(450) .HasColumnType("nvarchar(450)"); b.Property("Price") .HasColumnType("decimal(18,2)"); b.Property("ProductId") .HasColumnType("uniqueidentifier"); b.Property("SKU") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("Size") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.Property("StockQuantity") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(0); b.HasKey("Id"); b.HasIndex("CreatedAt") .HasDatabaseName("IX_ProductVariant_CreatedAt"); b.HasIndex("CreatedBy") .HasDatabaseName("IX_ProductVariant_CreatedBy"); b.HasIndex("IsActive") .HasDatabaseName("IX_ProductVariant_IsActive"); b.HasIndex("ModifiedAt") .HasDatabaseName("IX_ProductVariant_ModifiedAt"); b.HasIndex("ProductId") .HasDatabaseName("IX_ProductVariant_ProductId"); b.HasIndex("SKU") .IsUnique() .HasDatabaseName("IX_ProductVariant_SKU"); b.HasIndex("ProductId", "Size", "Color") .IsUnique() .HasDatabaseName("IX_ProductVariant_Product_Size_Color"); b.ToTable("ProductVariants"); }); modelBuilder.Entity("Printbase.Domain.Entities.ShippingStatus", b => { b.Property("Id") .HasColumnType("int"); b.Property("Name") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique() .HasDatabaseName("IX_ShippingStatus_Name"); b.ToTable("ShippingStatuses"); b.HasData( new { Id = 0, Name = "Prepping" }, new { Id = 1, Name = "Packaging" }, new { Id = 2, Name = "Shipped" }, new { Id = 3, Name = "Delivered" }); }); modelBuilder.Entity("Printbase.Domain.Entities.Users.ApplicationUser", b => { b.Property("Id") .HasColumnType("nvarchar(450)"); b.Property("AccessFailedCount") .HasColumnType("int"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("nvarchar(max)"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("DateOfBirth") .HasColumnType("datetime2"); b.Property("Email") .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.Property("EmailConfirmed") .HasColumnType("bit"); b.Property("FirstName") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("IsActive") .ValueGeneratedOnAdd() .HasColumnType("bit") .HasDefaultValue(true); b.Property("LastLoginAt") .ValueGeneratedOnAdd() .HasColumnType("datetime2") .HasDefaultValueSql("GETUTCDATE()"); b.Property("LastName") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("LockoutEnabled") .HasColumnType("bit"); b.Property("LockoutEnd") .HasColumnType("datetimeoffset"); b.Property("NormalizedEmail") .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.Property("NormalizedUserName") .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.Property("PasswordHash") .HasColumnType("nvarchar(max)"); b.Property("PhoneNumber") .HasColumnType("nvarchar(max)"); b.Property("PhoneNumberConfirmed") .HasColumnType("bit"); b.Property("ProfileImageUrl") .IsRequired() .HasMaxLength(500) .HasColumnType("nvarchar(500)"); b.Property("SecurityStamp") .HasColumnType("nvarchar(max)"); b.Property("TwoFactorEnabled") .HasColumnType("bit"); b.Property("UserName") .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.HasKey("Id"); b.HasIndex("NormalizedEmail") .HasDatabaseName("EmailIndex"); b.HasIndex("NormalizedUserName") .IsUnique() .HasDatabaseName("UserNameIndex") .HasFilter("[NormalizedUserName] IS NOT NULL"); b.ToTable("AspNetUsers", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.HasOne("ApplicationRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.HasOne("Printbase.Domain.Entities.Users.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.HasOne("Printbase.Domain.Entities.Users.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { b.HasOne("ApplicationRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Printbase.Domain.Entities.Users.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.HasOne("Printbase.Domain.Entities.Users.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Printbase.Domain.Entities.Address", b => { b.HasOne("Printbase.Domain.Entities.Users.ApplicationUser", null) .WithMany("Addresses") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Printbase.Domain.Entities.Category", b => { b.HasOne("Printbase.Domain.Entities.Category", "ParentCategory") .WithMany("SubCategories") .HasForeignKey("ParentCategoryId"); b.Navigation("ParentCategory"); }); modelBuilder.Entity("Printbase.Domain.Entities.Order", b => { b.HasOne("Printbase.Domain.Entities.OrderStatus", "OrderStatus") .WithMany("Orders") .HasForeignKey("OrderStatusId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Printbase.Domain.Entities.ShippingStatus", "ShippingStatus") .WithMany("Orders") .HasForeignKey("ShippingStatusId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Printbase.Domain.Entities.Users.ApplicationUser", null) .WithMany("Orders") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("OrderStatus"); b.Navigation("ShippingStatus"); }); modelBuilder.Entity("Printbase.Domain.Entities.OrderAddress", b => { b.HasOne("Printbase.Domain.Entities.Order", "Order") .WithOne("OrderAddress") .HasForeignKey("Printbase.Domain.Entities.OrderAddress", "OrderId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Order"); }); modelBuilder.Entity("Printbase.Domain.Entities.OrderItem", b => { b.HasOne("Printbase.Domain.Entities.Order", "Order") .WithMany("OrderItems") .HasForeignKey("OrderId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Printbase.Domain.Entities.Product", "Product") .WithMany("OrderItems") .HasForeignKey("ProductId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Printbase.Domain.Entities.ProductVariant", "ProductVariant") .WithMany("OrderItems") .HasForeignKey("ProductVariantId") .OnDelete(DeleteBehavior.Restrict); b.Navigation("Order"); b.Navigation("Product"); b.Navigation("ProductVariant"); }); modelBuilder.Entity("Printbase.Domain.Entities.Product", b => { b.HasOne("Printbase.Domain.Entities.Category", "Category") .WithMany("Products") .HasForeignKey("CategoryId") .OnDelete(DeleteBehavior.SetNull); b.Navigation("Category"); }); modelBuilder.Entity("Printbase.Domain.Entities.ProductVariant", b => { b.HasOne("Printbase.Domain.Entities.Product", "Product") .WithMany("ProductVariants") .HasForeignKey("ProductId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Product"); }); modelBuilder.Entity("Printbase.Domain.Entities.Category", b => { b.Navigation("Products"); b.Navigation("SubCategories"); }); modelBuilder.Entity("Printbase.Domain.Entities.Order", b => { b.Navigation("OrderAddress") .IsRequired(); b.Navigation("OrderItems"); }); modelBuilder.Entity("Printbase.Domain.Entities.OrderStatus", b => { b.Navigation("Orders"); }); modelBuilder.Entity("Printbase.Domain.Entities.Product", b => { b.Navigation("OrderItems"); b.Navigation("ProductVariants"); }); modelBuilder.Entity("Printbase.Domain.Entities.ProductVariant", b => { b.Navigation("OrderItems"); }); modelBuilder.Entity("Printbase.Domain.Entities.ShippingStatus", b => { b.Navigation("Orders"); }); modelBuilder.Entity("Printbase.Domain.Entities.Users.ApplicationUser", b => { b.Navigation("Addresses"); b.Navigation("Orders"); }); #pragma warning restore 612, 618 } } }