package com.czg.product.service;

import com.czg.product.vo.ProductStockVO;
import com.czg.product.vo.ProductVO;

import java.util.List;

/**
 * 商品RPC远程调用服务接口
 *
 * @author tankaikai
 * @since 2025-03-01 10:19
 */
public interface ProductRpcService {

    /**
     * 订单支付成功扣减库存
     *
     * @param shopId  店铺ID
     * @param orderId  订单ID
     * @param dataList 库存扣减数据
     */
    void paySuccessSubtractStock(Long shopId, Long orderId, List<ProductStockVO> dataList);

    /**
     * 订单取消后恢复库存
     *
     * @param shopId  店铺id
     * @param orderId  订单ID
     */
    void orderCancelRecoverStock(Long shopId, Long orderId, List<ProductStockVO> list);

    /**
     * 订单退菜或退款后回退库存
     * @param shopId  店铺id
     * @param orderId  订单ID
     * @param list 库存恢复数据
     */
    void orderRefundReturnStock(Long shopId, Long orderId, List<ProductStockVO> list);

    List<ProductVO> listAndLowPrice(Long shopId, List<Long> productIds);

    /**
     * 清除分类商品缓存
     * @param shopId 店铺id
     * @param categoryId 商品分类id
     */
    void cleanCategoryProduct(Long shopId, Long categoryId);
}
