package cn.ey.biz.module.system.controller.engagement.task.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

@ApiModel("项目管理 - 任务生成规则 Request VO")
@Data
public class EngagementTaskRuleReqVO implements Serializable {
    private static final long serialVersionUID = 1L;

    public interface Save {
    }

    public interface Update {
    }

    @ApiModelProperty(value = "任务生成规则id")
    @NotNull(message = "任务生成规则id不能为空", groups = {Update.class})
    private Long id;

    @ApiModelProperty(value = "国家编码")
    @NotBlank(message = "国家编码不能为空", groups = {Save.class})
    @Size(max = 16, message = "国家编码不能超过16个字符")
    private String countryCode;

    @ApiModelProperty(value = "管理区域编码")
    @NotBlank(message = "管理区域编码不能为空", groups = {Save.class})
    @Size(max = 16, message = "管理区域编码不能超过16个字符")
    private String mrCode;

    @ApiModelProperty(value = "业务线编码")
    @NotBlank(message = "业务线编码不能为空", groups = {Save.class})
    @Size(max = 16, message = "业务线编码不能超过16个字符")
    private String slCode;

    @ApiModelProperty(value = "子业务线编码")
    @NotBlank(message = "子业务线编码不能为空", groups = {Save.class})
    @Size(max = 16, message = "子业务线编码不能超过16个字符")
    private String sslCode;

    @ApiModelProperty(value = "能力单位编码")
    @NotBlank(message = "能力单位编码不能为空", groups = {Save.class})
    @Size(max = 16, message = "能力单位编码不能超过16个字符")
    private String competencyCode;

    @ApiModelProperty(value = "子管理单位编码")
    @NotBlank(message = "子管理单位编码不能为空", groups = {Save.class})
    @Size(max = 16, message = "子管理单位编码不能超过16个字符")
    private String smuCode;

    @ApiModelProperty(value = "任务类型")
    @NotNull(message = "子管理单位编码不能为空", groups = {Save.class})
    private String taskType;

    @ApiModelProperty(value = "日期类型")
    private String dateType;

    @ApiModelProperty(value = "输入框触发数值")
    private Integer warningValue;

    @ApiModelProperty(value = "逾期天数")
    @Size(max = 16, message = "逾期天数不能超过16个字符")
    private String overdueDay;

    @ApiModelProperty(value = "规则描述")
    @Size(max = 50, message = "规则描述不能超过50个字符")
    private String taskRuleDesc;

    @ApiModelProperty(value = "应用描述")
    @Size(max = 50, message = "应用描述不能超过50个字符")
    private String applicationDesc;
}
