package com.hwrj.cloud.portal.service;

import com.hwrj.cloud.portal.domain.*;
import com.hwrj.cloud.portal.model.PmsProduct;

import java.util.List;

/**
 * 前台商品管理Service
 * Created by macro on 2020/4/6.
 */
public interface PmsPortalProductService {
    /**
     * 综合搜索商品
     */
    List<PmsProduct> search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize, Integer sort);

    /**
     * 以树形结构获取所有商品分类
     */
    List<PmsProductCategoryNode> categoryTreeList();

    /**
     * 以树形结构搜索所有二级商商品分类
     */
    List<PmsProductCategoryNode> categorySearchTreeList(String key);

    /**
     * 获取前台商品详情
     */
    PmsPortalProductDetail detail(Long id);

    /**
     * 获取购物车中某个商品的规格,用于重选规格
     *
     * @param productId
     * @return
     */
    CartProduct getCartProduct(Long productId);

    /**
     * 获取促销商品
     *
     * @param productIdList
     * @return
     */
    List<PromotionProduct> getPromotionProductList(List<Long> productIdList);


    /**
     * 锁定下单商品的所有库存
     *
     * @param productSkuId
     * @param quantity
     * @return
     */
    void lockStock(Long productSkuId, Integer quantity);

    /**
     * 获取商品详情
     * @param productId
     * @return
     */
    PmsProduct getPmsProductById(Long productId);

    /**
     * 根据供应商获取对应的商品详情
     * @param companyId
     * @return
     */
    List<PmsProduct> getProductByCompanyId(Long companyId);

    List<BrandVO> getPmsPrands(Long compId);
}
