package com.iailab.module.model.api.mcs.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年08月26日
 */
@Schema(description = "RPC 模型 - 预测数据 DTO")
@Data
public class PreDataViewRespDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    @Schema(description = "预测项ID")
    private String itemId;

    @Schema(description = "预测项名称")
    private String itemName;

    @Schema(description = "输出ID")
    private String outId;

    @Schema(description = "输出结果")
    private String resultstr;

    @Schema(description = "输出结果")
    private String resultName;

    @Schema(description = "预测时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date predictTime;

    @Schema(description = "量程上限")
    private BigDecimal rangeH;

    @Schema(description = "量程下限")
    private BigDecimal rangeL;

    @Schema(description = "柜位上限")
    private BigDecimal deadLineH;

    @Schema(description = "柜位下限")
    private BigDecimal deadLineL;

    @Schema(description = "运行上限")
    private BigDecimal limitH;

    @Schema(description = "运行下限")
    private BigDecimal limitL;

    @Schema(description = "当前")
    private BigDecimal currValue;

    @Schema(description = "最大值")
    private BigDecimal maxValue;

    @Schema(description = "最小值")
    private BigDecimal minValue;

    @Schema(description = "历史最大值")
    private BigDecimal hisMax;

    @Schema(description = "历史最小值")
    private BigDecimal hisMin;

    @Schema(description = "历史平均值")
    private BigDecimal hisAvg;

    @Schema(description = "历史最大值")
    private BigDecimal hisCumulant;

    @Schema(description = "预测最大值")
    private BigDecimal preMax;

    @Schema(description = "预测最小值")
    private BigDecimal preMin;

    @Schema(description = "预测平均值")
    private BigDecimal preAvg;

    @Schema(description = "预测最后一个值")
    private BigDecimal preLast;

    @Schema(description = "预测累计值")
    private BigDecimal preCumulant;

    @Schema(description = "调整值")
    private BigDecimal adjValue;

    @Schema(description = "调整值")
    private BigDecimal[] adjValueArr;

    @Schema(description = "属性")
    private Map<String, Object> prop;

    @Schema(description = "真实值")
    private List<Object[]> realData;

    @Schema(description = "T+N预测值,N表示预测频率")
    private List<Object[]> preDataN;

    @Schema(description = "T+L预测值,L表示预测长度")
    private List<Object[]> preDataL;

    @Schema(description = "当时预测值")
    private List<Object[]> curData;

    @Schema(description = "调整预测值")
    private List<Object[]> adjData;

    @Schema(description = "预警信息")
    private List<AlarmMessageRespDTO> alarmList;

    @Schema(description = "预警信息")
    private String alarmMessage;

    @Schema(description = "展示线类型")
    private String lineType;

    @Schema(description = "累计真实值")
    private List<Object[]> cumulantRealData;

    @Schema(description = "累计预测值")
    private List<Object[]> cumulantPreData;
}