services:

  FluxSE\SyliusPayumStripePlugin\StateMachine\AbstractOrderProcessor:
    abstract: true
    arguments:
      $payum: '@payum'

  flux_se.sylius_payum_stripe.state_machine.refund:
    public: true
    parent: FluxSE\SyliusPayumStripePlugin\StateMachine\AbstractOrderProcessor
    class: FluxSE\SyliusPayumStripePlugin\StateMachine\RefundOrderProcessor
    arguments:
      $refundRequestFactory: '@flux_se.sylius_payum_stripe.factory.refund_request'

  flux_se.sylius_payum_stripe.state_machine.cancel_authorized:
    public: true
    parent: FluxSE\SyliusPayumStripePlugin\StateMachine\AbstractOrderProcessor
    class: FluxSE\SyliusPayumStripePlugin\StateMachine\CancelAuthorizedOrderProcessor
    arguments:
      $cancelRequestFactory: '@flux_se.sylius_payum_stripe.factory.cancel_request'

  flux_se.sylius_payum_stripe.state_machine.complete_authorized:
    public: true
    parent: FluxSE\SyliusPayumStripePlugin\StateMachine\AbstractOrderProcessor
    class: FluxSE\SyliusPayumStripePlugin\StateMachine\CompleteAuthorizedOrderProcessor
    arguments:
      $captureRequestFactory: '@flux_se.sylius_payum_stripe.factory.capture_request'
