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

import com.njcn.common.pojo.constant.PatternRegex;
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 javax.validation.constraints.Pattern;

@Data
public class SgSensitiveUnitParam {


    /**
     * 设备id
     */
    @ApiModelProperty("设备id")
    @NotBlank(message = ValidMessage.MISS_PREFIX + "machineId")
    private String machineId;

    /**
     * 元器件名称
     */
    @ApiModelProperty("元器件名称")
    @NotBlank(message = ValidMessage.MISS_PREFIX + "name")
    private String name;

    /**
     * 类型
     */
    @ApiModelProperty("类型")
    private String type;

    /**
     * 灵敏度（0 平均，1 高，2 中，3 低）
     */
    @ApiModelProperty("灵敏度")
    @NotNull(message = ValidMessage.MISS_PREFIX + "sensitivity")
    private Integer sensitivity = 0;

    /**
     * 耐受能力是否为标准值（0 否，1 是）
     */
    @ApiModelProperty("耐受能力是否为标准值（0 否，1 是）")
    @NotNull(message = ValidMessage.MISS_PREFIX + "standardFlag")
    private Integer standardFlag = 0;

    /**
     * 上限曲线-持续时间（ms）
     */
    @ApiModelProperty("上限曲线-持续时间（ms）")
    @NotNull(message = ValidMessage.MISS_PREFIX + "vtcTimeUpper")
    private Double vtcTimeUpper;

    /**
     * 上限曲线-暂降幅值（p.u.）
     */
    @ApiModelProperty("上限曲线-暂降幅值（p.u.）")
    @NotNull(message = ValidMessage.MISS_PREFIX + "vtcAmpUpper")
    private Double vtcAmpUpper;

    /**
     * 下限曲线-持续时间（ms）
     */
    @ApiModelProperty("下限曲线-持续时间（ms）")
    @NotNull(message = ValidMessage.MISS_PREFIX + "vtcTimeLower")
    private Double vtcTimeLower;

    /**
     * 下限曲线-暂降幅值（p.u.）
     */
    @ApiModelProperty("下限曲线-暂降幅值（p.u.）")
    @NotNull(message = ValidMessage.MISS_PREFIX + "vtcAmpLower")
    private Double vtcAmpLower;

    /**
     * 更新操作实体
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class SgSensitiveUnitUpdateParam extends SgSensitiveUnitParam {

        /**
         * 表Id
         */
        @ApiModelProperty("id")
        @NotBlank(message = ValidMessage.ID_NOT_BLANK)
        @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR)
        private String id;

    }


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

        @ApiModelProperty("设备id")
        @NotBlank(message = ValidMessage.MISS_PREFIX + "machineId")
        private String machineId;

    }
}
