// using System; using LiteCharms.Features.MidrandBooks.Postgres; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace LiteCharms.Features.MidrandBooks.Postgres.Migrations { [DbContext(typeof(MidrandBooksDbContext))] [Migration("20260602202421_AddedPaymentGatewayLedger")] partial class AddedPaymentGatewayLedger { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "10.0.8") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.AuthorBooks.Entities.AuthorBook", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AuthorId") .HasColumnType("bigint"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Enabled") .HasColumnType("boolean"); b.Property("ProductId") .HasColumnType("bigint"); b.Property("Ranking") .HasColumnType("integer"); b.Property("Rating") .HasColumnType("integer"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.HasKey("Id"); b.HasIndex("AuthorId"); b.HasIndex("ProductId"); b.ToTable("Books"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Authors.Entities.Author", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Biography") .HasMaxLength(2048) .HasColumnType("character varying(2048)"); b.Property("Company") .HasColumnType("text"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("Email") .IsRequired() .HasMaxLength(512) .HasColumnType("character varying(512)"); b.Property("Enabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(true); b.Property("ImageUrl") .IsRequired() .HasMaxLength(2048) .HasColumnType("character varying(2048)"); b.Property("LastName") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)"); b.Property("Name") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)"); b.Property("PublisherType") .HasColumnType("integer"); b.Property("ThumbnailImageUrl") .HasMaxLength(2048) .HasColumnType("character varying(2048)"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("VatNumber") .HasMaxLength(255) .HasColumnType("character varying(255)"); b.Property("Website") .HasMaxLength(1024) .HasColumnType("character varying(1024)"); b.HasKey("Id"); b.ToTable("Authors", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Categories.Entities.Category", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Enabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(true); b.Property("IsMain") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false); b.Property("Name") .IsRequired() .HasMaxLength(15) .HasColumnType("character varying(15)"); b.HasKey("Id"); b.ToTable("Categories", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Customers.Entities.Address", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("BuildingType") .HasColumnType("integer"); b.Property("City") .IsRequired() .HasColumnType("text"); b.Property("Country") .IsRequired() .HasColumnType("text"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("CustomerId") .HasColumnType("bigint"); b.Property("Enabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(true); b.Property("IsPrimary") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("PostalCode") .IsRequired() .HasColumnType("text"); b.Property("State") .IsRequired() .HasColumnType("text"); b.Property("Street") .IsRequired() .HasColumnType("text"); b.Property("Type") .HasColumnType("integer"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.HasKey("Id"); b.HasIndex("CustomerId"); b.ToTable("Addresses", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Customers.Entities.Contact", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("CustomerId") .HasColumnType("bigint"); b.Property("Email") .IsRequired() .HasColumnType("text"); b.Property("Enabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(true); b.Property("IsPrimary") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false); b.Property("LastName") .IsRequired() .HasColumnType("text"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("Phone") .IsRequired() .HasColumnType("text"); b.Property("Type") .HasColumnType("integer"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.HasKey("Id"); b.HasIndex("CustomerId"); b.ToTable("Contacts", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Customers.Entities.Customer", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Company") .HasColumnType("text"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("Email") .IsRequired() .HasColumnType("text"); b.Property("Enabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(true); b.Property("Phone") .IsRequired() .HasColumnType("text"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("VatNumber") .HasColumnType("text"); b.Property("Website") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.ToTable("Customers", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Orders.Entities.Order", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("CustomerId") .HasColumnType("bigint"); b.Property("InvoiceUrl") .HasColumnType("text"); b.Property("Notes") .HasMaxLength(1000) .HasColumnType("character varying(1000)"); b.Property("Status") .HasColumnType("integer"); b.Property("Total") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.HasKey("Id"); b.ToTable("Orders", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Orders.Entities.OrderItem", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AuthorBookId") .HasColumnType("bigint"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("OrderId") .HasColumnType("bigint"); b.Property("ProductPriceId") .HasColumnType("bigint"); b.Property("Quantity") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("AuthorBookId"); b.HasIndex("OrderId"); b.HasIndex("ProductPriceId"); b.ToTable("OrderItems", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Orders.Entities.Shipping", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AddressId") .HasColumnType("bigint"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("OrderId") .HasColumnType("bigint"); b.Property("ShippingProviderId") .HasColumnType("bigint"); b.Property("Status") .HasColumnType("integer"); b.Property("TrackingNumber") .HasMaxLength(255) .HasColumnType("character varying(255)"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.HasKey("Id"); b.HasIndex("AddressId"); b.HasIndex("OrderId") .IsUnique(); b.HasIndex("ShippingProviderId"); b.ToTable("Shippings", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Orders.Entities.ShippingProvider", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Enabled") .HasColumnType("boolean"); b.Property("Name") .HasColumnType("text"); b.Property("Price") .HasColumnType("numeric"); b.Property("TrackingUrl") .HasColumnType("text"); b.Property("Type") .HasColumnType("integer"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.HasKey("Id"); b.ToTable("ShippingProviders"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Pages.Entities.BookPage", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AuthorBookId") .HasColumnType("bigint"); b.Property("Content") .IsRequired() .HasColumnType("bytea"); b.Property("ContentType") .HasColumnType("integer"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("Enabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(true); b.PrimitiveCollection("Notes") .HasColumnType("text[]"); b.Property("Number") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasDefaultValue(0); b.Property("Type") .HasColumnType("integer"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.HasKey("Id"); b.HasIndex("AuthorBookId"); b.ToTable("BookPages", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Payments.Entities.Payment", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Amount") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("OrderId") .HasColumnType("bigint"); b.Property("Reference") .IsRequired() .HasColumnType("text"); b.Property("Status") .HasColumnType("integer"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.HasKey("Id"); b.HasIndex("OrderId"); b.ToTable("Payments", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Payments.Entities.PaymentGateway", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("Enabled") .HasColumnType("boolean"); b.Property("IsSandbox") .HasColumnType("boolean"); b.Property("MerchantId") .IsRequired() .HasColumnType("text"); b.Property("MerchantKey") .IsRequired() .HasColumnType("text"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property("Website") .HasColumnType("text"); b.HasKey("Id"); b.ToTable("Gateways", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Payments.Entities.PaymentGatewayLedger", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AmountFee") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)"); b.Property("AmountGross") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)"); b.Property("AmountNet") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("CustomerEmail") .HasColumnType("text"); b.Property("MerchantPaymentId") .HasColumnType("text"); b.Property("OrderId") .HasColumnType("bigint"); b.Property("PayfastPaymentId") .IsRequired() .HasColumnType("text"); b.Property("PaymentId") .HasColumnType("bigint"); b.Property("PaymentStatus") .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("OrderId"); b.HasIndex("PaymentId"); b.ToTable("GatewayLedger", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Payments.Entities.PaymentLedger", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("CustomerId") .HasColumnType("bigint"); b.Property("MerchantPaymentId") .HasColumnType("text"); b.Property("OrderId") .HasColumnType("bigint"); b.Property("PaymentId") .HasColumnType("bigint"); b.Property("Status") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("CustomerId"); b.HasIndex("OrderId"); b.HasIndex("PaymentId"); b.ToTable("Ledger", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Payments.Entities.Refund", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Amount") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("OrderId") .HasColumnType("bigint"); b.Property("Reason") .HasMaxLength(1000) .HasColumnType("character varying(1000)"); b.Property("Status") .HasColumnType("integer"); b.Property("Type") .HasColumnType("integer"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.HasKey("Id"); b.HasIndex("OrderId"); b.ToTable("Refunds", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Products.Entities.Product", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("Description") .HasMaxLength(1024) .HasColumnType("character varying(1024)"); b.Property("Enabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false); b.Property("ImageUrl") .HasMaxLength(1024) .HasColumnType("character varying(1024)"); b.Property("Name") .IsRequired() .HasMaxLength(255) .HasColumnType("character varying(255)"); b.Property("Summary") .IsRequired() .HasMaxLength(512) .HasColumnType("character varying(512)"); b.PrimitiveCollection("ThumbnailUrls") .HasColumnType("text[]"); b.Property("Type") .HasColumnType("integer"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.HasKey("Id"); b.ToTable("Products", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Products.Entities.ProductCategory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CategoryId") .HasColumnType("bigint"); b.Property("ProductId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("CategoryId"); b.HasIndex("ProductId"); b.ToTable("ProductCategories", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Products.Entities.ProductInventory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("ProductId") .HasColumnType("bigint"); b.Property("ProductPriceId") .HasColumnType("bigint"); b.Property("Status") .HasColumnType("integer"); b.Property("TotalAllocated") .HasColumnType("integer"); b.Property("TotalReserved") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("ProductId"); b.HasIndex("ProductPriceId"); b.ToTable("Inventories", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Products.Entities.ProductPrice", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Amount") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.Property("Discount") .HasPrecision(18, 2) .HasColumnType("numeric(18,2)"); b.Property("Enabled") .ValueGeneratedOnAdd() .HasColumnType("boolean") .HasDefaultValue(false); b.Property("ProductId") .HasColumnType("bigint"); b.Property("UpdatedAt") .ValueGeneratedOnAdd() .HasColumnType("timestamp with time zone") .HasDefaultValueSql("now()"); b.HasKey("Id"); b.HasIndex("ProductId"); b.ToTable("Prices", (string)null); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.AuthorBooks.Entities.AuthorBook", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Authors.Entities.Author", "Author") .WithMany("Books") .HasForeignKey("AuthorId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("LiteCharms.Features.MidrandBooks.Products.Entities.Product", "Product") .WithMany() .HasForeignKey("ProductId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Author"); b.Navigation("Product"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Authors.Entities.Author", b => { b.OwnsMany("LiteCharms.Features.Models.SocialMedia", "SocialMedia", b1 => { b1.Property("AuthorId"); b1.Property("__synthesizedOrdinal") .ValueGeneratedOnAdd(); b1.Property("ImageUrl"); b1.Property("Name"); b1.Property("Type"); b1.Property("Url"); b1.HasKey("AuthorId", "__synthesizedOrdinal"); b1.ToTable("Authors"); b1 .ToJson("SocialMedia") .HasColumnType("jsonb"); b1.WithOwner() .HasForeignKey("AuthorId"); }); b.Navigation("SocialMedia"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Customers.Entities.Address", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Customers.Entities.Customer", "Customer") .WithMany("Addresses") .HasForeignKey("CustomerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Customer"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Customers.Entities.Contact", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Customers.Entities.Customer", "Customer") .WithMany("Contacts") .HasForeignKey("CustomerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Customer"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Customers.Entities.Customer", b => { b.OwnsMany("LiteCharms.Features.Models.SocialMedia", "SocialMedia", b1 => { b1.Property("CustomerId"); b1.Property("__synthesizedOrdinal") .ValueGeneratedOnAdd(); b1.Property("ImageUrl"); b1.Property("Name"); b1.Property("Type"); b1.Property("Url"); b1.HasKey("CustomerId", "__synthesizedOrdinal"); b1.ToTable("Customers"); b1 .ToJson("SocialMedia") .HasColumnType("jsonb"); b1.WithOwner() .HasForeignKey("CustomerId"); }); b.Navigation("SocialMedia"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Orders.Entities.OrderItem", b => { b.HasOne("LiteCharms.Features.MidrandBooks.AuthorBooks.Entities.AuthorBook", "AuthorBook") .WithMany() .HasForeignKey("AuthorBookId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("LiteCharms.Features.MidrandBooks.Orders.Entities.Order", "Order") .WithMany("OrderItems") .HasForeignKey("OrderId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("LiteCharms.Features.MidrandBooks.Products.Entities.ProductPrice", "ProductPrice") .WithMany() .HasForeignKey("ProductPriceId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("AuthorBook"); b.Navigation("Order"); b.Navigation("ProductPrice"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Orders.Entities.Shipping", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Customers.Entities.Address", "Address") .WithMany() .HasForeignKey("AddressId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("LiteCharms.Features.MidrandBooks.Orders.Entities.Order", "Order") .WithOne("Shipping") .HasForeignKey("LiteCharms.Features.MidrandBooks.Orders.Entities.Shipping", "OrderId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("LiteCharms.Features.MidrandBooks.Orders.Entities.ShippingProvider", "ShippingProvider") .WithMany("Shippings") .HasForeignKey("ShippingProviderId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Address"); b.Navigation("Order"); b.Navigation("ShippingProvider"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Pages.Entities.BookPage", b => { b.HasOne("LiteCharms.Features.MidrandBooks.AuthorBooks.Entities.AuthorBook", "Book") .WithMany("Pages") .HasForeignKey("AuthorBookId") .OnDelete(DeleteBehavior.NoAction) .IsRequired(); b.OwnsMany("LiteCharms.Features.Models.PageReference", "References", b1 => { b1.Property("BookPageId"); b1.Property("__synthesizedOrdinal") .ValueGeneratedOnAdd(); b1.Property("Description"); b1.Property("Tag"); b1.Property("Url"); b1.HasKey("BookPageId", "__synthesizedOrdinal"); b1.ToTable("BookPages"); b1 .ToJson("References") .HasColumnType("jsonb"); b1.WithOwner() .HasForeignKey("BookPageId"); }); b.Navigation("Book"); b.Navigation("References"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Payments.Entities.Payment", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Orders.Entities.Order", "Order") .WithMany() .HasForeignKey("OrderId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Order"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Payments.Entities.PaymentGatewayLedger", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Orders.Entities.Order", "Order") .WithMany() .HasForeignKey("OrderId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("LiteCharms.Features.MidrandBooks.Payments.Entities.Payment", "Payment") .WithMany() .HasForeignKey("PaymentId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Order"); b.Navigation("Payment"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Payments.Entities.PaymentLedger", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Customers.Entities.Customer", "Customer") .WithMany() .HasForeignKey("CustomerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("LiteCharms.Features.MidrandBooks.Orders.Entities.Order", "Order") .WithMany() .HasForeignKey("OrderId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("LiteCharms.Features.MidrandBooks.Payments.Entities.Payment", "Payment") .WithMany() .HasForeignKey("PaymentId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Customer"); b.Navigation("Order"); b.Navigation("Payment"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Payments.Entities.Refund", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Orders.Entities.Order", "Order") .WithMany("Refunds") .HasForeignKey("OrderId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Order"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Products.Entities.Product", b => { b.OwnsOne("LiteCharms.Features.Models.ProductMetadata", "Metadata", b1 => { b1.Property("ProductId"); b1.Property("CopyrightInfo"); b1.Property("ManufactureDate"); b1.Property("Manufacturer"); b1.Property("SerialNumber"); b1.HasKey("ProductId"); b1.ToTable("Products"); b1 .ToJson("Metadata") .HasColumnType("jsonb"); b1.WithOwner() .HasForeignKey("ProductId"); }); b.Navigation("Metadata"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Products.Entities.ProductCategory", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Categories.Entities.Category", "Category") .WithMany() .HasForeignKey("CategoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("LiteCharms.Features.MidrandBooks.Products.Entities.Product", "Product") .WithMany("Categories") .HasForeignKey("ProductId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Category"); b.Navigation("Product"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Products.Entities.ProductInventory", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Products.Entities.Product", "Product") .WithMany() .HasForeignKey("ProductId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("LiteCharms.Features.MidrandBooks.Products.Entities.ProductPrice", "Price") .WithMany() .HasForeignKey("ProductPriceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Price"); b.Navigation("Product"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Products.Entities.ProductPrice", b => { b.HasOne("LiteCharms.Features.MidrandBooks.Products.Entities.Product", "Product") .WithMany("Prices") .HasForeignKey("ProductId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Product"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.AuthorBooks.Entities.AuthorBook", b => { b.Navigation("Pages"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Authors.Entities.Author", b => { b.Navigation("Books"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Customers.Entities.Customer", b => { b.Navigation("Addresses"); b.Navigation("Contacts"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Orders.Entities.Order", b => { b.Navigation("OrderItems"); b.Navigation("Refunds"); b.Navigation("Shipping"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Orders.Entities.ShippingProvider", b => { b.Navigation("Shippings"); }); modelBuilder.Entity("LiteCharms.Features.MidrandBooks.Products.Entities.Product", b => { b.Navigation("Categories"); b.Navigation("Prices"); }); #pragma warning restore 612, 618 } } }