using System.Data.Common; using GB5Shared.DTO.Framework.Login; using MMDAL.DTO.Scheduling; namespace MMDAL.CustomCode.Scheduling { public interface ISchedulingRunDAL { Task SaveSchedulingRunLogAsync(SchedulingRunLogDTO dto, LoginDTO loginDTO, DbTransaction tx); Task UpdateSchedulingRunStatusAsync(int runId, byte status, LoginDTO loginDTO); Task UpdateSchedulingRunCompleteAsync(SchedulingRunLogDTO dto, LoginDTO loginDTO); Task GetSchedulingRunLogAsync(int runId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetSchedulingRunLogListAsync(LoginDTO loginDTO, CancellationToken ct = default); Task BulkInsertResourcePlanAsync(IEnumerable rows, LoginDTO loginDTO, CancellationToken ct = default); Task BulkInsertBatchChainAsync(IEnumerable rows, LoginDTO loginDTO, CancellationToken ct = default); Task DeleteFutureUnlockedResourcePlanAsync(DateTime horizonFrom, LoginDTO loginDTO, CancellationToken ct = default); Task> GetResourcePlanByIndentAsync(int indentDetailId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetResourcePlanByMachineAsync(int machineId, DateTime dateFrom, DateTime dateTo, LoginDTO loginDTO, CancellationToken ct = default); Task UpdateIsLockedAsync(int resourcePlanId, byte isLocked, LoginDTO loginDTO); Task SaveMountTaskAsync(MountTaskDTO dto, LoginDTO loginDTO); Task UpdateResourcePlanMountIdAsync(int resourcePlanId, int taskId, LoginDTO loginDTO); Task UpdateNestingPlanScheduleAsync(int nestingPlanId, DateTime start, DateTime end, int combineId, LoginDTO loginDTO); Task UpdateIndentDetailMonitorGroupAsync(int indentDetailId, string monitorGroup, short sequence, LoginDTO loginDTO); Task UpdateIndentDetailScheduleStatusAsync(int indentDetailId, byte status, LoginDTO loginDTO); Task ResetIndentDetailScheduleStatusForHorizonAsync(DateTime horizonFrom, LoginDTO loginDTO, CancellationToken ct = default); Task BulkInsertDecisionLogAsync(IEnumerable rows, LoginDTO loginDTO, CancellationToken ct = default); Task BulkInsertTraceAsync(IEnumerable rows, LoginDTO loginDTO, CancellationToken ct = default); Task> GetTraceForRunAsync(int runId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetDecisionLogForRunAsync(int runId, LoginDTO loginDTO, CancellationToken ct = default); // ── Plan Lifecycle ──────────────────────────────────────────────────── Task FirmPlanByIdsAsync(IEnumerable resourcePlanIds, LoginDTO loginDTO, CancellationToken ct = default); Task FirmPlanByRunAsync(int schedulingRunId, LoginDTO loginDTO, CancellationToken ct = default); Task FirmPlanByWorkCenterAsync(int workCenterId, DateTime horizonFrom, DateTime horizonTo, LoginDTO loginDTO, CancellationToken ct = default); Task ReleasePlanAsync(IEnumerable resourcePlanIds, LoginDTO loginDTO, CancellationToken ct = default); Task StartWorkOrderAsync(int resourcePlanId, DateTime actualStart, LoginDTO loginDTO, CancellationToken ct = default); Task StopWorkOrderAsync(StopWorkOrderDTO dto, LoginDTO loginDTO, CancellationToken ct = default); Task GetPlanMachineAndDetailAsync(int resourcePlanId, LoginDTO loginDTO, CancellationToken ct = default); Task> GetLockedFutureSlotsAsync(DateTime horizonFrom, DateTime horizonTo, LoginDTO loginDTO, CancellationToken ct = default); } }