using Distribution.Models; using Microsoft.EntityFrameworkCore; namespace Distribution.Data.Seed; public static class OperationsDataSeed { internal static readonly Guid ClosedSaleRunId = new("31000000-0000-0000-0000-000000000001"); internal static readonly Guid ActiveDeliveryRunId = new("31000000-0000-0000-0000-000000000002"); internal static readonly Guid Sale1Id = new("32000000-0000-0000-0000-000000000001"); internal static readonly Guid Sale2Id = new("32000000-0000-0000-0000-000000000002"); internal static readonly Guid Order1Id = new("33000000-0000-0000-0000-000000000001"); internal static readonly Guid Order2Id = new("33000000-0000-0000-0000-000000000002"); internal static readonly Guid OrderItem1Id = new("34000000-0000-0000-0000-000000000001"); internal static readonly Guid OrderItem2Id = new("34000000-0000-0000-0000-000000000002"); internal static readonly Guid OrderItem3Id = new("34000000-0000-0000-0000-000000000003"); internal static readonly Guid LoadingSheet1Id = new("35000000-0000-0000-0000-000000000001"); internal static readonly Guid LoadingSheetItem1Id = new("36000000-0000-0000-0000-000000000001"); internal static readonly Guid LoadingSheetItem2Id = new("36000000-0000-0000-0000-000000000002"); internal static readonly Guid DeliveryTask1Id = new("37000000-0000-0000-0000-000000000001"); public static void Apply(ModelBuilder modelBuilder) { modelBuilder.Entity().HasData( new DeliveryRun { Id = ClosedSaleRunId, RideType = RideType.Sale, Status = RideStatus.Closed, FK_VehicleId = MasterDataSeed.VanVehicleId, FK_DriverProfileId = MasterDataSeed.Driver1ProfileId, FK_RouteId = MasterDataSeed.ColomboRouteId, FK_SourceWarehouseId = MasterDataSeed.ColomboWarehouseId, Meterstart = 10500, Meterend = 10550, StartedAt = new DateTime(2026, 8, 25, 8, 0, 0), ActivatedAt = new DateTime(2026, 8, 25, 8, 15, 0), ClosedAt = new DateTime(2026, 8, 25, 14, 0, 0), CreatedAt = new DateTime(2026, 8, 25, 7, 30, 0), IsActive = true }, new DeliveryRun { Id = ActiveDeliveryRunId, RideType = RideType.Delivery, Status = RideStatus.Active, FK_VehicleId = MasterDataSeed.TruckVehicleId, FK_DriverProfileId = MasterDataSeed.Driver2ProfileId, FK_RouteId = MasterDataSeed.KandyRouteId, FK_SourceWarehouseId = MasterDataSeed.KandyWarehouseId, Meterstart = 20300, Meterend = 0, StartedAt = new DateTime(2026, 8, 30, 9, 0, 0), ActivatedAt = new DateTime(2026, 8, 30, 9, 20, 0), ClosedAt = null, CreatedAt = new DateTime(2026, 8, 30, 8, 45, 0), IsActive = true } ); modelBuilder.Entity().HasData( new Sale { Id = Sale1Id, SaleDate = new DateTime(2026, 8, 25, 9, 0, 0), FK_StoreId = MasterDataSeed.FortStoreId, CreatedByUserId = MasterDataSeed.SalesRep1UserId, FK_RideId = ClosedSaleRunId, TotalAmount = 3000m, Status = SaleStatus.Completed, PaymentStatus = PaymentStatus.Paid, FulfillImmediately = false, CompletedAt = new DateTime(2026, 8, 25, 9, 30, 0), CreatedAt = new DateTime(2026, 8, 25, 9, 0, 0), IsActive = true }, new Sale { Id = Sale2Id, SaleDate = new DateTime(2026, 8, 30, 10, 0, 0), FK_StoreId = MasterDataSeed.KandyStoreId, CreatedByUserId = MasterDataSeed.SalesRep2UserId, FK_RideId = ActiveDeliveryRunId, TotalAmount = 1200m, Status = SaleStatus.Pending, PaymentStatus = PaymentStatus.Pending, FulfillImmediately = false, CompletedAt = null, CreatedAt = new DateTime(2026, 8, 30, 10, 0, 0), IsActive = true } ); modelBuilder.Entity().HasData( new Order { Id = Order1Id, FK_SaleId = Sale1Id, OrderDate = new DateTime(2026, 8, 25, 9, 0, 0), FK_StoreId = MasterDataSeed.FortStoreId, CreatedByUserId = MasterDataSeed.SalesRep1UserId, TotalAmount = 3000m, Status = OrderStatus.Fulfilled, FulfilledAt = new DateTime(2026, 8, 25, 13, 0, 0), CreatedAt = new DateTime(2026, 8, 25, 9, 0, 0), IsActive = true }, new Order { Id = Order2Id, FK_SaleId = Sale2Id, OrderDate = new DateTime(2026, 8, 30, 10, 0, 0), FK_StoreId = MasterDataSeed.KandyStoreId, CreatedByUserId = MasterDataSeed.SalesRep2UserId, TotalAmount = 1200m, Status = OrderStatus.Pending, FulfilledAt = null, CreatedAt = new DateTime(2026, 8, 30, 10, 0, 0), IsActive = true } ); modelBuilder.Entity().HasData( new OrderItem { Id = OrderItem1Id, FK_OrderId = Order1Id, FK_ItemId = MasterDataSeed.Coke500ItemId, Quantity = 30, QuantityFulfilled = 30, UnitPrice = 60m, CreatedAt = new DateTime(2026, 8, 25, 9, 0, 0), IsActive = true }, new OrderItem { Id = OrderItem2Id, FK_OrderId = Order1Id, FK_ItemId = MasterDataSeed.LaysClassicItemId, Quantity = 24, QuantityFulfilled = 24, UnitPrice = 50m, CreatedAt = new DateTime(2026, 8, 25, 9, 0, 0), IsActive = true }, new OrderItem { Id = OrderItem3Id, FK_OrderId = Order2Id, FK_ItemId = MasterDataSeed.Coke1500ItemId, Quantity = 10, QuantityFulfilled = 0, UnitPrice = 120m, CreatedAt = new DateTime(2026, 8, 30, 10, 0, 0), IsActive = true } ); modelBuilder.Entity().HasData( new LoadingSheet { Id = LoadingSheet1Id, FK_RideId = ClosedSaleRunId, FK_SourceWarehouseId = MasterDataSeed.ColomboWarehouseId, Status = LoadingSheetStatus.ReceiptConfirmed, DispatchConfirmedAt = new DateTime(2026, 8, 25, 7, 45, 0), DispatchConfirmedBy = MasterDataSeed.Supervisor1UserId, ReceiptConfirmedAt = new DateTime(2026, 8, 25, 14, 5, 0), ReceiptConfirmedBy = MasterDataSeed.Driver1UserId, CreatedAt = new DateTime(2026, 8, 25, 7, 30, 0), IsActive = true } ); modelBuilder.Entity().HasData( new LoadingSheetItem { Id = LoadingSheetItem1Id, FK_LoadingSheetId = LoadingSheet1Id, FK_ItemId = MasterDataSeed.Coke500ItemId, QuantityDispatched = 50m, QuantityReceived = 50m, QuantityResolved = null }, new LoadingSheetItem { Id = LoadingSheetItem2Id, FK_LoadingSheetId = LoadingSheet1Id, FK_ItemId = MasterDataSeed.LaysClassicItemId, QuantityDispatched = 30m, QuantityReceived = 30m, QuantityResolved = null } ); modelBuilder.Entity().HasData( new DeliveryTask { Id = DeliveryTask1Id, FK_RideId = ActiveDeliveryRunId, FK_OrderId = Order2Id, Sequence = 1, Status = DeliveryTaskStatus.Pending, CustomerConfirmed = false, ConfirmedAt = null, Note = null, CreatedAt = new DateTime(2026, 8, 30, 10, 5, 0), IsActive = true } ); } }