173 lines
7.9 KiB
C#
173 lines
7.9 KiB
C#
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<DeliveryRun>().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<Sale>().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<Order>().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<OrderItem>().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<LoadingSheet>().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<LoadingSheetItem>().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<DeliveryTask>().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
|
|
}
|
|
);
|
|
}
|
|
}
|