using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ZhonTai.Admin.Core.Dto;
using NPP.SmartSchedue.Api.Contracts.Services.Personnel.Output;
namespace NPP.SmartSchedue.Api.Contracts.Services.Personnel;
///
/// 人员综合服务接口
///
public interface IPersonService
{
///
/// 根据资质IDs、班次ID、工作日期,查询非请假的、有资质的人员
///
/// 资质ID字符串,使用逗号分隔
/// 班次ID
/// 工作日期(将结合班次时间计算实际工作时间段)
///
Task> GetAvailablePersonnelAsync(
string qualificationIds,
long shiftId,
DateTime workStartTime);
///
/// 检查人员是否具备指定资质
///
/// 人员ID
/// 资质ID
///
Task HasQualificationAsync(long personnelId, long qualificationId);
///
/// 获取所有人员池(用于智能分配)
/// 深度业务思考:从资质表获取所有关联人员并去重,确保五层决策模型的完整性
///
/// 是否包含资质信息
/// 完整的人员池,用于后续的五层决策筛选
Task> GetAllPersonnelPoolAsync(bool includeQualifications = false);
}