package com.seer.teach.pay.admin.withdrawal.service;

import com.seer.teach.pay.admin.withdrawal.controller.request.PayWithdrawalApplyReq;
import com.seer.teach.pay.admin.withdrawal.controller.request.PayWithdrawalAuditReq;

/**
 * <p>
 * 支付模块-提现申请核心服务类
 * </p>
 *
 * @author ZS
 * @since 2025-10-16
 */
public interface IAdminPayMerchantWithdrawalApplyService {

    /**
     * 申请提现
     *
     * @param userId 用户ID
     * @param payWithdrawalApply 提现申请的请求参数
     * @return String 提现申请单号
     */
    String applyWithdrawal(Long userId, PayWithdrawalApplyReq payWithdrawalApply);

    /**
     * 审核提现申请
     *
     * @param id            提现申请ID
     * @param auditRequest  审核请求参数
     * @param auditorUserId 审核人ID
     * @return Boolean      审核结果
     */
    boolean auditWithdrawal(Integer id, PayWithdrawalAuditReq auditRequest, Long auditorUserId);
}