// <auto-generated />
using System;
using Atomx.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;

#nullable disable

namespace Atomx.Data.Migrations
{
    [DbContext(typeof(DataContext))]
    partial class DataContextModelSnapshot : ModelSnapshot
    {
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "10.0.0")
                .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Atomx.Common.Entities.Address", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("AddressDetails")
                        .IsRequired()
                        .HasColumnType("varchar(256)");

                    b.Property<string>("City")
                        .IsRequired()
                        .HasColumnType("varchar(100)");

                    b.Property<long>("CityId")
                        .HasColumnType("bigint");

                    b.Property<string>("Company")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<int>("Count")
                        .HasColumnType("integer");

                    b.Property<string>("Country")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<long>("CountryId")
                        .HasColumnType("bigint");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<string>("FullAddress")
                        .IsRequired()
                        .HasColumnType("varchar(1024)");

                    b.Property<bool>("IsDelete")
                        .HasColumnType("boolean");

                    b.Property<bool>("IsVirtual")
                        .HasColumnType("boolean");

                    b.Property<decimal>("Latitude")
                        .HasColumnType("decimal(10,6)");

                    b.Property<decimal>("Longitude")
                        .HasColumnType("decimal(10,6)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(128)");

                    b.Property<string>("Phone")
                        .IsRequired()
                        .HasColumnType("varchar(20)");

                    b.Property<string>("PostalCode")
                        .IsRequired()
                        .HasColumnType("varchar(15)");

                    b.Property<string>("Province")
                        .IsRequired()
                        .HasColumnType("varchar(100)");

                    b.Property<long>("ProvinceId")
                        .HasColumnType("bigint");

                    b.Property<string>("Region")
                        .IsRequired()
                        .HasColumnType("varchar(100)");

                    b.Property<long>("RegionId")
                        .HasColumnType("bigint");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<long>("UserId")
                        .HasColumnType("bigint");

                    b.HasKey("Id");

                    b.ToTable("Addresses");
                });

            modelBuilder.Entity("Atomx.Common.Entities.Admin", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("Avatar")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("LastIp")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<DateTime?>("LastLogin")
                        .HasColumnType("timestamptz");

                    b.Property<int>("LoginCount")
                        .HasColumnType("integer");

                    b.Property<string>("Mobile")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("Password")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<int>("RoleId")
                        .HasColumnType("integer");

                    b.Property<int>("Status")
                        .HasColumnType("integer");

                    b.Property<string>("TimeOffset")
                        .IsRequired()
                        .HasColumnType("varchar(4)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Username")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.HasKey("Id");

                    b.ToTable("Admins");
                });

            modelBuilder.Entity("Atomx.Common.Entities.AppVersion", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("AppName")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("Content")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<int>("Platform")
                        .HasColumnType("integer");

                    b.Property<long>("SiteId")
                        .HasColumnType("bigint");

                    b.Property<int>("Status")
                        .HasColumnType("integer");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Version")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("VersionDate")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<int>("VersionState")
                        .HasColumnType("integer");

                    b.Property<string>("VersionX")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("VersionY")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("VersionZ")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.HasKey("Id");

                    b.ToTable("AppVersions");
                });

            modelBuilder.Entity("Atomx.Common.Entities.Area", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<bool>("AllowShipping")
                        .HasColumnType("boolean");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<bool>("Enabled")
                        .HasColumnType("boolean");

                    b.Property<string>("Initial")
                        .IsRequired()
                        .HasColumnType("varchar(1)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<int>("NumericISOCode")
                        .HasColumnType("integer");

                    b.Property<long>("ParentId")
                        .HasColumnType("bigint");

                    b.Property<string>("ThreeLetterISOCode")
                        .IsRequired()
                        .HasColumnType("varchar(3)");

                    b.Property<string>("TwoLetterISOCode")
                        .IsRequired()
                        .HasColumnType("varchar(2)");

                    b.HasKey("Id");

                    b.ToTable("Areas");
                });

            modelBuilder.Entity("Atomx.Common.Entities.Category", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("Banner")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<int>("Count")
                        .HasColumnType("integer");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<int>("Depth")
                        .HasColumnType("integer");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<bool>("Enabled")
                        .HasColumnType("boolean");

                    b.Property<string>("FilterAttributes")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<string>("Image")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<bool>("IsNode")
                        .HasColumnType("boolean");

                    b.Property<string>("MetaDescription")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<string>("MetaKeywords")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(25)");

                    b.Property<long>("ParentId")
                        .HasColumnType("bigint");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasColumnType("varchar(100)");

                    b.Property<long>("SiteId")
                        .HasColumnType("bigint");

                    b.Property<string>("Slug")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<int>("Type")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("Categories");
                });

            modelBuilder.Entity("Atomx.Common.Entities.Currency", b =>
                {
                    b.Property<int>("Id")
                        .HasColumnType("integer");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("CurrencyCode")
                        .IsRequired()
                        .HasColumnType("varchar(10)");

                    b.Property<string>("CustomFormatting")
                        .IsRequired()
                        .HasColumnType("varchar(20)");

                    b.Property<string>("DisplayLocale")
                        .IsRequired()
                        .HasColumnType("varchar(15)");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<bool>("EnableDisplay")
                        .HasColumnType("boolean");

                    b.Property<bool>("EnablePay")
                        .HasColumnType("boolean");

                    b.Property<bool>("Enabled")
                        .HasColumnType("boolean");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<decimal>("Rate")
                        .HasColumnType("decimal(16, 4)");

                    b.Property<string>("Symbolic")
                        .IsRequired()
                        .HasColumnType("varchar(8)");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("Currencies");
                });

            modelBuilder.Entity("Atomx.Common.Entities.CurrencyChannelRelation", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<int>("CurrencyId")
                        .HasColumnType("integer");

                    b.Property<int>("EndTime")
                        .HasColumnType("integer");

                    b.Property<string>("Extended")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<int>("PayChannelId")
                        .HasColumnType("integer");

                    b.Property<decimal>("Rate")
                        .HasColumnType("numeric");

                    b.Property<int>("StartTime")
                        .HasColumnType("integer");

                    b.Property<int>("Status")
                        .HasColumnType("integer");

                    b.Property<int>("TimeZone")
                        .HasColumnType("integer");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("CurrencyChannelRelations");
                });

            modelBuilder.Entity("Atomx.Common.Entities.Language", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Culture")
                        .IsRequired()
                        .HasColumnType("varchar(25)");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<bool>("Enabled")
                        .HasColumnType("boolean");

                    b.Property<string>("FlagImage")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<string>("ResourceVersion")
                        .IsRequired()
                        .HasColumnType("varchar(25)");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("Languages");
                });

            modelBuilder.Entity("Atomx.Common.Entities.LocaleResource", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<int>("LanguageId")
                        .HasColumnType("integer");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Value")
                        .IsRequired()
                        .HasColumnType("varchar(1000)");

                    b.HasKey("Id");

                    b.ToTable("LocaleResources");
                });

            modelBuilder.Entity("Atomx.Common.Entities.LocalizedProperty", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<long>("EntityId")
                        .HasColumnType("bigint");

                    b.Property<string>("Key")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<int>("LanguageNumber")
                        .HasColumnType("integer");

                    b.Property<int>("Type")
                        .HasColumnType("integer");

                    b.Property<string>("Value")
                        .IsRequired()
                        .HasColumnType("text");

                    b.HasKey("Id");

                    b.ToTable("LocalizedProperties");
                });

            modelBuilder.Entity("Atomx.Common.Entities.Menu", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<int>("Depth")
                        .HasColumnType("integer");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<bool>("Enabled")
                        .HasColumnType("boolean");

                    b.Property<string>("Icon")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<bool>("IsLink")
                        .HasColumnType("boolean");

                    b.Property<string>("Key")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<long>("ParentId")
                        .HasColumnType("bigint");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasColumnType("varchar(100)");

                    b.Property<int>("Type")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.HasKey("Id");

                    b.ToTable("Menus");
                });

            modelBuilder.Entity("Atomx.Common.Entities.MessageTemplate", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<bool>("Enabled")
                        .HasColumnType("boolean");

                    b.Property<string>("Key")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(256)");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasColumnType("varchar(256)");

                    b.Property<int>("Type")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("MessageTemplates");
                });

            modelBuilder.Entity("Atomx.Common.Entities.PaymentChannel", b =>
                {
                    b.Property<int>("Id")
                        .HasColumnType("integer");

                    b.Property<string>("Account")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<string>("Config")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("varchar(512)");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(20)");

                    b.Property<int>("Network")
                        .HasColumnType("integer");

                    b.Property<int>("Status")
                        .HasColumnType("integer");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasColumnType("varchar(20)");

                    b.Property<int>("Type")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("PaymentChannels");
                });

            modelBuilder.Entity("Atomx.Common.Entities.Permission", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("Category")
                        .IsRequired()
                        .HasColumnType("varchar(128)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(128)");

                    b.HasKey("Id");

                    b.ToTable("Permissions");
                });

            modelBuilder.Entity("Atomx.Common.Entities.Product", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<long>("CategoryId")
                        .HasColumnType("bigint");

                    b.Property<string>("CategoryPath")
                        .HasColumnType("varchar(200)");

                    b.Property<long>("CorporationId")
                        .HasColumnType("bigint");

                    b.Property<long>("CorporationStaffId")
                        .HasColumnType("bigint");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<bool>("Deleted")
                        .HasColumnType("boolean");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Description")
                        .HasColumnType("varchar(255)");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<string>("Extended")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("Feature")
                        .HasColumnType("varchar(255)");

                    b.Property<string>("Image")
                        .HasColumnType("varchar(256)");

                    b.Property<int>("InventoryMethod")
                        .HasColumnType("integer");

                    b.Property<long>("ManufacturerId")
                        .HasColumnType("bigint");

                    b.Property<decimal>("MarketPrice")
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal?>("MaxWeight")
                        .HasColumnType("decimal(6,2)");

                    b.Property<decimal?>("MinWeight")
                        .HasColumnType("decimal(6,2)");

                    b.Property<string>("Photos")
                        .HasColumnType("text");

                    b.Property<int>("PictureCount")
                        .HasColumnType("integer");

                    b.Property<decimal>("Price")
                        .HasColumnType("decimal(18,4)");

                    b.Property<long>("ProductTypeId")
                        .HasColumnType("bigint");

                    b.Property<int>("ReviewStatus")
                        .HasColumnType("integer");

                    b.Property<string>("SIN")
                        .HasColumnType("varchar(20)");

                    b.Property<int>("SalesQuantity")
                        .HasColumnType("integer");

                    b.Property<string>("SkuPrices")
                        .HasColumnType("text");

                    b.Property<string>("SpecificationJson")
                        .HasColumnType("text");

                    b.Property<int>("Status")
                        .HasColumnType("integer");

                    b.Property<int>("StockQuantity")
                        .HasColumnType("integer");

                    b.Property<long>("StoreId")
                        .HasColumnType("bigint");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<decimal?>("Weight")
                        .HasColumnType("decimal(6,2)");

                    b.HasKey("Id");

                    b.ToTable("Products");
                });

            modelBuilder.Entity("Atomx.Common.Entities.ProductAttribute", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<long>("CategoryId")
                        .HasColumnType("bigint");

                    b.Property<int>("ControlType")
                        .HasColumnType("integer");

                    b.Property<int>("Count")
                        .HasColumnType("integer");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<bool>("IsRequired")
                        .HasColumnType("boolean");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<long>("ParentId")
                        .HasColumnType("bigint");

                    b.Property<int>("Status")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<bool>("WeightIsRequired")
                        .HasColumnType("boolean");

                    b.Property<int>("WeightUnit")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.ToTable("ProductAttributes");
                });

            modelBuilder.Entity("Atomx.Common.Entities.ProductAttributeCombination", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("AttributesJson")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<long>("CorporationId")
                        .HasColumnType("bigint");

                    b.Property<bool>("Enabled")
                        .HasColumnType("boolean");

                    b.Property<long>("ManufacturerId")
                        .HasColumnType("bigint");

                    b.Property<int>("Mark")
                        .HasColumnType("integer");

                    b.Property<decimal>("MarketPrice")
                        .HasColumnType("decimal(18,4)");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<decimal>("Price")
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("ProcessCharge")
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("ProcessCost")
                        .HasColumnType("decimal(18,4)");

                    b.Property<long>("ProductId")
                        .HasColumnType("bigint");

                    b.Property<int>("SalesQuantity")
                        .HasColumnType("integer");

                    b.Property<string>("SkuNumber")
                        .IsRequired()
                        .HasColumnType("varchar(20)");

                    b.Property<int>("StockQuantity")
                        .HasColumnType("integer");

                    b.Property<decimal>("Surcharge")
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("SurchargeCost")
                        .HasColumnType("decimal(18,4)");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<decimal>("Weight")
                        .HasColumnType("decimal(18,4)");

                    b.Property<int>("WeightUnit")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.ToTable("ProductAttributeCombinations");
                });

            modelBuilder.Entity("Atomx.Common.Entities.ProductAttributeOption", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<long>("AttributeId")
                        .HasColumnType("bigint");

                    b.Property<int>("Count")
                        .HasColumnType("integer");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<bool>("Standard")
                        .HasColumnType("boolean");

                    b.Property<int>("Status")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Value")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.HasKey("Id");

                    b.ToTable("ProductAttributeOptions");
                });

            modelBuilder.Entity("Atomx.Common.Entities.ProductAttributeRelation", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<long>("AttributeId")
                        .HasColumnType("bigint");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<bool>("Image")
                        .HasColumnType("boolean");

                    b.Property<long>("ProductId")
                        .HasColumnType("bigint");

                    b.HasKey("Id");

                    b.ToTable("ProductAttributeRelations");
                });

            modelBuilder.Entity("Atomx.Common.Entities.ProductAttributeValue", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<string>("Image")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<bool>("IsAddWeight")
                        .HasColumnType("boolean");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<long>("OptionId")
                        .HasColumnType("bigint");

                    b.Property<long>("ProductAttributeRelationId")
                        .HasColumnType("bigint");

                    b.Property<long>("ProductId")
                        .HasColumnType("bigint");

                    b.Property<decimal>("Weight")
                        .HasColumnType("decimal(18,4)");

                    b.Property<int>("WeightUnit")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.ToTable("ProductAttributeValues");
                });

            modelBuilder.Entity("Atomx.Common.Entities.ProductInventory", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<long>("CorporationId")
                        .HasColumnType("bigint");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<long>("ProductAttributeCombinationId")
                        .HasColumnType("bigint");

                    b.Property<long>("ProductId")
                        .HasColumnType("bigint");

                    b.Property<int>("StockQuantity")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<long>("WarehouseId")
                        .HasColumnType("bigint");

                    b.HasKey("Id");

                    b.ToTable("ProductInventories");
                });

            modelBuilder.Entity("Atomx.Common.Entities.ProductInventoryLog", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<int>("AfterStock")
                        .HasColumnType("integer");

                    b.Property<int>("BeforeStock")
                        .HasColumnType("integer");

                    b.Property<int>("ChangeAmount")
                        .HasColumnType("integer");

                    b.Property<long>("CorporationId")
                        .HasColumnType("bigint");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<long>("ManufacturerId")
                        .HasColumnType("bigint");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<long?>("Operator")
                        .HasColumnType("bigint");

                    b.Property<long>("OrderId")
                        .HasColumnType("bigint");

                    b.Property<long>("ProductAttributeCombinationId")
                        .HasColumnType("bigint");

                    b.Property<long>("ProductId")
                        .HasColumnType("bigint");

                    b.Property<long>("StoreId")
                        .HasColumnType("bigint");

                    b.Property<int?>("Type")
                        .HasColumnType("integer");

                    b.Property<long>("WarehouseId")
                        .HasColumnType("bigint");

                    b.Property<decimal>("Weight")
                        .HasColumnType("decimal(18,4)");

                    b.HasKey("Id");

                    b.ToTable("ProductInventoryLogs");
                });

            modelBuilder.Entity("Atomx.Common.Entities.Role", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("Count")
                        .HasColumnType("integer");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("varchar(255)");

                    b.Property<bool>("Enabled")
                        .HasColumnType("boolean");

                    b.Property<bool>("IsSystemRole")
                        .HasColumnType("boolean");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("Permission")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<int>("Type")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("Roles");
                });

            modelBuilder.Entity("Atomx.Common.Entities.Setting", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("Content")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("Key")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<long>("SiteId")
                        .HasColumnType("bigint");

                    b.Property<int>("Type")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.ToTable("Settings");
                });

            modelBuilder.Entity("Atomx.Common.Entities.SiteApp", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<bool>("Enabled")
                        .HasColumnType("boolean");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<int>("Type")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("SiteApps");
                });

            modelBuilder.Entity("Atomx.Common.Entities.SpecificationAttribute", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<long>("CategoryId")
                        .HasColumnType("bigint");

                    b.Property<int>("ControlType")
                        .HasColumnType("integer");

                    b.Property<int>("Count")
                        .HasColumnType("integer");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.Property<long>("ParentId")
                        .HasColumnType("bigint");

                    b.Property<int>("Status")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("SpecificationAttributes");
                });

            modelBuilder.Entity("Atomx.Common.Entities.SpecificationAttributeOption", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<int>("Count")
                        .HasColumnType("integer");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<int>("DisplayOrder")
                        .HasColumnType("integer");

                    b.Property<long>("SpecificationId")
                        .HasColumnType("bigint");

                    b.Property<int>("Status")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Value")
                        .IsRequired()
                        .HasColumnType("varchar(50)");

                    b.HasKey("Id");

                    b.ToTable("SpecificationAttributeOptions");
                });

            modelBuilder.Entity("Atomx.Common.Entities.UploadFile", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("ContentType")
                        .IsRequired()
                        .HasColumnType("varchar(32)");

                    b.Property<string>("CreateBy")
                        .IsRequired()
                        .HasColumnType("varchar(32)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<long>("CreateUid")
                        .HasColumnType("bigint");

                    b.Property<string>("Extension")
                        .IsRequired()
                        .HasColumnType("varchar(12)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasColumnType("varchar(128)");

                    b.Property<string>("SHA256Hash")
                        .IsRequired()
                        .HasColumnType("varchar(128)");

                    b.Property<long>("SiteId")
                        .HasColumnType("bigint");

                    b.Property<int>("Size")
                        .HasColumnType("integer");

                    b.Property<int>("Type")
                        .HasColumnType("integer");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("UploadFiles");
                });

            modelBuilder.Entity("Atomx.Common.Entities.User", b =>
                {
                    b.Property<long>("Id")
                        .HasColumnType("bigint");

                    b.Property<string>("Avatar")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("timestamptz");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("Mobile")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasColumnType("varchar(64)");

                    b.Property<string>("Password")
                        .IsRequired()
                        .HasColumnType("varchar(32)");

                    b.Property<DateTime?>("UpdateTime")
                        .HasColumnType("timestamptz");

                    b.HasKey("Id");

                    b.ToTable("Users");
                });
#pragma warning restore 612, 618
        }
    }
}
