package com.cn.service;

import java.sql.SQLException; // 导入SQLException类，用于处理数据库操作时可能遇到的异常
import java.util.List; // 导入List接口，用于返回列表类型的数据

import com.cn.domain.Prep; // 导入Prep类，该类代表订单的实体

/**
 * 定义订单服务接口，提供订单相关的业务操作。
 */
public interface PrepService {

    /**
     * 添加一个新的订单。
     * @param prep 订单对象，包含订单的详细信息。
     * @return 返回1表示添加成功。
     * @throws SQLException 如果数据库操作失败，则抛出SQLException异常。
     */
    int add(Prep prep);

    /**
     * 根据订单ID删除一个订单。
     * @param prepId 要删除的订单的ID。
     * @return 返回1表示删除成功。
     * @throws SQLException 如果数据库操作失败，则抛出SQLException异常。
     */
    int delete(Integer prepId);

    /**
     * 更新一个订单的信息。
     * @param prep 包含更新信息的订单对象。
     * @return 返回1表示更新成功。
     * @throws SQLException 如果数据库操作失败，则抛出SQLException异常。
     */
    int update(Prep prep);

    /**
     * 获取所有订单的信息。
     * @return 返回一个包含所有订单信息的List，其中每个元素都是Prep对象。
     */
    List<Prep> getAll();

    /**
     * 根据会员信息ID查询该会员的所有订单。
     * @param pmemberId 会员信息ID，用于标识特定的会员。
     * @return 返回一个包含该会员所有订单的List，其中每个元素都是Prep对象。
     */
    List<Prep> getPrepByPmemberId(Integer pmemberId);

    /**
     * 根据订单ID查询一个订单的详细信息。
     * @param prepId 要查询的订单的ID。
     * @return 返回一个Prep对象，包含订单的详细信息。
     */
    Prep getById(Integer prepId);
}
