namespace SafeCampus.Application.Services.Business.DormitoryService;

public interface IDormitoryService:ITransient
{
    /// <summary>
    /// 添加
    /// </summary>
    /// <param name="input">添加参数</param>
    /// <returns></returns>
    Task<bool> Add(DormitoryInfoDto input);
    /// <summary>
    /// 修改
    /// </summary>
    /// <param name="input">添加参数</param>
    /// <returns></returns>
    Task<bool> Update(DormitoryInfoDto input);
    /// <summary>
    /// 获取详情
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Task<DormitoryInfoDto> GetInfo(long id);
    /// <summary>
    /// 删除
    /// </summary>
    /// <param name="id">id</param>
    /// <returns></returns>
    Task<bool> Delete(List<long> id);
    /// <summary>
    /// 给寝室分配人员
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<bool> SetAssignPerson(DormitorySetPersonInput input);
    /// <summary>
    /// 获取列表
    /// </summary>
    /// <returns></returns>
    Task<SqlSugarPagedList<DormitoryInfoList>> GetPageList(DormitoryInfoSearch search);
    /// <summary>
    /// 查询归寝寝室列表
    /// </summary>
    /// <param name="search"></param>
    /// <returns></returns>
    Task<SqlSugarPagedList<ReturnDormitoryList>> GetReturnPageList(ReturnDormitoryISearch search);
    /// <summary>
    /// 查询寝室归寝详情
    /// </summary>
    /// <param name="id"></param>
    /// <param name="returnTime"></param>
    /// <returns></returns>
    Task<ReturnDormitoryDto> GetReturnInfo(long id,DateTime returnTime);
    /// <summary>
    /// 根据宿舍楼id获取归寝列表（大屏）
    /// </summary>
    /// <param name="search"></param>
    /// <returns></returns>
    Task<List<ReturnDormitoryList>> GetBiReturnPageList(ReturnDormitoryISearch search);
}