package com.njcn.device.pq.pojo.param;

import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.web.constant.ValidMessage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.util.List;

/**
 * @version 1.0.0
 * @author: chenchao
 * @date: 2022/05/18 10:00
 */
@Data
@ApiModel
public class FlowStrategyParam {

    /**
     * 策略名称
     */
    @ApiModelProperty("策略名称")
    private String name;

    /**
     * 是否通用（0:定制 1:通用）	只有一条通用数据
     */
    @ApiModelProperty("是否通用（0:定制 1:通用）")
    private Integer flag;

    /**
     * 普通占比值
     */
    @ApiModelProperty("普通占比值")
    private String comPerData;

    /**
     * 普通占比绑定类型
     */
    @ApiModelProperty("普通占比绑定类型")
    private List<String> comList;

    /**
     * 预警占比值
     */
    @ApiModelProperty("预警占比值")
    private String warnPerData;

    /**
     * 预警占比绑定类型
     */
    @ApiModelProperty("预警占比绑定类型")
    private List<String> warnList;

    /**
     * 告警占比值
     */
    @ApiModelProperty("告警占比值")
    private String alertPerData;

    /**
     * 告警占比绑定类型
     */
    @ApiModelProperty("告警占比绑定类型")
    private List<String> alertList;

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

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


}
