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

import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PredictResultVO {

    /**
     * 如果是单独预测项,则predictID=itemID;如果是模块,则predictID=moduleID
     */
    private String predictId;

    /**
     * 预测的时间
     */
    private Date predictTime;

    /**
     * 统一预测入口的预测类型(循环调用、手动调用)
     */
    private double[][] predictMatrix;

    /**
     * 统一预测入口的预测类型(循环调用、手动调用) Map<MmItemOutputEntity,double[]>
     */
    private Map<MmItemOutputEntity, double[]> predictMatrixs;

    /**
     * 时间间隔 (当前预测时间 与 上一次预测时间 相差的分钟数;系统计算得出)
     */
    private int t;

    /**
     * 时间间隔 (当前预测时间 与 上一次预测时间 相差的分钟数;系统计算得出)
     */
    private int lt;

    /**
     * 保留的预测点位 (T+2 则n=2, T+30则n=30, T+n则表示从最后点位开始,n=预测长度;n由系统配置得出)
     */
    private String saveIndex;

    /**
     * 粒度
     */
    private Integer granularity;

    /**
     * 预测集合
     */
    private List<DataValueVO> predictList;
    /**
     * 预测集合
     */
    private HashMap<String, List<DataValueVO>> predictLists;

    /**
     * 模型结果
     */
    private HashMap<String, Object> modelResult;
}