services:
    
    flux_se.sylius_stripe.command_provider.checkout:
        class: Sylius\Bundle\PaymentBundle\CommandProvider\ActionsCommandProvider
        arguments:
            - !tagged_locator
                tag: flux_se.sylius_stripe.command_provider.checkout
                index_by: 'action'
        tags:
            - name: sylius.payment_request.command_provider
              gateway_factory: 'stripe_checkout'
          
    flux_se.sylius_stripe.command_provider.checkout.capture:
        class: FluxSE\SyliusStripePlugin\CommandProvider\Checkout\CapturePaymentRequestCommandProvider
        tags:
            - name: flux_se.sylius_stripe.command_provider.checkout
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_CAPTURE
            - name: flux_se.sylius_stripe.command_provider.checkout
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_AUTHORIZE
          
    flux_se.sylius_stripe.command_provider.checkout.status:
        class: FluxSE\SyliusStripePlugin\CommandProvider\Checkout\StatusPaymentRequestCommandProvider
        tags:
            - name: flux_se.sylius_stripe.command_provider.checkout
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_STATUS
    
    flux_se.sylius_stripe.command_provider.checkout.notify:
        class: FluxSE\SyliusStripePlugin\CommandProvider\Checkout\NotifyPaymentRequestCommandProvider
        tags:
            - name: flux_se.sylius_stripe.command_provider.checkout
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_NOTIFY
    
    flux_se.sylius_stripe.command_provider.checkout.cancel:
        class: FluxSE\SyliusStripePlugin\CommandProvider\Checkout\CancelPaymentRequestCommandProvider
        tags:
            - name: flux_se.sylius_stripe.command_provider.checkout
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_CANCEL
    
    flux_se.sylius_stripe.command_provider.checkout.refund:
        class: FluxSE\SyliusStripePlugin\CommandProvider\Checkout\RefundPaymentRequestCommandProvider
        tags:
            - name: flux_se.sylius_stripe.command_provider.checkout
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_REFUND
    
    flux_se.sylius_stripe.command_provider.web_elements:
        class: Sylius\Bundle\PaymentBundle\CommandProvider\ActionsCommandProvider
        arguments:
            - !tagged_locator
                tag: flux_se.sylius_stripe.command_provider.web_elements
                index_by: 'action'
        tags:
            - name: sylius.payment_request.command_provider
              gateway_factory: 'stripe_web_elements'
          
    flux_se.sylius_stripe.command_provider.web_elements.capture:
        class: FluxSE\SyliusStripePlugin\CommandProvider\WebElements\CapturePaymentRequestCommandProvider
        tags:
            - name: flux_se.sylius_stripe.command_provider.web_elements
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_CAPTURE
            - name: flux_se.sylius_stripe.command_provider.web_elements
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_AUTHORIZE
          
    flux_se.sylius_stripe.command_provider.web_elements.status:
        class: FluxSE\SyliusStripePlugin\CommandProvider\WebElements\StatusPaymentRequestCommandProvider
        tags:
            - name: flux_se.sylius_stripe.command_provider.web_elements
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_STATUS
    
    flux_se.sylius_stripe.command_provider.web_elements.notify:
        class: FluxSE\SyliusStripePlugin\CommandProvider\WebElements\NotifyPaymentRequestCommandProvider
        tags:
            - name: flux_se.sylius_stripe.command_provider.web_elements
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_NOTIFY
    
    flux_se.sylius_stripe.command_provider.web_elements.cancel:
        class: FluxSE\SyliusStripePlugin\CommandProvider\WebElements\CancelPaymentRequestCommandProvider
        tags:
            - name: flux_se.sylius_stripe.command_provider.web_elements
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_CANCEL
    
    flux_se.sylius_stripe.command_provider.web_elements.refund:
        class: FluxSE\SyliusStripePlugin\CommandProvider\WebElements\RefundPaymentRequestCommandProvider
        tags:
            - name: flux_se.sylius_stripe.command_provider.web_elements
              action: !php/const Sylius\Component\Payment\Model\PaymentRequestInterface::ACTION_REFUND
