package com.buy507.mall.portal.service;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.buy507.mall.common.api.CommonResult;
import com.buy507.mall.model.OmsCartItem;
import com.buy507.mall.portal.domain.CartItemParam;
import com.buy507.mall.portal.domain.CartProduct;
import com.buy507.mall.portal.domain.CartPromotionItem;

/**
 * 购物车管理Service
 */
public interface OmsCartItemService {
	
    /**
     * 查询购物车中是否包含该商品，有增加数量，无添加到购物车
     */
    @Transactional
    CommonResult add(CartItemParam cartItemParam);

    /**
     * 根据会员编号获取购物车列表
     */
    List<OmsCartItem> list(Long memberId);

    /**
     * 获取包含促销活动信息的购物车列表
     */
    List<CartPromotionItem> listPromotion(Long memberId);

    /**
     * 修改某个购物车商品的数量
     */
    void updateQuantity(Long id, Long memberId, Integer quantity);

    /**
     * 批量删除购物车中的商品
     */
    void delete(Long memberId,List<Long> ids);

    /**
     *获取购物车中用于选择商品规格的商品信息
     */
    CartProduct getCartProduct(Long productId);

    /**
     * 修改购物车中商品的规格
     */
    @Transactional
    int updateAttr(OmsCartItem cartItem);

    /**
     * 清空购物车
     */
    void clear(Long memberId);
}
