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

namespace YBEE.EQM.Application;

/// <summary>
/// 被监测机构管理服务
/// </summary>
public interface IExamOrgService
{
    /// <summary>
    /// 添加机构
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task AddList(AddExamOrgListInput input);
    /// <summary>
    /// 移出机构
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task Remove(DelExamOrgInput input);
    /// <summary>
    /// 切换机构是否参与区统一监测
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task SwitchRequiredSample(SwitchExamOrgRequiredSampleInput input);
    /// <summary>
    /// 根据监测计划ID获取监测机构列表
    /// </summary>
    /// <param name="examPlanId"></param>
    /// <returns></returns>
    Task<List<ExamOrgOutput>> GetListByExamPlanId(int examPlanId);
    /// <summary>
    /// 分页查询监测机构列表
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<PageResult<ExamOrgOutput>> QueryPageList(ExamOrgPageInput input);
    /// <summary>
    /// 分页查询未加入的机构
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<PageResult<SysOrgLiteOutput>> QueryNotInSysOrgPageList(ExamOrgNotInPageInput input);

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