package com.fs.hisStore.service;

import java.util.List;

import com.fs.common.core.domain.R;
import com.fs.hisStore.domain.FsStoreCartScrm;
import com.fs.hisStore.param.FsStoreCartCountParam;
import com.fs.hisStore.param.FsStoreCartDelParam;
import com.fs.hisStore.param.FsStoreCartNumParam;
import com.fs.hisStore.param.FsStoreCartParam;
import com.fs.hisStore.vo.FsStoreCartVO;

/**
 * 购物车Service接口
 * 
 * @author fs
 * @date 2022-03-21
 */
public interface IFsStoreCartScrmService 
{
    /**
     * 查询购物车
     * 
     * @param id 购物车ID
     * @return 购物车
     */
    public FsStoreCartScrm selectFsStoreCartById(Long id);

    /**
     * 查询购物车列表
     * 
     * @param fsStoreCart 购物车
     * @return 购物车集合
     */
    public List<FsStoreCartScrm> selectFsStoreCartList(FsStoreCartScrm fsStoreCart);

    /**
     * 新增购物车
     * 
     * @param fsStoreCart 购物车
     * @return 结果
     */
    public int insertFsStoreCart(FsStoreCartScrm fsStoreCart);

    /**
     * 修改购物车
     * 
     * @param fsStoreCart 购物车
     * @return 结果
     */
    public int updateFsStoreCart(FsStoreCartScrm fsStoreCart);

    /**
     * 批量删除购物车
     * 
     * @param ids 需要删除的购物车ID
     * @return 结果
     */
    public int deleteFsStoreCartByIds(Long[] ids);

    /**
     * 删除购物车信息
     * 
     * @param id 购物车ID
     * @return 结果
     */
    public int deleteFsStoreCartById(Long id);

    R addCart(long userId, FsStoreCartParam cartParam);


    List<FsStoreCartVO> selectFsStoreCartListByUid(long parseLong);

    R delCart(long userId, FsStoreCartDelParam cartParam);

    R changeNum(long userId, FsStoreCartNumParam cartParam);

    void checkProductStock( Long productId, Long productAttrValueId);

    Integer selectFsStoreCartCountByUserId(long userId);

    Integer selectFsStoreCartCount(FsStoreCartCountParam param);

}
