<?php

namespace Kylin\Payment\Facades;

use Illuminate\Support\Facades\Facade;

/**
 * @method static \Kylin\Payment\Gateways\WechatGateway wechat(string $name = 'default') 获取微信支付网关实例
 * @method static \Kylin\Payment\Gateways\AlipayGateway alipay(string $name = 'default') 获取支付宝支付网关实例
 * @method static \Kylin\Payment\Gateways\UnionpayGateway unionpay(string $name = 'default') 获取银联支付网关实例
 * @method static \Kylin\Payment\Gateways\DouyinGateway douyin(string $name = 'default') 获取抖音支付网关实例
 * @method static \Kylin\Payment\Gateways\JsbankGateway jsbank(string $name = 'default') 获取京东支付网关实例
 * @method static \Kylin\Payment\Gateways\AlipayGlobalGateway alipayGlobal(string $name = 'default') 获取支付宝国际支付网关实例
 * @method static \Kylin\Payment\Gateways\PaypalGateway paypal(string $name = 'default') 获取PayPal支付网关实例
 * @method static \Kylin\Payment\Gateways\StripeGateway stripe(string $name = 'default') 获取Stripe支付网关实例
 * @method static \Kylin\Payment\Gateways\GooglePayGateway googlePay(string $name = 'default') 获取Google Pay支付网关实例
 * @method static \Kylin\Payment\Gateways\ApplePayGateway applePay(string $name = 'default') 获取Apple Pay支付网关实例
 * @method static mixed pay(string $type, array $params, string $name = 'default') 发起支付
 * @method static mixed query(string $type, string $orderNo, string $name = 'default') 查询订单
 * @method static mixed refund(string $type, array $params, string $name = 'default') 发起退款
 * @method static mixed close(string $type, string $orderNo, string $name = 'default') 关闭订单
 * @method static mixed callback(string $type, array $data, string $name = 'default') 处理支付回调
 * @method static void log(string $type, string $action, array $data = [], string $message = '', mixed $result = null) 记录支付日志
 * @method static \Kylin\Payment\PaymentManager manager() 获取支付管理器
 * @method static \Kylin\Payment\Services\PaymentRecordService paymentRecord() 获取支付记录服务
 * @method static \Kylin\Payment\Services\PaymentCallbackLogService callbackLog() 获取回调日志服务
 * @method static \Kylin\Payment\Services\PaymentStatisticsService statistics() 获取支付统计服务
 * @method static \Kylin\Payment\Services\LanguageService lang() 获取语言服务
 * @method static \Kylin\Payment\Services\ConfigCacheService configCache() 获取配置缓存服务
 * @method static \Kylin\Payment\Services\QueueService queue() 获取队列服务
 * @method static \Kylin\Payment\Services\PaymentScenarioService scenario() 获取支付场景服务
 * @method static \Kylin\Payment\Services\SecurityService security() 获取安全服务
 * @method static \Kylin\Payment\Services\VersionManagerService version() 获取版本管理服务
 * @method static \Kylin\Payment\Services\TestToolService test() 获取测试工具服务
 * @method static \Kylin\Payment\Services\NotificationService notify() 获取通知服务
 * @method static \Kylin\Payment\Services\QrCodeService qrcode() 获取二维码服务
 * @method static \Kylin\Payment\Services\PaymentLinkService link() 获取支付链接服务
 * @method static \Kylin\Payment\Services\ProfitSharingService sharing() 获取分润服务
 * @method static \Kylin\Payment\Services\CouponService coupon() 获取优惠券服务
 * @method static \Kylin\Payment\Services\ReportService report() 获取报表服务
 * @method static \Kylin\Payment\Services\PaymentRetryService retry() 获取支付重试服务
 * @method static \Kylin\Payment\Services\PaymentTimeoutService timeout() 获取支付超时服务
 * @method static \Kylin\Payment\Services\PaymentPreCreateService preCreate() 获取预创建支付服务
 * @method static \Kylin\Payment\Services\PaymentDataMaskingService masking() 获取数据脱敏服务
 * @method static \Kylin\Payment\Services\PaymentRateLimitService rateLimit() 获取速率限制服务
 * @method static \Kylin\Payment\Services\PaymentWebhookService webhook() 获取Webhook服务
 * @method static \Kylin\Payment\Services\PaymentIntelligentRoutingService routing() 获取智能路由服务
 * @method static \Kylin\Payment\Services\PaymentBatchOperationService batch() 获取批量操作服务
 */
class Payment extends Facade
{
    /**
     * 获取组件的注册名称
     */
    protected static function getFacadeAccessor(): string
    {
        return 'kylin.payment';
    }
}
