<?php

declare(strict_types=1);

namespace Kylin\Pay\Shortcut\Wechat;

use Kylin\Pay\Artful\Contract\ShortcutInterface;
use Kylin\Pay\Artful\Plugin\AddPayloadBodyPlugin;
use Kylin\Pay\Artful\Plugin\ParserPlugin;
use Kylin\Pay\Artful\Plugin\StartPlugin;
use Kylin\Pay\Plugin\Wechat\AddRadarPlugin;
use Kylin\Pay\Plugin\Wechat\ResponsePlugin;
use Kylin\Pay\Plugin\Wechat\V3\AddPayloadSignaturePlugin;
use Kylin\Pay\Plugin\Wechat\V3\Pay\Jsapi\InvokePlugin;
use Kylin\Pay\Plugin\Wechat\V3\Pay\Jsapi\PayPlugin;
use Kylin\Pay\Plugin\Wechat\V3\VerifySignaturePlugin;

class MpShortcut implements ShortcutInterface
{
    public function getPlugins(array $params): array
    {
        return [
            StartPlugin::class,
            PayPlugin::class,
            AddPayloadBodyPlugin::class,
            AddPayloadSignaturePlugin::class,
            AddRadarPlugin::class,
            InvokePlugin::class,
            VerifySignaturePlugin::class,
            ResponsePlugin::class,
            ParserPlugin::class,
        ];
    }
}
