package com.njcn.bpm.pojo.param;

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.*;

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

/**
 * BPM 流程分类
 *
 * @author hongawen
 */
@Data
public class BpmCategoryParam  implements Serializable {


    /**
     * 分类名
     */
    @ApiModelProperty("分类名")
    @NotBlank(message = "分类名不能为空")
    private String name;

    /**
     * 分类标志
     */
    @ApiModelProperty("分类标志")
    @NotBlank(message = "分类标志不能为空")
    private String code;

    /**
     * 分类描述
     */
    @ApiModelProperty("分类描述")
    private String description;

    /**
     * 分类状态
     *
     */
    @ApiModelProperty("分类状态")
    private Integer status = 1;
    /**
     * 分类排序
     */
    @ApiModelProperty("分类排序")
    private Integer sort = 100;

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

        /**
         * 表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 BpmCategoryQueryParam extends BaseParam {

        /**
         * 表单名称
         */
        @ApiModelProperty("分类名称")
        private String name;


        /**
         * 分类标志
         */
        @ApiModelProperty("分类标志")
        private String code;


    }

}