package com.syjy.calculate.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * 计算公式
 *
 * @author zcl
 * @version 1.0
 * @since 2022/8/02 10:16
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class CalculationFormula extends PageReq implements Serializable {

    /**
     * 公式编号（运维标识，主键）
     */
    private static final long serialVersionUID = 1L;

    private Integer id;

    /**
     * 公式类型
     */
    private String type;

    /**
     * 公式执行顺序
     */
    private Integer orderNo;

    /**
     * 公式内容
     */
    private String formula;

    /**
     * 上报省调
     */
    private String province;

    /**
     * 场站类型
     */
    private String electricType;

    /**
     * 场站编码
     */
    private String stationCode;

    /**
     * 细则对应的公式
     */
    private String ruleFormula;

    /**
     * 是否为百分比  0:不是 1:是
     */
    private String isRate;

    /**
     * 是否限定结果最小最大值为[0,1]   0:不限制 1:限制
     */
    private String maxMinLimit;

    /**
     * 状态
     */
    private String state;

    /**
     * 生成预测文件类型
     */
    private String dataSourceType;

    /**
     * 需要计算提前几天的(不包含当天)
     */
    private String howManyDays;

    private String creator;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    private String lastModifier;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date lastModifyTime;
}
