using YBEE.EQM.Core;

namespace YBEE.EQM.Application;

/// <summary>
/// 机构信息服务
/// </summary>
public interface ISysOrgService
{
    /// <summary>
    /// 添加机构
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task Add(AddSysOrgInput input);
    /// <summary>
    /// 更新机构
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task Update(UpdateSysOrgInput input);
    /// <summary>
    /// 删除机构
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task Del(BaseId<short> input);
    /// <summary>
    /// 启用禁用机构
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task ChangeStatus(BaseId<short> input);
    /// <summary>
    /// 根据ID获取机构
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task<SysOrgOutput> GetById(short id);
    /// <summary>
    /// 查询机构列表
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<List<SysOrgLiteOutput>> QueryList(QuerySysOrgInput input);
    /// <summary>
    /// 分页查询机构列表
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<PageResult<SysOrgOutput>> QueryPageList(SysOrgPageInput input);
    /// <summary>
    /// 获取全部机构列表
    /// </summary>
    /// <returns></returns>
    Task<List<SysOrgLiteOutput>> GetAllList();
    /// <summary>
    /// 根据学校ID获取校区列表
    /// </summary>
    /// <param name="orgId"></param>
    /// <returns></returns>
    Task<List<SysOrgLiteOutput>> GetOrgBranchByOrgId(short orgId);
}
