package com.fs.store.service;

import java.util.List;
import com.fs.store.domain.FsStoreProductAttrValue;
import com.fs.store.param.FsProductAttrValueParam;
import com.fs.store.param.FsStoreProductAttrValueQueryParam;
import com.fs.store.param.FsStoreTuiProductAttrValueParam;
import com.fs.store.vo.FsStoreProductAttrValueQueryVO;
import com.fs.store.vo.FsStoreProductAttrValueVO;
import com.fs.store.vo.FsStoreTuiProductAttrValueVO;

/**
 * 商品属性值Service接口
 * 
 * @author fs
 * @date 2022-03-15
 */
public interface IFsStoreProductAttrValueService 
{
    /**
     * 查询商品属性值
     * 
     * @param id 商品属性值ID
     * @return 商品属性值
     */
    public FsStoreProductAttrValue selectFsStoreProductAttrValueById(Long id);

    /**
     * 查询商品属性值列表
     * 
     * @param fsStoreProductAttrValue 商品属性值
     * @return 商品属性值集合
     */
    public List<FsStoreProductAttrValue> selectFsStoreProductAttrValueList(FsStoreProductAttrValue fsStoreProductAttrValue);

    /**
     * 新增商品属性值
     * 
     * @param fsStoreProductAttrValue 商品属性值
     * @return 结果
     */
    public int insertFsStoreProductAttrValue(FsStoreProductAttrValue fsStoreProductAttrValue);

    /**
     * 修改商品属性值
     * 
     * @param fsStoreProductAttrValue 商品属性值
     * @return 结果
     */
    public int updateFsStoreProductAttrValue(FsStoreProductAttrValue fsStoreProductAttrValue);

    /**
     * 批量删除商品属性值
     * 
     * @param ids 需要删除的商品属性值ID
     * @return 结果
     */
    public int deleteFsStoreProductAttrValueByIds(Long[] ids);

    /**
     * 删除商品属性值信息
     * 
     * @param id 商品属性值ID
     * @return 结果
     */
    public int deleteFsStoreProductAttrValueById(Long id);

    List<FsStoreProductAttrValue> selectFsStoreProductAttrValueByProductId(Long productId);

    int incProductAttrStock(Long num, Long productId, Long productAttrValueId);

    List<FsStoreProductAttrValueVO> selectFsStoreProductAttrValueListVO(FsProductAttrValueParam param);

    List<FsStoreProductAttrValueQueryVO> selectStoreProductAttrValueListQuery(FsStoreProductAttrValueQueryParam param);


    List<FsStoreTuiProductAttrValueVO> selectStoreTuiProductAttrValueVOList(FsStoreTuiProductAttrValueParam param);
}
