package com.itheima.service;  // 定义该接口所属的包为 com.itheima.service

import com.itheima.po.Class;  // 导入 Class 类，表示班级对象
import com.itheima.po.PageInfo;  // 导入 PageInfo 类，用于封装分页信息

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

/**
 * 班级Service层接口
 * 本接口提供了与班级相关的业务逻辑处理方法
 */
public interface ClassService {

    /**
     * 分页查询班级信息
     * @param c_classname 班级名称，模糊查询条件
     * @param c_counsellor 班主任，模糊查询条件
     * @param c_classid 班级ID，查询条件
     * @param pageIndex 当前页码，用于分页查询
     * @param pageSize 每页显示的记录数
     * @return 返回封装了分页信息的 PageInfo 对象，包含查询的班级数据及分页信息
     */
    public PageInfo<Class> findPageInfo(String c_classname, String c_counsellor, Integer c_classid, Integer pageIndex, Integer pageSize);

    /**
     * 删除班级信息
     * @param c_id 要删除的班级ID
     * @return 返回影响的行数，1表示成功删除，0表示删除失败
     */
    public int deleteClass(Integer c_id);

    /**
     * 添加班级信息
     * @param uclass 要添加的班级对象
     * @return 返回影响的行数，通常是 1 表示成功，0 表示失败
     */
    public int addClass(Class uclass);

    /**
     * 根据班级ID查找班级信息
     * @param c_id 班级的ID
     * @return 返回找到的班级对象，如果没有找到则返回 null
     */
    public Class findClassById(Integer c_id);

    /**
     * 修改班级信息
     * @param uclass 要更新的班级对象
     * @return 返回影响的行数，通常是 1 表示成功，0 表示失败
     */
    public int updateClass(Class uclass);

    /**
     * 查询班级中的所有学生信息
     * @param uclass 要查询的班级对象，通常包含班级ID等信息
     * @return 返回该班级的所有学生信息列表
     */
    public List<Class> findClassStudent(Class uclass);

    /**
     * 获取所有班级信息
     * @return 返回所有班级的列表
     */
    public List<Class> getAll();
}
