package com.fs.live.service;

import java.util.List;

import com.fs.live.domain.LiveOrder;
import com.fs.live.domain.LiveOrderItem;
import com.fs.live.param.LiveOrderParam;
import com.fs.live.vo.LiveOrderItemExportVO;
import com.fs.live.vo.LiveOrderItemListUVO;
import com.fs.live.vo.LiveOrderItemVo;

/**
 * 订单详情Service接口
 *
 * @author fs
 * @date 2025-07-08
 */
public interface ILiveOrderItemService {
    /**
     * 查询订单详情
     *
     * @param itemId 订单详情主键
     * @return 订单详情
     */
    LiveOrderItem selectLiveOrderItemByItemId(String itemId);

    /**
     * 查询订单详情列表
     *
     * @param liveOrderItem 订单详情
     * @return 订单详情集合
     */
    List<LiveOrderItem> selectLiveOrderItemList(LiveOrderItem liveOrderItem);

    /**
     * 新增订单详情
     *
     * @param liveOrderItem 订单详情
     * @return 结果
     */
    int insertLiveOrderItem(LiveOrderItem liveOrderItem);

    /**
     * 修改订单详情
     *
     * @param liveOrderItem 订单详情
     * @return 结果
     */
    int updateLiveOrderItem(LiveOrderItem liveOrderItem);

    /**
     * 批量删除订单详情
     *
     * @param itemIds 需要删除的订单详情主键集合
     * @return 结果
     */
    int deleteLiveOrderItemByItemIds(String[] itemIds);

    /**
     * 删除订单详情信息
     *
     * @param itemId 订单详情主键
     * @return 结果
     */
    int deleteLiveOrderItemByItemId(String itemId);

    List<LiveOrderItemVo> selectCheckedByUserId(LiveOrder liveOrder);

    List<LiveOrderItemListUVO> selectLiveOrderItemListUVOByOrderId(Long orderId);

    int updateFsStoreOrderCode(Long orderId, String orderSn);

    List<LiveOrderItem> selectCheckedByOrderId(Long id);

    List<LiveOrderItemExportVO> selectLiveOrderItemListExportVO(LiveOrderParam param);
}
