using RecruitmentDAL.DTO.SelectionProcess; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using System.Threading; using System.Threading.Tasks; namespace RecruitmentBLL.SelectionProcess { public interface ISelectionProcessBLL { #region SelectionProcessTemplate Task GetSelectionProcessTemplate(int SelectionProcessTemplateId, LoginDTO LoginDTO, CancellationToken ct); Task SaveSelectionProcessTemplate(SelectionProcessTemplateDTO SelectionProcessTemplateDTO, LoginDTO LoginDTO, CancellationToken ct); Task GetSelectListSelectionProcessTemplate(CriteriaDTO criteriaDTO, LoginDTO LoginDTO, CancellationToken ct); Task DeleteSelectionProcessTemplate(int SelectionProcessTemplateId, LoginDTO LoginDTO, CancellationToken ct); #endregion #region SelectionProcessStage Task GetSelectionProcessStage(int SelectionProcessTemplateId, LoginDTO LoginDTO, CancellationToken ct); Task SaveSelectionProcessStage(SelectionProcessStageDTO SelectionProcessStageDTO, LoginDTO LoginDTO, CancellationToken ct); Task GetSelectListSelectionProcessStage(CriteriaDTO criteriaDTO, LoginDTO LoginDTO, CancellationToken ct); Task DeleteSelectionProcessStage(int SelectionProcessStageId, LoginDTO LoginDTO, CancellationToken ct); // Narrow read — the QuizId (TMS MQUIZ, cross-module, not a hard FK) a stage optionally // requires. Returns -1 when no quiz is required. Consumed by // RecruitmentBLL.Application.ApplicationBLL to check the stage a candidate is entering. Task GetSelectionProcessStageQuizId(int SelectionProcessStageId, LoginDTO LoginDTO, CancellationToken ct); // Narrow read — whether this stage is the "genuine Hired" terminal category // (StageCategory=7 AND IsTerminal=1). Consumed by ApplicationBLL's Recruitment Phase 6 // referral-eligibility-check hook. See ISelectionProcessDAL's identical doc comment. Task IsSelectionProcessStageTerminalHireCategory(int SelectionProcessStageId, LoginDTO LoginDTO, CancellationToken ct); #endregion } }