package com.cn.dao; // 定义接口所在的包名

import java.sql.SQLException; // 导入SQLException类
import java.util.List; // 导入List接口

import com.cn.domain.Prep; // 导入Prep实体类

/**
 * PrepDao接口，定义订单数据访问对象（DAO）的操作。
 * <p>该接口声明了与订单相关的数据库操作，包括添加、删除、修改、查询等。</p>
 * @ClassName: PrepDao
 * @Description: 订单表(prep)的持久层接口
 * @author: ljy
 * @date: 2019年9月13日 下午10:05:20
 */
public interface PrepDao {
    /**
     * 添加新订单到数据库。
     * <p>该方法接受一个Prep对象作为参数，将订单信息插入到数据库中。</p>
     * @param prep 要添加的订单对象
     * @return 返回1表示添加成功，返回0表示添加失败
     * @throws SQLException 如果数据库操作出现异常
     */
    int add(Prep prep) throws SQLException;
    
    /**
     * 根据订单ID从数据库中删除订单。
     * <p>该方法接受一个订单ID作为参数，根据该ID从数据库中删除对应的订单记录。</p>
     * @param prepId 要删除的订单ID
     * @return 返回1表示删除成功，返回0表示删除失败
     * @throws SQLException 如果数据库操作出现异常
     */
    int delete(Integer prepId) throws SQLException;
    
    /**
     * 更新数据库中的订单信息。
     * <p>该方法接受一个Prep对象作为参数，根据对象中的ID更新数据库中的订单记录。</p>
     * @param prep 包含更新信息的订单对象
     * @return 返回1表示修改成功，返回0表示修改失败
     * @throws SQLException 如果数据库操作出现异常
     */
    int update(Prep prep) throws SQLException;
    
    /**
     * 查询数据库中的所有订单信息。
     * <p>该方法返回一个包含所有订单信息的列表。</p>
     * @return 返回包含所有订单信息的列表
     * @throws SQLException 如果数据库操作出现异常
     */
    List<Prep> getAll() throws SQLException;
    
    /**
     * 根据会员信息ID查询该会员的所有订单。
     * <p>该方法接受一个会员信息ID作为参数，返回该会员的所有订单信息。</p>
     * @param pmemberId 会员信息ID
     * @return 返回包含指定会员ID的所有订单信息的列表
     * @throws SQLException 如果数据库操作出现异常
     */
    List<Prep> getPrepByPmemberId(Integer pmemberId) throws SQLException;
    
    /**
     * 根据订单ID查询订单信息。
     * <p>该方法接受一个订单ID作为参数，返回包含该ID的订单信息。</p>
     * @param prepId 要查询的订单ID
     * @return 返回包含指定ID的订单信息
     * @throws SQLException 如果数据库操作出现异常
     */
    Prep getById(Integer prepId) throws SQLException;
}
