package com.njcn.system.pojo.param;

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

import javax.validation.constraints.*;
import java.math.BigDecimal;

/**
 * @version 1.0.0
 * @author: chenchao
 * @date: 2022/08/09 15:23
 */
@Data
public class ConfigParam {

    /**
     * 系统类型
     */
    @ApiModelProperty("系统类型：0-省级系统；1-企业系统；2-数据中心")
    @NotNull(message = "系统类型不可为空")
    @Max(value = 2)
    @Min(value = 0)
    private Integer type;

    /**
     * 数据上报
     */
    @ApiModelProperty("数据上报（以逗号分割，比如：冀北，网公司）默认为空")
    private String dataReport;

    /**
     * 审计日志大小
     */
    @ApiModelProperty("审计日志大小（MB）")
    @NotNull(message = "审计日志大小不可为空")
    @Min(value = 1024,message = "审计日志大小不能小于1024M")
    @Max(value = 204800,message = "审计日志大小不能大于20G")
    private BigDecimal logSize;

    /**
     * 审计日志保留时间
     */
    @ApiModelProperty("审计日志存储时间（1-6个月，默认3个月）")
    @Min(value = 1,message = "审计日志保留时间不能小于1")
    @Max(value = 6,message = "审计日志保留时间不能大于6")
    private Integer logTime;

    /**
     * 系统类型
     */
    @ApiModelProperty("激活状态：0-未激活；1-激活")
    @NotNull(message = "激活状态不可为空")
    @Max(value = 1)
    @Min(value = 0)
    private Integer state;

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

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


}
