package cn.axzo.workflow.starter.handler;

import cn.axzo.workflow.common.model.response.mq.ProcessActivityDTO;
import org.springframework.core.Ordered;

/**
 * 流程节点相关事件
 * <p>
 * 节点代表“流程配置”中的一个“审批节点”或“业务节点”，流程配置请按照以下路径去查看
 * <pre>
 *  OMS -> 审批流程 -> 审批配置台 -> 流程配置
 * </pre>
 * @author wangli
 * @since 2024/5/27 16:25
 */
public interface ProcessActivityEventHandler extends Ordered {

    /**
     * 节点已启动
     *
     * @param activityDTO 入参
     */
    void onStart(ProcessActivityDTO activityDTO);

    /**
     * 节点等待业务指定审批人
     *
     * @param activityDTO 入参
     */
    void onWaitAssignee(ProcessActivityDTO activityDTO);

    /**
     * 节点已完成
     *
     * @param activityDTO 入参
     */
    void onTake(ProcessActivityDTO activityDTO);

    /**
     * 节点已取消
     *
     * @param activityDTO 入参
     */
    void onEnd(ProcessActivityDTO activityDTO);
}
