package com.sundot.airport.system.service.approval;

import com.sundot.airport.system.domain.approval.ApprovalInstance;

/**
 * 业务审批处理器接口
 * 各业务模块实现此接口处理审批完成后的业务逻辑
 */
public interface BusinessApprovalHandler {
    /**
     * 判断是否支持处理指定的业务类型
     *
     * @param businessType 业务类型
     * @return true-支持，false-不支持
     */
    boolean supports(String businessType);

    /**
     * 处理审批通过的业务逻辑
     *
     * @param instance 审批实例
     */
    void handleApproved(ApprovalInstance instance);

    /**
     * 处理审批驳回的业务逻辑
     *
     * @param instance 审批实例
     */
    void handleRejected(ApprovalInstance instance);

    /**
     * 处理审批流程取消
     *
     * @param instance
     */
    void handleCancelled(ApprovalInstance instance);
}
