package cn.axzo.workflow.common.model.request.category;

import cn.axzo.workflow.common.enums.BusinessTypeEnum;
import cn.axzo.workflow.common.model.request.BpmPageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 自定义分类的查询入参模型
 */
@ApiModel("自定义分类的查询入参模型")
@EqualsAndHashCode(callSuper = true)
@Data
public class CategorySearchDTO extends BpmPageParam {
    /**
     * 字典类型, bpm_model_category
     */
    @ApiModelProperty(value = "字典类型", example = "dict_group", notes = "精准匹配")
    private String dictType;

    /**
     * 字典标签, 对应业务名称
     */
    @ApiModelProperty(value = "字典标签", example = "新业务")
    private String label;

    /**
     * 字典值, 对应业务 ID
     */
    @ApiModelProperty(value = "字典值", example = "new_business")
    private String value;
    /**
     * 字典类型列表, bpm_model_category
     */
    @ApiModelProperty(value = "字典值列表", example = "[\"new_business\", \"another_business\"]")
    private List<String> values;

    /**
     * 字典状态, 0 停用, 1 启用
     */
    @ApiModelProperty(value = "状态", example = "0 or 1")
    private Integer status;

    /**
     * 工作台类型: 1企业工作台 2项目部工作台 3政务监管工作台 6OMS工作台
     */
    @ApiModelProperty(value = "工作台类型值, 1企业工作台 2项目部工作台 3政务监管工作台 6OMS工作台")
    private String workspaceTypeCode;

    /**
     * 工作台类型值列表, 1企业工作台 2项目部工作台 3政务监管工作台 6OMS工作台
     */
    @ApiModelProperty(value = "工作台类型值列表, 1企业工作台 2项目部工作台 3政务监管工作台 6OMS工作台")
    private List<String> workspaceTypeCodes;

    /**
     * 租户 ID
     */
    @ApiModelProperty(value = "租户 ID", example = "1")
    private String tenantId = "";

    /**
     * 业务类型
     */
    @ApiModelProperty(value = "业务类型")
    private BusinessTypeEnum businessType;
    /**
     * 业务类型列表
     */
    @ApiModelProperty(value = "业务类型列表")
    private List<BusinessTypeEnum> businessTypes;

    @ApiModelProperty(value = "根据创建时间排序")
    private String orderCreateAt;
}
