package com.fs.live.mapper;


import com.fs.live.domain.LiveCart;
import com.fs.live.vo.LiveCartVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 购物车Mapper接口
 *
 * @author fs
 * @date 2025-07-08
 */
public interface LiveCartMapper {
    /**
     * 查询购物车
     *
     * @param cartId 购物车主键
     * @return 购物车
     */
    LiveCart selectLiveCartByCartId(Long cartId);

    /**
     * 查询购物车列表
     *
     * @param liveCart 购物车
     * @return 购物车集合
     */
    List<LiveCart> selectLiveCartList(LiveCart liveCart);

    /**
     * 新增购物车
     *
     * @param liveCart 购物车
     * @return 结果
     */
    int insertLiveCart(LiveCart liveCart);

    /**
     * 修改购物车
     *
     * @param liveCart 购物车
     * @return 结果
     */
    int updateLiveCart(LiveCart liveCart);

    /**
     * 删除购物车
     *
     * @param cartId 购物车主键
     * @return 结果
     */
    int deleteLiveCartByCartId(Long cartId);

    /**
     * 批量删除购物车
     *
     * @param cartIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteLiveCartByCartIds(Long[] cartIds);

    int deleteByCartIdsAndUserId(@Param("cartIds") Long[] cartIds,@Param("userId")  Long userId);

    List<LiveCartVo> selectLiveCartListVo(LiveCart liveCart);

    @Select("select * from live_cart where checked = 1 and user_id = #{userId}")
    List<LiveCart> selectCheckedLiveCartByUserId(Long userId);

    @Select("select * from live_cart where user_id = #{userId} and product_id = #{productId}")
    LiveCart selectLiveCartByUserAndProductId(@Param("userId") String userId,@Param("productId") String productId);
}
