package com.njcn.advance.pojo.param.govern.voltage;

import com.njcn.web.constant.ValidMessage;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @author hongawen
 * @since 2024-03-27
 */
@Data
public class SgGovernSchemeHistoryParam  implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * 生产线索引
     */
    @ApiModelProperty("生产线索引")
    @NotBlank(message = ValidMessage.MISS_PREFIX + "productLineId")
    private String productLineId;


    /**
     * 参数数据的起始时间
     */
    @ApiModelProperty("参数数据的起始时间")
    @NotBlank(message = ValidMessage.MISS_PREFIX + "startTime")
    private String startTime;

    /**
     * 参考数据的截止时间
     */
    @ApiModelProperty("参考数据的截止时间")
    @NotBlank(message = ValidMessage.MISS_PREFIX + "endTime")
    private String endTime;


    /**
     * 评估人期望的回收周期
     */
    @ApiModelProperty("评估人期望的回收周期")
    @NotNull(message = ValidMessage.MISS_PREFIX + "payBackPeriod")
    private Integer payBackPeriod;

    /**
     * UPS评估需要的参数
     */
    @NotNull(message = "UPS评估参数缺失")
    private CommonSchemeParam ups;

    /**
     * AVC评估需要的参数
     */
    @NotNull(message = "AVC评估参数缺失")
    private CommonSchemeParam avc;

    /**
     * 快切评估需要的参数
     */
    @NotNull(message = "快切评估参数缺失")
    private QuickSchemeParam quick;


    /**
     * 评估批次
     */
    private String evaluationBatch;

    /**
     * 最佳方案id
     */
    private String bestSchemeId;


    /**
     * 治理容量(kW)
     */
    private Double governPower;

    /**
     * 暂降次数
     */
    private Integer eventCount;

    /**
     * 中断次数
     */
    private Integer breakCount;

    /**
     * 不做治理，可能造成的经济损失
     */
    private Double loss;


    /**
     * 分页查询实体
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class SgSchemeHistoryQueryParam extends BaseParam {

        /**
         * 生产线id
         */
        @ApiModelProperty("用户id")
        private String userId;

    }


}
