package com.jwipc.inquiry.client;

import com.jwipc.api.dto.ApiResult;
import com.jwipc.inquiry.dto.CreatePriceInfoDTO;
import com.jwipc.inquiry.dto.HistoryPriceInfoDTO;
import com.jwipc.inquiry.dto.PriceImportCDTO;
import com.jwipc.inquiry.dto.PriceInfoClientDTO;

import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import java.util.List;

/**
 * @author shenyang.ou
 * @date 2024/2/28 10:54
 * @desc 价格信息记录
 */

public interface PriceInfoClient {
    /**
     * 生成价格信息记录
     * @param list 信息记录
     * @return 结果
     */
    void createPriceInfo(List<CreatePriceInfoDTO> list);

    /**
     * 根据物料编码和工厂获取历史最低价
     * @return 历史最低价
     */
    HistoryPriceInfoDTO getHistoryLowPrice(String materialCode, String factoryCode);

    /**
     * 根据物料编码和工厂获取上次中标价
     * @return 上次中标价
     */
    HistoryPriceInfoDTO getLastBidPrice(String materialCode, String factoryCode);

    /**
     * 根据物料编码和工厂和供应商编码获取最新价格信息记录
     * @return 最新价格信息记录
     */
    PriceInfoClientDTO getLastPrice(String materialCode, String factoryCode, String supplierCode);
    List<PriceInfoClientDTO> getList(Collection<? extends Serializable> idList);
    PriceInfoClientDTO getById(Long id);

    ApiResult<String> pushToOa(PriceImportCDTO priceImportCDTO);

    //最低有效价格,时间是定标的时候的系统时间
    List<PriceInfoClientDTO> getEffectiveMinPrice(List<String> materialCodes, Date date);
}
