package tech.easyflow.approval.service;

import tech.easyflow.approval.entity.ApprovalInstance;

import java.math.BigInteger;

/**
 * 审批结果业务处理器。
 */
public interface ApprovalResultHandler {

    /**
     * 处理审批通过后的业务回调。
     *
     * @param instance 审批实例
     * @param operatorId 操作人 ID
     * @param comment 审批意见
     */
    void handleApproved(ApprovalInstance instance, BigInteger operatorId, String comment);

    /**
     * 处理审批驳回后的业务回调。
     *
     * @param instance 审批实例
     * @param operatorId 操作人 ID
     * @param comment 审批意见
     */
    void handleRejected(ApprovalInstance instance, BigInteger operatorId, String comment);

    /**
     * 处理审批撤回后的业务回调。
     *
     * @param instance 审批实例
     * @param operatorId 操作人 ID
     * @param comment 审批意见
     */
    void handleRevoked(ApprovalInstance instance, BigInteger operatorId, String comment);
}
