package com.iailab.module.model.mdk.predict;

import com.iailab.module.model.common.exception.ModelResultErrorException;
import com.iailab.module.model.mcs.pre.enums.ItemRunStatusEnum;
import com.iailab.module.model.mdk.common.exceptions.ItemInvokeException;
import com.iailab.module.model.mdk.vo.ItemVO;
import com.iailab.module.model.mdk.vo.PredictResultVO;
import com.iailab.module.model.mdk.vo.StAdjustDeviationDTO;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月01日
 */
public interface PredictItemHandler {

    /**
     * 单个预测项预测
     *
     * @param predictTime
     * @param predictItemDto
     * @param predictValueMap
     * @return
     * @throws ItemInvokeException
     */
    PredictResultVO predict(Date predictTime, ItemVO predictItemDto, Map<String, double[]> predictValueMap) throws ItemInvokeException;

    /**
     * 单个预测项预测(模拟调整)
     *
     * @param predictTime
     * @param predictItemDto
     * @param deviationList
     * @return
     * @throws ItemInvokeException
     * @throws ModelResultErrorException
     */
    PredictResultVO predictAdjust(Date predictTime, ItemVO predictItemDto, List<StAdjustDeviationDTO> deviationList) throws ItemInvokeException, ModelResultErrorException;
}