//
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Prefab.Web.Data;
#nullable disable
namespace Prefab.Web.Data.Migrations
{
[DbContext(typeof(AppDb))]
partial class AppDbModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "10.0.0-rc.2.25502.107")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.AttributeDefinition", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("DataType")
.HasColumnType("int");
b.Property("DeletedBy")
.HasColumnType("uniqueidentifier");
b.Property("DeletedOn")
.HasColumnType("datetimeoffset");
b.Property("InactivatedBy")
.HasColumnType("uniqueidentifier");
b.Property("InactivatedOn")
.HasColumnType("datetimeoffset");
b.Property("LastModifiedBy")
.HasColumnType("uniqueidentifier");
b.Property("LastModifiedOn")
.HasColumnType("datetimeoffset");
b.Property("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.Property("RowVersion")
.IsConcurrencyToken()
.IsRequired()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("rowversion");
b.Property("Unit")
.HasMaxLength(32)
.HasColumnType("nvarchar(32)");
b.HasKey("Id");
b.ToTable("AttributeDefinitions", "catalog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.Category", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("DeletedBy")
.HasColumnType("uniqueidentifier");
b.Property("DeletedOn")
.HasColumnType("datetimeoffset");
b.Property("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property("DisplayOrder")
.HasColumnType("int");
b.Property("HeroImageUrl")
.HasMaxLength(512)
.HasColumnType("nvarchar(512)");
b.Property("Icon")
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
b.Property("InactivatedBy")
.HasColumnType("uniqueidentifier");
b.Property("InactivatedOn")
.HasColumnType("datetimeoffset");
b.Property("IsFeatured")
.HasColumnType("bit");
b.Property("LastModifiedBy")
.HasColumnType("uniqueidentifier");
b.Property("LastModifiedOn")
.HasColumnType("datetimeoffset");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property("ParentId")
.HasColumnType("uniqueidentifier");
b.Property("RowVersion")
.IsConcurrencyToken()
.IsRequired()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("rowversion");
b.Property("Slug")
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
b.HasKey("Id");
b.HasIndex("Slug")
.IsUnique()
.HasFilter("[Slug] IS NOT NULL");
b.ToTable("Categories", "catalog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionDefinition", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("Code")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("DataType")
.HasColumnType("int");
b.Property("DeletedBy")
.HasColumnType("uniqueidentifier");
b.Property("DeletedOn")
.HasColumnType("datetimeoffset");
b.Property("InactivatedBy")
.HasColumnType("uniqueidentifier");
b.Property("InactivatedOn")
.HasColumnType("datetimeoffset");
b.Property("IsVariantAxis")
.HasColumnType("bit");
b.Property("LastModifiedBy")
.HasColumnType("uniqueidentifier");
b.Property("LastModifiedOn")
.HasColumnType("datetimeoffset");
b.Property("Max")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.Property("Min")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.Property("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.Property("PercentScope")
.HasColumnType("int");
b.Property("PricePerUnit")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.Property("ProductId")
.HasColumnType("uniqueidentifier");
b.Property("RowVersion")
.IsConcurrencyToken()
.IsRequired()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("rowversion");
b.Property("Step")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.Property("Unit")
.HasMaxLength(32)
.HasColumnType("nvarchar(32)");
b.HasKey("Id");
b.HasIndex("ProductId", "Code")
.IsUnique();
b.ToTable("OptionDefinitions", "catalog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionRuleCondition", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("DeletedBy")
.HasColumnType("uniqueidentifier");
b.Property("DeletedOn")
.HasColumnType("datetimeoffset");
b.Property("InactivatedBy")
.HasColumnType("uniqueidentifier");
b.Property("InactivatedOn")
.HasColumnType("datetimeoffset");
b.Property("LastModifiedBy")
.HasColumnType("uniqueidentifier");
b.Property("LastModifiedOn")
.HasColumnType("datetimeoffset");
b.Property("LeftOptionDefinitionId")
.HasColumnType("uniqueidentifier");
b.Property("Operator")
.HasColumnType("tinyint");
b.Property("RightList")
.HasColumnType("nvarchar(max)");
b.Property("RightMax")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.Property("RightMin")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.Property("RightNumber")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.Property("RightOptionValueId")
.HasColumnType("uniqueidentifier");
b.Property("RowVersion")
.IsConcurrencyToken()
.IsRequired()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("rowversion");
b.Property("RuleSetId")
.HasColumnType("uniqueidentifier");
b.HasKey("Id");
b.HasIndex("LeftOptionDefinitionId");
b.HasIndex("RightOptionValueId");
b.HasIndex("RuleSetId");
b.ToTable("OptionRuleConditions", "catalog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionRuleSet", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("DeletedBy")
.HasColumnType("uniqueidentifier");
b.Property("DeletedOn")
.HasColumnType("datetimeoffset");
b.Property("Effect")
.HasColumnType("tinyint");
b.Property("InactivatedBy")
.HasColumnType("uniqueidentifier");
b.Property("InactivatedOn")
.HasColumnType("datetimeoffset");
b.Property("LastModifiedBy")
.HasColumnType("uniqueidentifier");
b.Property("LastModifiedOn")
.HasColumnType("datetimeoffset");
b.Property("Mode")
.HasColumnType("tinyint");
b.Property("ProductId")
.HasColumnType("uniqueidentifier");
b.Property("RowVersion")
.IsConcurrencyToken()
.IsRequired()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("rowversion");
b.Property("TargetId")
.HasColumnType("uniqueidentifier");
b.Property("TargetKind")
.HasColumnType("tinyint");
b.HasKey("Id");
b.HasIndex("ProductId", "TargetKind", "TargetId");
b.ToTable("OptionRuleSets", "catalog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionTier", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("DeletedBy")
.HasColumnType("uniqueidentifier");
b.Property("DeletedOn")
.HasColumnType("datetimeoffset");
b.Property("FlatDelta")
.HasPrecision(18, 2)
.HasColumnType("decimal(18,2)");
b.Property("FromInclusive")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.Property("InactivatedBy")
.HasColumnType("uniqueidentifier");
b.Property("InactivatedOn")
.HasColumnType("datetimeoffset");
b.Property("LastModifiedBy")
.HasColumnType("uniqueidentifier");
b.Property("LastModifiedOn")
.HasColumnType("datetimeoffset");
b.Property("OptionDefinitionId")
.HasColumnType("uniqueidentifier");
b.Property("RowVersion")
.IsConcurrencyToken()
.IsRequired()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("rowversion");
b.Property("ToInclusive")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.Property("UnitRate")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.HasKey("Id");
b.HasIndex("OptionDefinitionId", "FromInclusive", "ToInclusive");
b.ToTable("OptionTiers", "catalog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionValue", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("Code")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("DeletedBy")
.HasColumnType("uniqueidentifier");
b.Property("DeletedOn")
.HasColumnType("datetimeoffset");
b.Property("InactivatedBy")
.HasColumnType("uniqueidentifier");
b.Property("InactivatedOn")
.HasColumnType("datetimeoffset");
b.Property("Label")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.Property("LastModifiedBy")
.HasColumnType("uniqueidentifier");
b.Property("LastModifiedOn")
.HasColumnType("datetimeoffset");
b.Property("OptionDefinitionId")
.HasColumnType("uniqueidentifier");
b.Property("PriceDelta")
.HasPrecision(9, 4)
.HasColumnType("decimal(9,4)");
b.Property("PriceDeltaKind")
.HasColumnType("int");
b.Property("RowVersion")
.IsConcurrencyToken()
.IsRequired()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("rowversion");
b.HasKey("Id");
b.HasIndex("OptionDefinitionId", "Code")
.IsUnique();
b.ToTable("OptionValues", "catalog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.Product", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("DeletedBy")
.HasColumnType("uniqueidentifier");
b.Property("DeletedOn")
.HasColumnType("datetimeoffset");
b.Property("Description")
.HasMaxLength(2048)
.HasColumnType("nvarchar(2048)");
b.Property("InactivatedBy")
.HasColumnType("uniqueidentifier");
b.Property("InactivatedOn")
.HasColumnType("datetimeoffset");
b.Property("Kind")
.HasColumnType("int");
b.Property("LastModifiedBy")
.HasColumnType("uniqueidentifier");
b.Property("LastModifiedOn")
.HasColumnType("datetimeoffset");
b.Property("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.Property("ParentProductId")
.HasColumnType("uniqueidentifier");
b.Property("Price")
.HasPrecision(18, 2)
.HasColumnType("decimal(18,2)");
b.Property("RowVersion")
.IsConcurrencyToken()
.IsRequired()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("rowversion");
b.Property("Sku")
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("Slug")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.HasKey("Id");
b.HasIndex("ParentProductId");
b.HasIndex("Sku")
.IsUnique()
.HasFilter("[Sku] IS NOT NULL");
b.HasIndex("Slug")
.IsUnique()
.HasFilter("[Slug] IS NOT NULL");
b.ToTable("Products", "catalog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.ProductAttributeValue", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property("AttributeDefinitionId")
.HasColumnType("uniqueidentifier");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("DeletedBy")
.HasColumnType("uniqueidentifier");
b.Property("DeletedOn")
.HasColumnType("datetimeoffset");
b.Property("EnumCode")
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("InactivatedBy")
.HasColumnType("uniqueidentifier");
b.Property("InactivatedOn")
.HasColumnType("datetimeoffset");
b.Property("LastModifiedBy")
.HasColumnType("uniqueidentifier");
b.Property("LastModifiedOn")
.HasColumnType("datetimeoffset");
b.Property("NumericValue")
.HasPrecision(18, 4)
.HasColumnType("decimal(18,4)");
b.Property("ProductId")
.HasColumnType("uniqueidentifier");
b.Property("RowVersion")
.IsConcurrencyToken()
.IsRequired()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("rowversion");
b.Property("UnitCode")
.HasMaxLength(32)
.HasColumnType("nvarchar(32)");
b.Property("Value")
.HasMaxLength(1024)
.HasColumnType("nvarchar(1024)");
b.HasKey("Id");
b.HasIndex("AttributeDefinitionId");
b.HasIndex("ProductId", "AttributeDefinitionId")
.IsUnique();
b.ToTable("ProductAttributeValues", "catalog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.ProductCategory", b =>
{
b.Property("ProductId")
.HasColumnType("uniqueidentifier");
b.Property("CategoryId")
.HasColumnType("uniqueidentifier");
b.Property("IsPrimary")
.HasColumnType("bit");
b.HasKey("ProductId", "CategoryId");
b.HasIndex("CategoryId");
b.ToTable("ProductCategories", "catalog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.VariantAxisValue", b =>
{
b.Property("ProductVariantId")
.HasColumnType("uniqueidentifier");
b.Property("OptionDefinitionId")
.HasColumnType("uniqueidentifier");
b.Property("OptionValueId")
.HasColumnType("uniqueidentifier");
b.HasKey("ProductVariantId", "OptionDefinitionId");
b.HasIndex("OptionDefinitionId");
b.HasIndex("OptionValueId");
b.ToTable("VariantAxisValues", "catalog");
});
modelBuilder.Entity("Prefab.Data.Entities.AuditLog", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("CorrelationId")
.HasColumnType("uniqueidentifier");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("Entity")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property("State")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AuditLogs");
});
modelBuilder.Entity("Prefab.Data.Entities.AuditLogItem", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("AuditLogId")
.HasColumnType("int");
b.Property("NewValue")
.HasMaxLength(1000)
.HasColumnType("nvarchar(1000)");
b.Property("OldValue")
.HasMaxLength(1000)
.HasColumnType("nvarchar(1000)");
b.Property("Property")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.HasKey("Id");
b.HasIndex("AuditLogId");
b.ToTable("AuditLogItems");
});
modelBuilder.Entity("Prefab.Data.Entities.GenericAttribute", b =>
{
b.Property("EntityId")
.HasColumnType("uniqueidentifier");
b.Property("KeyGroup")
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property("Key")
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property("CreatedBy")
.HasColumnType("uniqueidentifier");
b.Property("CreatedOn")
.HasColumnType("datetimeoffset");
b.Property("DeletedBy")
.HasColumnType("uniqueidentifier");
b.Property("DeletedOn")
.HasColumnType("datetimeoffset");
b.Property("InactivatedBy")
.HasColumnType("uniqueidentifier");
b.Property("InactivatedOn")
.HasColumnType("datetimeoffset");
b.Property("LastModifiedBy")
.HasColumnType("uniqueidentifier");
b.Property("LastModifiedOn")
.HasColumnType("datetimeoffset");
b.Property("RowVersion")
.IsConcurrencyToken()
.IsRequired()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("rowversion");
b.Property("Type")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("Value")
.IsRequired()
.HasMaxLength(2147483647)
.HasColumnType("nvarchar(max)");
b.HasKey("EntityId", "KeyGroup", "Key");
b.HasIndex("DeletedOn")
.HasDatabaseName("IX_GenericAttributes_Active")
.HasFilter("[DeletedOn] IS NULL");
b.HasIndex("EntityId", "KeyGroup")
.HasDatabaseName("IX_GenericAttributes_Entity_Group");
b.ToTable("GenericAttributes");
});
modelBuilder.Entity("Prefab.Data.Entities.SeederLog", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("RunAt")
.HasColumnType("datetime2");
b.Property("RunMode")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("nvarchar(64)");
b.Property("SeederName")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("nvarchar(256)");
b.HasKey("Id");
b.ToTable("SeederLogs");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionDefinition", b =>
{
b.HasOne("Prefab.Catalog.Domain.Entities.Product", "Product")
.WithMany("Options")
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Product");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionRuleCondition", b =>
{
b.HasOne("Prefab.Catalog.Domain.Entities.OptionDefinition", "LeftOptionDefinition")
.WithMany()
.HasForeignKey("LeftOptionDefinitionId")
.OnDelete(DeleteBehavior.NoAction)
.IsRequired();
b.HasOne("Prefab.Catalog.Domain.Entities.OptionValue", "RightOptionValue")
.WithMany()
.HasForeignKey("RightOptionValueId")
.OnDelete(DeleteBehavior.NoAction);
b.HasOne("Prefab.Catalog.Domain.Entities.OptionRuleSet", "RuleSet")
.WithMany("Conditions")
.HasForeignKey("RuleSetId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("LeftOptionDefinition");
b.Navigation("RightOptionValue");
b.Navigation("RuleSet");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionRuleSet", b =>
{
b.HasOne("Prefab.Catalog.Domain.Entities.Product", "Product")
.WithMany("RuleSets")
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Product");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionTier", b =>
{
b.HasOne("Prefab.Catalog.Domain.Entities.OptionDefinition", "OptionDefinition")
.WithMany("Tiers")
.HasForeignKey("OptionDefinitionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("OptionDefinition");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionValue", b =>
{
b.HasOne("Prefab.Catalog.Domain.Entities.OptionDefinition", "OptionDefinition")
.WithMany("Values")
.HasForeignKey("OptionDefinitionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("OptionDefinition");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.Product", b =>
{
b.HasOne("Prefab.Catalog.Domain.Entities.Product", "ParentProduct")
.WithMany("Variants")
.HasForeignKey("ParentProductId")
.OnDelete(DeleteBehavior.Restrict);
b.Navigation("ParentProduct");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.ProductAttributeValue", b =>
{
b.HasOne("Prefab.Catalog.Domain.Entities.AttributeDefinition", "AttributeDefinition")
.WithMany()
.HasForeignKey("AttributeDefinitionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Prefab.Catalog.Domain.Entities.Product", "Product")
.WithMany("Attributes")
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("AttributeDefinition");
b.Navigation("Product");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.ProductCategory", b =>
{
b.HasOne("Prefab.Catalog.Domain.Entities.Category", "Category")
.WithMany()
.HasForeignKey("CategoryId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Prefab.Catalog.Domain.Entities.Product", "Product")
.WithMany("Categories")
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Category");
b.Navigation("Product");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.VariantAxisValue", b =>
{
b.HasOne("Prefab.Catalog.Domain.Entities.OptionDefinition", "OptionDefinition")
.WithMany()
.HasForeignKey("OptionDefinitionId")
.OnDelete(DeleteBehavior.NoAction)
.IsRequired();
b.HasOne("Prefab.Catalog.Domain.Entities.OptionValue", "OptionValue")
.WithMany()
.HasForeignKey("OptionValueId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Prefab.Catalog.Domain.Entities.Product", "ProductVariant")
.WithMany("AxisValues")
.HasForeignKey("ProductVariantId")
.OnDelete(DeleteBehavior.NoAction)
.IsRequired();
b.Navigation("OptionDefinition");
b.Navigation("OptionValue");
b.Navigation("ProductVariant");
});
modelBuilder.Entity("Prefab.Data.Entities.AuditLogItem", b =>
{
b.HasOne("Prefab.Data.Entities.AuditLog", "AuditLog")
.WithMany("Items")
.HasForeignKey("AuditLogId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("AuditLog");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionDefinition", b =>
{
b.Navigation("Tiers");
b.Navigation("Values");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.OptionRuleSet", b =>
{
b.Navigation("Conditions");
});
modelBuilder.Entity("Prefab.Catalog.Domain.Entities.Product", b =>
{
b.Navigation("Attributes");
b.Navigation("AxisValues");
b.Navigation("Categories");
b.Navigation("Options");
b.Navigation("RuleSets");
b.Navigation("Variants");
});
modelBuilder.Entity("Prefab.Data.Entities.AuditLog", b =>
{
b.Navigation("Items");
});
#pragma warning restore 612, 618
}
}
}