namespace MMDAL.DTO.MRPRun { public class MRPRunTraceDTO { public int MrpRunId { get; set; } public string? MrpCode { get; set; } public string? MrpName { get; set; } public int TypeOfRun { get; set; } public int RunScope { get; set; } public byte Status { get; set; } public string? ErrorMessage { get; set; } public DateTime StartedAt { get; set; } public DateTime? CompletedAt { get; set; } public List Steps { get; set; } = []; public TraceDataDTO Data { get; set; } = new(); } public class TraceStepDTO { public string Id { get; set; } = ""; public string Status { get; set; } = "completed"; // "completed" | "skipped" | "failed" public int? Count { get; set; } } public class TraceDataDTO { public List DemandLines { get; set; } = []; public List RunDetails { get; set; } = []; public List Actions { get; set; } = []; public List Pegging { get; set; } = []; public List BomParts { get; set; } = []; } public class TraceDemandLineDTO { public string ItemCode { get; set; } = ""; public string ItemName { get; set; } = ""; public DateTime PeriodDate { get; set; } public decimal Qty { get; set; } public int Priority { get; set; } public int AllocationId { get; set; } public int SalesOrderId { get; set; } } public class TraceRunDetailDTO { public string ItemCode { get; set; } = ""; public string ItemName { get; set; } = ""; public DateTime Period { get; set; } public int Level { get; set; } public decimal GrossReq { get; set; } public decimal Soh { get; set; } public decimal SchedReceipts { get; set; } public decimal NetReq { get; set; } public decimal PlannedQty { get; set; } public decimal ProjSOH { get; set; } } public class TraceActionDTO { public int ActionId { get; set; } public string ItemCode { get; set; } = ""; public string ItemName { get; set; } = ""; public string PlanType { get; set; } = ""; // "Make" or "Buy" public decimal Qty { get; set; } public DateTime OrderDate { get; set; } public DateTime DueDate { get; set; } } public class TracePeggingDTO { public int ActionId { get; set; } public string ItemCode { get; set; } = ""; public int DetailId { get; set; } public decimal PeggedQty { get; set; } public int Priority { get; set; } } public class TraceBomPartDTO { public string ParentCode { get; set; } = ""; public string ChildCode { get; set; } = ""; public string ChildName { get; set; } = ""; public decimal Qty { get; set; } public int BomLevel { get; set; } } }