using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using RecruitmentDAL.DTO.JobRequisition; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace RecruitmentBLL.JobRequisition { public interface IJobRequisitionBLL { Task GetJobRequisition(int JobRequisitionId, LoginDTO LoginDTO, CancellationToken ct); Task SaveJobRequisition(JobRequisitionDTO JobRequisitionDTO, LoginDTO LoginDTO, CancellationToken ct); Task GetSelectListJobRequisition(CriteriaDTO criteriaDTO, LoginDTO LoginDTO, CancellationToken ct); Task DeleteJobRequisition(int JobRequisitionId, LoginDTO LoginDTO, CancellationToken ct); // Explicit approval state-machine transitions (Draft -> PendingApproval -> Approved/Rejected). // Callable by a human today via the endpoints below; a future IWorkFlowEngine-driven // approval gate can call these same methods as its post-approval/post-rejection hook // without changing this contract. See JobRequisitionBLL for why full IWorkFlowEngine // wiring was deferred rather than guessed at. Task SubmitJobRequisitionForApproval(int JobRequisitionId, LoginDTO LoginDTO, CancellationToken ct); Task ApproveJobRequisition(int JobRequisitionId, LoginDTO LoginDTO, CancellationToken ct); Task RejectJobRequisition(int JobRequisitionId, LoginDTO LoginDTO, CancellationToken ct); } }