namespace Tiobon.Core.Controllers;

/// <summary>
/// 公共服务
/// </summary>
[Produces("application/json")]
[Route("api/Report")]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_System)]
public class ReportController : BaseController<IReportServices, Ghrh_Resume, Ghrh_ResumeDto, InsertGhrh_ResumeInput, EditGhrh_ResumeInput>
{
    private readonly ILogger<CommonController> _logger;
    private readonly IReportServices _services;

    /// <summary>
    /// 构造函数
    /// </summary>
    /// <param name="service"></param>
    public ReportController(IReportServices service) : base(service)
    {
    }
    #region 获取新入职人员列表
    /// <summary>
    /// 获取新入职人员列表
    /// </summary>
    /// <param name="filter"></param>
    /// <param name="condition"></param>
    /// <returns></returns>
    [HttpPost("QueryNewStaff")]
    public async Task<ServicePageResult<Ghra_StaffDto>> QueryNewStaffAsync([FromBody] QueryBody filter, string condition) => await _service.QueryNewStaffAsync(filter, condition, true);
    #endregion 

    #region 面试官-简历筛选通过率
    /// <summary>
    /// 面试官-简历筛选通过率
    /// </summary>
    /// <param name="langId">langId</param>
    /// <returns></returns>
    [HttpPost("QueryESSResumeScreenPassRate/{langId}")]
    public async Task<ServiceResult<dynamic>> QueryESSResumeScreenPassRate(int langId) => await _service.QueryESSResumeScreenPassRate(langId);
    #endregion

    #region 面试官-简历筛选通过率
    /// <summary>
    /// 面试官-简历筛选通过率
    /// </summary>
    /// <param name="langId">langId</param>
    /// <returns></returns>
    [HttpPost("QueryESSInterviewPassRate/{langId}")]
    public async Task<ServiceResult<dynamic>> QueryESSInterviewPassRate(int langId) => await _service.QueryInterviewPassRate(langId, App.User.StaffId);
    #endregion

    #region HR推荐-简历筛选通过率
    /// <summary>
    /// HR推荐-简历筛选通过率
    /// </summary>
    /// <param name="langId">langId</param>
    /// <returns></returns>
    [HttpPost("QueryInterviewPassRate/{langId}")]
    public async Task<ServiceResult<dynamic>> QueryInterviewPassRate(int langId) => await _service.QueryInterviewPassRate(langId);
    #endregion 

    #region 面试官-发OFFER率
    /// <summary>
    /// 面试官-简历筛选通过率
    /// </summary>
    /// <param name="langId">langId</param>
    /// <returns></returns>
    [HttpPost("QueryESSSendOfferRate/{langId}")]
    public async Task<ServiceResult<dynamic>> QueryESSSendOfferRate(int langId) => await _service.QuerySendOfferRate(langId, App.User.StaffId);
    #endregion

    #region HR推荐-发OFFER率
    /// <summary>
    /// HR推荐-简历筛选通过率
    /// </summary>
    /// <param name="langId">langId</param>
    /// <returns></returns>
    [HttpPost("QuerySendOfferRate/{langId}")]
    public async Task<ServiceResult<dynamic>> QuerySendOfferRate(int langId) => await _service.QuerySendOfferRate(langId);
    #endregion 
}