package com.sckw.contract.api.feign;

import com.sckw.contract.api.model.dto.req.SalesReportGoodsQueryDto;
import com.sckw.contract.api.model.dto.req.TradeEntListQueryFeignDto;
import com.sckw.contract.api.model.dto.res.SalesReportGoodsResVo;
import com.sckw.contract.api.model.dto.res.TradeEntInfoResVo;
import com.sckw.core.web.response.BaseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 销售报表相关Feign接口
 */
@FeignClient(name = "sckw-ng-contract", contextId = "salesReportFeignService")
public interface SalesReportContractFeignService {

    /**
     * 查询销售报表客户列表
     * 范围为与当前公司存在合同（含已结束）的所有贸易商
     *
     * @param queryFeignDto 查询参数
     * @return 客户列表
     */
    @PostMapping("/kwcPurchase/queryTradeEntList")
    BaseResult<List<TradeEntInfoResVo>> queryTradeEntList(@RequestBody TradeEntListQueryFeignDto queryFeignDto);

    /**
     * 查询销售报表商品列表
     * 范围为与当前公司存在合同（含已结束）的所有商品
     *
     * @param queryDto 查询参数
     * @return 商品列表
     */
    @PostMapping("/kwcPurchase/goodsList")
    BaseResult<List<SalesReportGoodsResVo>> queryGoodsList(@RequestBody SalesReportGoodsQueryDto queryDto);
}
