using YBEE.EQM.Application;
using YBEE.EQM.Core;

namespace YBEE.EQM.Application;

/// <summary>
/// 被监测机构管理服务
/// </summary>
[ApiDescriptionSettings(Name = "exam-org")]
[Route("exam/org")]
public class ExamOrgAppService : IDynamicApiController
{
    private readonly IExamOrgService _examOrgService;
    public ExamOrgAppService(IExamOrgService examOrgService)
    {
        _examOrgService = examOrgService;
    }

    /// <summary>
    /// 添加机构
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    public async Task AddList(AddExamOrgListInput input)
    {
        await _examOrgService.AddList(input);
    }
    /// <summary>
    /// 移出机构
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    public async Task Remove(DelExamOrgInput input)
    {
        await _examOrgService.Remove(input);
    }
    /// <summary>
    /// 切换机构是否参与区统一监测
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    public async Task SwitchRequiredSample(SwitchExamOrgRequiredSampleInput input)
    {
        await _examOrgService.SwitchRequiredSample(input);
    }
    /// <summary>
    /// 根据监测计划ID获取监测机构列表
    /// </summary>
    /// <param name="examPlanId"></param>
    /// <returns></returns>
    public async Task<List<ExamOrgOutput>> GetListByExamPlanId([FromQuery][Required] int examPlanId)
    {
        return await _examOrgService.GetListByExamPlanId(examPlanId);
    }
    /// <summary>
    /// 分页查询监测机构列表
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    public async Task<PageResult<ExamOrgOutput>> QueryPageList(ExamOrgPageInput input)
    {
        return await _examOrgService.QueryPageList(input);
    }
    /// <summary>
    /// 分页查询未加入的机构
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    public async Task<PageResult<SysOrgLiteOutput>> QueryNotInSysOrgPageList(ExamOrgNotInPageInput input)
    {
        return await _examOrgService.QueryNotInSysOrgPageList(input);
    }

    /// <summary>
    /// 分页查询机构监测计划列表
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    public async Task<PageResult<ExamPlanOutput>> QueryExamPlanPageList(ExamPlanPageInput input)
    {
        return await _examOrgService.QueryExamPlanPageList(input);
    }
}
