package cn.axzo.workflow.common.model.response.mq;

import cn.axzo.workflow.common.enums.ProcessActivityEventEnum;
import cn.axzo.workflow.common.model.request.bpmn.BpmnNoticeConf;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 流程活动 MQ payload 模型
 *
 * @author wangli
 * @since 2023/11/21 18:01
 */
@Data
@Accessors(chain = true)
public class ProcessActivityDTO implements Serializable {

    /**
     * 流程实例相关 MQ 事件的数据类型
     */
    private ProcessActivityEventEnum type;

    /**
     * 节点唯一标识
     */
    private String activityId;

    /**
     * 节点名称
     */
    private String activityName;

    /**
     * 流程实例
     */
    private String processInstanceId;

    /**
     * 流程定义版本
     */
    private String processDefinitionId;

    /**
     * 业务分类 ID
     */
    private String processDefinitionKey;

    /**
     * 业务的唯一标识
     */
    private String businessKey;

    /**
     * 如果是"业务节点", 需要业务使用该 id 进行推动流程后续执行
     */
    private String triggerId;

    /**
     * 流程实例的所有变量
     */
    private Map<String, Object> variables;

    /**
     * 通过的人员
     */
    private List<BpmnTaskDelegateAssigner> passedAssigners;

    /**
     * 模型对应的通知模板配置信息
     */
    private BpmnNoticeConf noticeConf;

    /**
     * 当前数据的流程引擎版本
     */
    private String workflowEngineVersion;

}
