package com.jeequan.jeepay.thirdparty.channel;

import com.jeequan.jeepay.core.interfaces.paychannel.*;
import com.jeequan.jeepay.core.utils.SpringBeansUtil;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

/**
 * 返回各个通道的的
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class IsvFactory {
    public static IIsvmchApplymentService getIsvMchApplymentService(String ifCode) {
        return SpringBeansUtil.getBean(ifCode + "MchApplymentService", IIsvmchApplymentService.class);
    }

    public static IIsvmchWxConfigService getIsvMchWxConfigService(String ifCode) {
        return SpringBeansUtil.getBean(ifCode + "IsvmchWxConfigService", IIsvmchWxConfigService.class);
    }

    public static IIsvmchAlipayConfigService getIsvMchAlipayConfigService(String ifCode) {
        return SpringBeansUtil.getBean(ifCode + "IsvmchAlipayConfigService", IIsvmchAlipayConfigService.class);
    }

    public static IIsvmchModifyApplymentService getIsvMchModifyApplymentService(String ifCode) {
        return SpringBeansUtil.getBean(ifCode + "IsvmchModifyApplymentService", IIsvmchModifyApplymentService.class);
    }

    public static IGetApplymentDataService getGetApplymentDataService(String ifCode) {
        return SpringBeansUtil.getBean(ifCode + "GetApplymentDataService", IGetApplymentDataService.class);
    }

    public static IIsvmchWrapper getIsvMchWrapper(String ifCode) {
        return SpringBeansUtil.getBean(ifCode + "IsvmchWrapper", IIsvmchWrapper.class);
    }

    public static ITransferService getTransferService(String ifCode) {
        return SpringBeansUtil.getBean(ifCode + "TransferService", ITransferService.class);
    }
}
