package com.sckw.product.api.dubbo;

import com.sckw.core.web.response.HttpResult;
import com.sckw.product.api.model.GoodsDetail;
import com.sckw.product.api.model.KwpGoods;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @desc: 商品相关dubbo
 * @author: yzc
 * @date: 2023-07-13 14:09
 */
public interface GoodsInfoService {

    /**
     * @desc: 根据商品id获取商品详情
     * @author: yzc
     * @date: 2023-07-13 14:15
     * @Param id:
     * @return: com.sckw.product.api.model.GoodsDetail
     */
    GoodsDetail getDetailById(Long id);

    /**
     * @desc: 获取商品基本信息
     * @author: yzc
     * @date: 2023-07-13 14:35
     * @Param id:
     * @return: com.sckw.product.api.model.KwpGoods
     */
    KwpGoods getGoodsById(Long id);

    /**
     * @desc: 根据商品id获取商品基本信息
     * @author: yzc
     * @date: 2023-07-20 10:57
     * @Param ids:
     * @return: java.util.Map<java.lang.Long,com.sckw.product.api.model.KwpGoods>
     */
    Map<Long, KwpGoods> getGoodsByIds(List<Long> ids);

    /**
     * @desc: 更新库存
     * @author: yzc
     * @date: 2023-07-13 14:33
     * @Param id:
     * @Param amount:
     * @return: com.sckw.core.web.response.HttpResult
     */
    HttpResult updateGoodsAmount(Long id, BigDecimal amount);

    /**
     * @desc: 是否有关联客服经理 true是，false否
     * @author: yzc
     * @date: 2023-08-15 10:06
     * @Param userId:  用户id
     * @return: java.lang.Boolean
     */
    Boolean associateManager(Long userId);

    /**
     * @desc: 是否有关联供应企业 true是，false否
     * @author: yzc
     * @date: 2023-08-29 9:48
     * @Param entId:  企业id
     * @return: java.lang.Boolean
     */
    Boolean associateSupplyEnt(Long entId);
}
