package com.sonic.lion.service;


import com.sonic.lion.domain.input.CreateBeneficiaryInput;
import com.sonic.lion.domain.input.GetFormSchemaInput;
import com.sonic.lion.domain.output.CreateBeneficiaryOutput;

/**
 * @author: code
 * @date: 2025/05/08
 * @Description:
 * @version: 1.0.0
 */
public interface AirwallexPayoutService {

    /**
     * Airwallex渠道在使用
     * @param input
     * @return
     */
    String getFormSchema(GetFormSchemaInput input);

    /**
     * Airwallex渠道在使用
     * @param inputJson
     * @return
     */
    String getFormSchema(String inputJson);

    /**
     * Airwallex渠道在使用
     * @param inputJson
     * @return
     */
    String validateFormSchema(String inputJson);

    /**
     * 创建新的收款人
     * @param input
     * @return
     */
    CreateBeneficiaryOutput createBeneficiary(CreateBeneficiaryInput input);

    /**
     * 创建新的收款人
     * @param beneficiaryId
     * @return
     */
    String getBeneficiary(String beneficiaryId);

    /**
     * 更新新的收款人
     * @param beneficiaryId
     * @param input
     */
    CreateBeneficiaryOutput updateBeneficiary(String beneficiaryId, CreateBeneficiaryInput input);

    /**
     * 模拟状态
     * @param paymentId
     * @param failureType
     * @param nextStatus
     * @return
     */
    String mockStats(String paymentId, String failureType, String nextStatus);

    /**
     * 成功的付款又变成失败的检查
     * @param tradeNo
     * @param batchId
     * @param failureReason
     */
    void airwallexSuccesToFailCheck(String tradeNo, String batchId, String failureReason);

//    /**
//     * Airwallex渠道在使用
//     * @param input
//     * @return
//     */
//    String getApiSchema(GetApiSchemaInput input);
//
//    /**
//     * 获取收款人详细信息
//     * @param beneficiaryId
//     * @return
//     */
//    String getBeneficiary(String beneficiaryId);
//
//    /**
//     * 获取受益人列表
//     * @return
//     */
//    String beneficiaryList();
//
//    /**
//     * 获取转账列表
//     * @return
//     */
//    String paymentsList();

}
