namespace MMDAL.DTO.Scheduling { // All columns required for a TRESOURCEPLAN bulk insert row public class ResourcePlanInsertDTO { public int ResourcePlanId { get; set; } public int IndentDetailId { get; set; } public int MachineId { get; set; } public int WorkCenterId { get; set; } public int ProcessId { get; set; } public decimal PlannedQuantity { get; set; } public DateTime ScheduledStartDate { get; set; } public DateTime ScheduledEndDate { get; set; } // Links multiple rows that share a single EU (interruptible segments / parallel splits) public int ResourcePlanCombineId { get; set; } // 1..N for parallel machines; always 1 for non-parallel public short ParallelNumber { get; set; } = 1; public byte IsInterruptible { get; set; } public int SchedulingRunId { get; set; } public byte IsLocked { get; set; } public string? Particulars { get; set; } // 0=Production 1=Rework 2=Trial public byte PlanNature { get; set; } // 1=Machine 2=Pattern 3=Die 6=Subcontract 7=InternalTransfer public byte ResourceLevel { get; set; } = 1; // MKEYCOMPONENTDETAIL.KEYCOMPONENTDETAILID assigned to this job (null when process has no pattern requirement) public int? PatternId { get; set; } // TTASK row created for pattern changeover before this slot public int? MountingTaskId { get; set; } public int ResourceSequence { get; set; } public int TenantId { get; set; } public int CreatedById { get; set; } public DateTime CreatedOn { get; set; } public int ModifiedById { get; set; } public DateTime ModifiedOn { get; set; } // Read-only — populated by GET queries; not used during bulk insert // 0=Planned 1=FirmPlan 2=Released 3=InProgress 4=Stopped 5=Completed public byte PlanStatus { get; set; } public int ItemId { get; set; } public string? ItemName { get; set; } public string? ItemCode { get; set; } } }