package com.itheima.service;  // 定义接口所属的包路径：com.itheima.service

import com.itheima.po.Dormitory;  // 导入 Dormitory 类，表示宿舍实体类
import com.itheima.po.PageInfo;  // 导入 PageInfo 类，用于分页信息封装

import java.util.List;  // 导入 List 类，用于存储多个 Dormitory 对象

/**
 * 用户Service层接口  // 该接口定义了宿舍管理服务层的各种业务操作
 */
public interface DormitoryService {

    /**
     * 分页查询宿舍信息
     * @param a_name 宿舍管理员的姓名（可选的查询条件）
     * @param s_dormitoryid 宿舍ID（可选的查询条件）
     * @param d_dormbuilding 宿舍楼名称（可选的查询条件）
     * @param pageIndex 当前页码
     * @param pageSize 每页显示的记录数
     * @return 返回一个 PageInfo<Dormitory> 对象，封装了分页信息和查询结果
     */
    public PageInfo<Dormitory> findPageInfo(String a_name, Integer s_dormitoryid, String d_dormbuilding, Integer pageIndex, Integer pageSize);

    /**
     * 添加宿舍信息
     * @param dormitory 要添加的宿舍对象
     * @return 返回影响的行数，通常 1 表示添加成功，0 表示添加失败
     */
    public int addDormitory(Dormitory dormitory);  // 添加宿舍信息

    /**
     * 删除宿舍信息
     * @param d_id 要删除的宿舍ID
     * @return 返回影响的行数，通常 1 表示删除成功，0 表示删除失败
     */
    public int deleteDormitory(Integer d_id);  // 删除宿舍信息

    /**
     * 修改宿舍信息
     * @param dormitory 要更新的宿舍对象
     * @return 返回影响的行数，通常 1 表示更新成功，0 表示更新失败
     */
    public int updateDormitory(Dormitory dormitory);  // 修改宿舍信息

    /**
     * 根据宿舍ID查询单条宿舍信息
     * @param d_id 宿舍ID
     * @return 返回查询到的宿舍信息对象，如果没有找到，返回 null
     */
    public Dormitory findDormitoryById(Integer d_id);  // 根据宿舍ID查询单条宿舍信息

    /**
     * 查询宿舍的人员信息
     * @param dormitory 包含查询条件的宿舍对象
     * @return 返回宿舍中所有相关的人员信息列表
     */
    public List<Dormitory> findDormitoryStudent(Dormitory dormitory);  // 查询宿舍人员信息

    /**
     * 获取所有宿舍信息
     * @return 返回一个 List<Dormitory>，包含所有宿舍记录
     */
    public List<Dormitory> getAll();  // 获取所有宿舍信息
}
