package com.seer.teach.mall.service;

import com.seer.teach.mall.entity.OrderGoodsEntity;
import com.baomidou.mybatisplus.extension.service.IService;

import jakarta.validation.constraints.NotNull;
import java.util.List;
import java.util.Set;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Captain
 * @since 2025-06-10
 */
public interface IOrderGoodsService extends IService<OrderGoodsEntity> {

    /**
     * 根据订单id查询订单商品
     * @param orderId 订单id
     * @return 订单商品列表
     */
    List<OrderGoodsEntity> listByOrderId(Integer orderId);

    /**
     * 根据子订单id查询订单商品
     * @param orderChildId 子订单id
     * @return 订单商品列表
     */
    List<OrderGoodsEntity> listByChildOrderId(Integer orderChildId);

    /**
     * 根据订单id查询订单商品
     * @param orderIds 订单id列表
     * @return 订单商品列表
     */
    List<OrderGoodsEntity> getOrderGoodsByOrderIds(Set<Integer> orderIds);

    /**
     * 根据订单id查询订单商品
     * @param orderChildrenIds 订单id列表
     * @return 订单商品列表
     */
    List<OrderGoodsEntity> getOrderGoodsByOrderChildIds(Set<Integer> orderChildrenIds);

    /**
     * 删除订单商品
     * @param orderId 订单id
     * @return 删除结果
     */
    boolean deleteOrderGoodsByOrderId(Integer orderId);

    /**
     * 删除订单商品
     * @param orderChildId 子订单id
     * @return 删除结果
     */
    boolean deleteOrderGoodsByOrderChildId(Integer orderChildId);

    /**
     * 根据子订单id和skuId查询订单商品
     *
     * @param childOrderId 子订单id
     * @param skuId skuId
     * @return 订单商品
     */
    OrderGoodsEntity getOneByChildOrderIdAndSkuId(Integer childOrderId,Integer skuId);
}
