package com.ruoyi.web.modules.cart.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.web.modules.cart.domain.BizMemberCartItem;
import com.ruoyi.web.modules.cart.dto.CartItemRowDTO;

/**
 * C 端购物车 Mapper
 */
public interface CartAppMapper
{
    List<CartItemRowDTO> selectItemRowsByMemberId(@Param("memberId") Long memberId);

    BizMemberCartItem selectByIdAndMember(@Param("cartItemId") Long cartItemId,
            @Param("memberId") Long memberId);

    BizMemberCartItem selectByMemberGoodsSpec(@Param("memberId") Long memberId,
            @Param("goodsId") Long goodsId, @Param("specKey") String specKey);

    List<CartItemRowDTO> selectItemRowsByIdsAndMember(@Param("memberId") Long memberId,
            @Param("cartItemIds") List<Long> cartItemIds);

    int insert(BizMemberCartItem item);

    int updateQuantity(@Param("cartItemId") Long cartItemId, @Param("memberId") Long memberId,
            @Param("quantity") Integer quantity);

    int updateChecked(@Param("cartItemId") Long cartItemId, @Param("memberId") Long memberId,
            @Param("checked") String checked);

    int deleteByIdAndMember(@Param("cartItemId") Long cartItemId, @Param("memberId") Long memberId);

    int deleteByIdsAndMember(@Param("memberId") Long memberId, @Param("cartItemIds") List<Long> cartItemIds);
}
