Add scheme data model and migrations

This commit is contained in:
2026-08-21 14:10:40 +05:30
parent c9f5006727
commit f7101800cd
8 changed files with 694 additions and 0 deletions
@@ -196,6 +196,9 @@ namespace Distribution.Migrations
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)");
b.Property<decimal?>("CostPrice")
.HasColumnType("decimal(65,30)");
b.Property<string>("Description")
.HasColumnType("longtext");
@@ -819,6 +822,135 @@ namespace Distribution.Migrations
b.ToTable("Regions");
});
modelBuilder.Entity("Distribution.Models.Scheme", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<bool>("AgentLimitExempt")
.HasColumnType("tinyint(1)");
b.Property<decimal?>("BaselineExpectedSales")
.HasColumnType("decimal(65,30)");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)");
b.Property<DateTime>("DateRangeFrom")
.HasColumnType("datetime(6)");
b.Property<DateTime>("DateRangeTo")
.HasColumnType("datetime(6)");
b.Property<string>("EligibleSegment")
.HasColumnType("longtext");
b.Property<Guid?>("FK_FreeItemId")
.HasColumnType("char(36)");
b.Property<Guid?>("FK_RegionId")
.HasColumnType("char(36)");
b.Property<Guid?>("FK_TriggerItemId")
.HasColumnType("char(36)");
b.Property<decimal?>("FreeQty")
.HasColumnType("decimal(65,30)");
b.Property<bool>("IsActive")
.HasColumnType("tinyint(1)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("RuleConfig")
.HasColumnType("longtext");
b.Property<int>("RuleType")
.HasColumnType("int");
b.Property<int?>("TriggerQty")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("FK_FreeItemId");
b.HasIndex("FK_RegionId");
b.HasIndex("FK_TriggerItemId");
b.ToTable("Schemes");
});
modelBuilder.Entity("Distribution.Models.SchemeBundleComponent", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<Guid>("FK_ItemId")
.HasColumnType("char(36)");
b.Property<Guid>("FK_SchemeId")
.HasColumnType("char(36)");
b.Property<int>("Qty")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("FK_ItemId");
b.HasIndex("FK_SchemeId", "FK_ItemId")
.IsUnique();
b.ToTable("SchemeBundleComponents");
});
modelBuilder.Entity("Distribution.Models.SchemeRedemption", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<decimal?>("DiscountAmount")
.HasColumnType("decimal(65,30)");
b.Property<Guid?>("FK_FreeItemId")
.HasColumnType("char(36)");
b.Property<Guid?>("FK_OrderId")
.HasColumnType("char(36)");
b.Property<Guid>("FK_SchemeId")
.HasColumnType("char(36)");
b.Property<Guid?>("FieldInvoiceId")
.HasColumnType("char(36)");
b.Property<decimal?>("FreeItemCostValue")
.HasColumnType("decimal(65,30)");
b.Property<decimal?>("FreeQty")
.HasColumnType("decimal(65,30)");
b.Property<DateTime>("RedeemedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("FK_FreeItemId");
b.HasIndex("FK_OrderId");
b.HasIndex("FK_SchemeId");
b.ToTable("SchemeRedemptions");
});
modelBuilder.Entity("Distribution.Models.RideCancelRequest", b =>
{
b.Property<Guid>("Id")
@@ -2939,6 +3071,25 @@ namespace Distribution.Migrations
b.Navigation("Role");
});
modelBuilder.Entity("Distribution.Models.PriceListItem", b =>
{
b.HasOne("Distribution.Models.Item", "Item")
.WithMany()
.HasForeignKey("FK_ItemId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Distribution.Models.PriceList", "PriceList")
.WithMany("Items")
.HasForeignKey("FK_PriceListId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Item");
b.Navigation("PriceList");
});
modelBuilder.Entity("Distribution.Models.Route", b =>
{
b.HasOne("Distribution.Models.Region", "Region")
@@ -2950,6 +3101,73 @@ namespace Distribution.Migrations
b.Navigation("Region");
});
modelBuilder.Entity("Distribution.Models.Scheme", b =>
{
b.HasOne("Distribution.Models.Item", "FreeItem")
.WithMany()
.HasForeignKey("FK_FreeItemId")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("Distribution.Models.Region", "Region")
.WithMany()
.HasForeignKey("FK_RegionId");
b.HasOne("Distribution.Models.Item", "TriggerItem")
.WithMany()
.HasForeignKey("FK_TriggerItemId")
.OnDelete(DeleteBehavior.Restrict);
b.Navigation("FreeItem");
b.Navigation("Region");
b.Navigation("TriggerItem");
});
modelBuilder.Entity("Distribution.Models.SchemeBundleComponent", b =>
{
b.HasOne("Distribution.Models.Item", "Item")
.WithMany()
.HasForeignKey("FK_ItemId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Distribution.Models.Scheme", "Scheme")
.WithMany("BundleComponents")
.HasForeignKey("FK_SchemeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Item");
b.Navigation("Scheme");
});
modelBuilder.Entity("Distribution.Models.SchemeRedemption", b =>
{
b.HasOne("Distribution.Models.Item", "FreeItem")
.WithMany()
.HasForeignKey("FK_FreeItemId")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("Distribution.Models.Order", "Order")
.WithMany()
.HasForeignKey("FK_OrderId")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("Distribution.Models.Scheme", "Scheme")
.WithMany("Redemptions")
.HasForeignKey("FK_SchemeId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("FreeItem");
b.Navigation("Order");
b.Navigation("Scheme");
});
modelBuilder.Entity("Distribution.Models.StockBalance", b =>
{
b.HasOne("Distribution.Models.Item", "Item")
@@ -3135,6 +3353,13 @@ namespace Distribution.Migrations
{
b.Navigation("Items");
});
modelBuilder.Entity("Distribution.Models.Scheme", b =>
{
b.Navigation("BundleComponents");
b.Navigation("Redemptions");
});
#pragma warning restore 612, 618
}
}