package com.jiayue.ipfcst.common.data.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;

/**
 * 为转发设定的预测数据转发类型
 *
 * @author 修唯xiuwei
 * @version 3.0
 */
@Entity
@Data
public class ForecastForSendAttribute {

    /**
     * Id
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "myid")
    @GenericGenerator(name = "myid", strategy = "com.jiayue.ipfcst.common.data.entity.id.CustomIDGenerator")
    Integer id;


    /**
     * 预测数据的点位顺序
     */
    @Column(length = 4)
    Integer pointNumber;


    /**
     * 该点隶属的预测节点  预测点 所属 天数/小时数
     * 超短期 未来 0 ，1 ，2 ，3 小时
     * 短期   未来 0 ，1 ，2 ，3 ，4 ， 5， 6， 7，8，9  最长10天的预测
     */
    @Column(length = 2)
    Integer forecastNode;


    /**
     * 预测功率的类型
     */
    @Column(length = 30)
    @Enumerated(EnumType.STRING)
    ForecastType forecastType;


    /**
     * 预测数据的类型
     */
    @Getter
    @AllArgsConstructor
    public enum ForecastType {

        /**
         * 短期及超短期的可用和理论功率
         */
        SHORT_AVAILABLE(0, "短期可用功率"),
        /**
         * 短期理论功率
         */
        SHORT_THEORETICAL(1, "短期理论功率"),
        /**
         * 超短期可用功率
         */
        ULTRA_SHORT_AVAILABLE(2, "超短期可用功率"),
        /**
         * 超短期理论功率
         */
        ULTRA_SHORT_THEORETICAL(3, "超短期理论功率");

        /**
         * 编号
         */
        Integer code;

        /**
         * 描述
         */
        String describe;
    }

}
