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

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

import javax.validation.Valid;
import java.io.Serializable;
import java.util.List;

/**
 * 新版本的流程定义模型 JSON 结构
 *
 * @author wangli
 * @since 2023/11/18 16:57
 */
@ApiModel("新版本的流程定义模型 JSON 结构")
@Data
@Accessors(chain = true)
public class BpmnJsonModel implements Serializable {

    /**
     * 流程的Json 结构
     */
    @ApiModelProperty(value = "流程的 Json 结构")
    private BpmnJsonNode node;

    /**
     * 通知管理配置
     */
    @ApiModelProperty(value = "通知管理配置")
    @Valid
    private BpmnNoticeConf noticeConf;

    /**
     * 流程定义的全局默认按钮权限数据
     */
    @ApiModelProperty(value = "流程按钮配置")
    @Valid
    private BpmnButtonConf buttonConf;

    /**
     * 流程定义的全局字段管理数据
     */
    @ApiModelProperty(value = "流程字段配置")
    @Valid
    private List<BpmnFieldConf> fieldConf;
}
