Current File : //var/www/prestashop/modules/ps_checkout/config/common.yml
imports:
  - { resource: ./accounts.yml }
  - { resource: ./cache.yml }
  - { resource: ./command-handlers.yml }
  - { resource: ./http-clients.yml }
  - { resource: ./logger.yml }
  - { resource: ./query-handlers.yml }
  - { resource: ./repository.yml }
services:
  # From PS 1.7.0 to PS 1.7.3, the bundled version of Symfony is 2.x on which the _defaults
  # key is invalid. To prevent error on these versions, each service has to be specifically
  # declared as public.
  #  _defaults:
  #   public: true

  ps_checkout.module:
    class: "Ps_checkout"
    factory: ["Module", "getInstanceByName"]
    public: true
    arguments:
      - "ps_checkout"

  ps_checkout.db:
    class: Db
    factory: [ 'Db', 'getInstance' ]
    public: true

  ps_checkout.module.version:
    class: 'PrestaShop\Module\PrestashopCheckout\Version\Version'
    factory: ["PrestaShop\\Module\\PrestashopCheckout\\Version\\Version", "buildFromString"]
    public: true
    arguments:
      - '@=service("ps_checkout.module").version'

  PrestaShop\Module\PrestashopCheckout\Environment\EnvLoader:
    class: 'PrestaShop\Module\PrestashopCheckout\Environment\EnvLoader'
    public: true

  PrestaShop\Module\PrestashopCheckout\Environment\Env:
    class: 'PrestaShop\Module\PrestashopCheckout\Environment\Env'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration'

  ps_checkout.tactician.bus:
    class: 'League\Tactician\CommandBus'
    factory: [ '@PrestaShop\Module\PrestashopCheckout\CommandBus\TacticianCommandBusFactory', "create" ]

  ps_checkout.bus.command:
    class: 'PrestaShop\Module\PrestashopCheckout\CommandBus\TacticianCommandBusAdapter'
    public: true
    arguments:
      - "@ps_checkout.tactician.bus"

  PrestaShop\Module\PrestashopCheckout\CommandBus\TacticianCommandBusFactory:
    class: 'PrestaShop\Module\PrestashopCheckout\CommandBus\TacticianCommandBusFactory'
    public: true
    arguments:
      - "@ps_checkout.module"
      - "@ps_checkout.logger"
      - PrestaShop\Module\PrestashopCheckout\Order\Command\AddOrderPaymentCommand: 'PrestaShop\Module\PrestashopCheckout\Order\CommandHandler\AddOrderPaymentCommandHandler'
        PrestaShop\Module\PrestashopCheckout\Order\Command\CreateOrderCommand: 'PrestaShop\Module\PrestashopCheckout\Order\CommandHandler\CreateOrderCommandHandler'
        PrestaShop\Module\PrestashopCheckout\Order\Command\UpdateOrderStatusCommand: 'PrestaShop\Module\PrestashopCheckout\Order\CommandHandler\UpdateOrderStatusCommandHandler'
        PrestaShop\Module\PrestashopCheckout\Order\Matrice\Command\UpdateOrderMatriceCommand: 'PrestaShop\Module\PrestashopCheckout\Order\Matrice\CommandHandler\UpdateOrderMatriceCommandHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Order\Command\CreatePayPalOrderCommand: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\CommandHandler\CreatePayPalOrderCommandHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Order\Command\UpdatePayPalOrderCommand: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\CommandHandler\UpdatePayPalOrderCommandHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Order\Command\CapturePayPalOrderCommand: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\CommandHandler\CapturePayPalOrderCommandHandler'
        PrestaShop\Module\PrestashopCheckout\Checkout\Command\CancelCheckoutCommand: 'PrestaShop\Module\PrestashopCheckout\Checkout\CommandHandler\CancelCheckoutCommandHandler'
        PrestaShop\Module\PrestashopCheckout\Checkout\Command\SaveCheckoutCommand: 'PrestaShop\Module\PrestashopCheckout\Checkout\CommandHandler\SaveCheckoutCommandHandler'
        PrestaShop\Module\PrestashopCheckout\Checkout\Command\SavePayPalOrderStatusCommand: 'PrestaShop\Module\PrestashopCheckout\Checkout\CommandHandler\SavePayPalOrderStatusCommandHandler'
        PrestaShop\Module\PrestashopCheckout\Checkout\Command\UpdatePaymentMethodSelectedCommand: 'PrestaShop\Module\PrestashopCheckout\Checkout\CommandHandler\UpdatePaymentMethodSelectedCommandHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Payment\Refund\Command\RefundPayPalCaptureCommand: 'PrestaShop\Module\PrestashopCheckout\PayPal\Payment\Refund\CommandHandler\RefundPayPalCaptureCommandHandler'
        PrestaShop\Module\PrestashopCheckout\Order\Query\GetOrderForPaymentCompletedQuery: 'PrestaShop\Module\PrestashopCheckout\Order\QueryHandler\GetOrderForPaymentCompletedQueryHandler'
        PrestaShop\Module\PrestashopCheckout\Order\Query\GetOrderForPaymentDeniedQuery: 'PrestaShop\Module\PrestashopCheckout\Order\QueryHandler\GetOrderForPaymentDeniedQueryHandler'
        PrestaShop\Module\PrestashopCheckout\Order\Query\GetOrderForPaymentPendingQuery: 'PrestaShop\Module\PrestashopCheckout\Order\QueryHandler\GetOrderForPaymentPendingQueryHandler'
        PrestaShop\Module\PrestashopCheckout\Order\Query\GetOrderForPaymentRefundedQuery: 'PrestaShop\Module\PrestashopCheckout\Order\QueryHandler\GetOrderForPaymentRefundedQueryHandler'
        PrestaShop\Module\PrestashopCheckout\Order\Query\GetOrderForPaymentReversedQuery: 'PrestaShop\Module\PrestashopCheckout\Order\QueryHandler\GetOrderForPaymentReversedQueryHandler'
        PrestaShop\Module\PrestashopCheckout\Order\Query\GetOrderForApprovalReversedQuery: 'PrestaShop\Module\PrestashopCheckout\Order\QueryHandler\GetOrderForApprovalReversedQueryHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Order\Query\GetPayPalOrderForCartIdQuery: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\QueryHandler\GetPayPalOrderForCartIdQueryHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Order\Query\GetCurrentPayPalOrderStatusQuery: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\QueryHandler\GetCurrentPayPalOrderStatusQueryHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Order\Query\GetPayPalOrderQuery: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\QueryHandler\GetPayPalOrderQueryHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Order\Query\GetPayPalOrderForCheckoutCompletedQuery: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\QueryHandler\GetPayPalOrderForCheckoutCompletedQueryHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Order\Query\GetPayPalOrderForOrderConfirmationQuery: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\QueryHandler\GetPayPalOrderForOrderConfirmationQueryHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\Command\SavePaymentTokenCommand: 'PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\CommandHandler\SavePaymentTokenCommandHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\Command\DeletePaymentTokenCommand: 'PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\CommandHandler\DeletePaymentTokenCommandHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\Query\GetCustomerPaymentTokensQuery: 'PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\Query\GetCustomerPaymentTokensQueryHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Customer\Command\SavePayPalCustomerCommand: 'PrestaShop\Module\PrestashopCheckout\PayPal\Customer\CommandHandler\SavePayPalCustomerCommandHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\OAuth\Query\GetPayPalGetUserIdTokenQuery: 'PrestaShop\Module\PrestashopCheckout\PayPal\OAuth\Query\GetPayPalGetUserIdTokenQueryHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\Order\Command\SavePayPalOrderCommand: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\CommandHandler\SavePayPalOrderCommandHandler'
        PrestaShop\Module\PrestashopCheckout\PayPal\GooglePay\Query\GetGooglePayTransactionInfoQuery: 'PrestaShop\Module\PrestashopCheckout\PayPal\GooglePay\Query\GetGooglePayTransactionInfoQueryHandler'

  PrestaShop\Module\PrestashopCheckout\Event\SymfonyEventDispatcherFactory:
    class: 'PrestaShop\Module\PrestashopCheckout\Event\SymfonyEventDispatcherFactory'
    public: true
    arguments:
      - "@ps_checkout.logger"
      - '@PrestaShop\Module\PrestashopCheckout\Logger\LoggerConfiguration'

  PrestaShop\Module\PrestashopCheckout\Checkout\EventSubscriber\CheckoutEventSubscriber:
    class: 'PrestaShop\Module\PrestashopCheckout\Checkout\EventSubscriber\CheckoutEventSubscriber'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Checkout\CheckoutChecker'
      - '@ps_checkout.bus.command'
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PsCheckoutCartRepository'

  PrestaShop\Module\PrestashopCheckout\Order\EventSubscriber\OrderEventSubscriber:
    class: 'PrestaShop\Module\PrestashopCheckout\Order\EventSubscriber\OrderEventSubscriber'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PsCheckoutCartRepository'
      - '@ps_checkout.module'

  PrestaShop\Module\PrestashopCheckout\PayPal\Order\EventSubscriber\PayPalOrderEventSubscriber:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\EventSubscriber\PayPalOrderEventSubscriber'
    public: true
    arguments:
      - "@ps_checkout.module"
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PsCheckoutCartRepository'
      - "@ps_checkout.cache.paypal.order"
      - '@PrestaShop\Module\PrestashopCheckout\Checkout\CheckoutChecker'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\Order\CheckTransitionPayPalOrderStatusService'
      - '@PrestaShop\Module\PrestashopCheckout\Order\State\Service\OrderStateMapper'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PayPalOrderRepository'

  PrestaShop\Module\PrestashopCheckout\PayPal\Payment\Capture\EventSubscriber\PayPalCaptureEventSubscriber:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\Payment\Capture\EventSubscriber\PayPalCaptureEventSubscriber'
    public: true
    arguments:
      - '@ps_checkout.module'
      - '@PrestaShop\Module\PrestashopCheckout\Order\Service\CheckOrderAmount'
      - "@ps_checkout.cache.paypal.capture"
      - "@ps_checkout.cache.paypal.order"
      - '@PrestaShop\Module\PrestashopCheckout\Order\State\Service\OrderStateMapper'

  PrestaShop\Module\PrestashopCheckout\PayPal\Payment\Refund\EventSubscriber\PayPalRefundEventSubscriber:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\Payment\Refund\EventSubscriber\PayPalRefundEventSubscriber'
    arguments:
      - '@ps_checkout.module'
      - '@ps_checkout.cache.paypal.order'
      - '@PrestaShop\Module\PrestashopCheckout\Order\State\Service\OrderStateMapper'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalOrderProvider'

  PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\EventSubscriber\PaymentMethodTokenEventSubscriber:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\EventSubscriber\PaymentMethodTokenEventSubscriber'
    arguments:
      - '@ps_checkout.module'
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PayPalOrderRepository'
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PaymentTokenRepository'

  ps_checkout.event.dispatcher.symfony:
    class: 'Symfony\Component\EventDispatcher\EventDispatcherInterface'
    factory: [ '@PrestaShop\Module\PrestashopCheckout\Event\SymfonyEventDispatcherFactory', "create" ]
    arguments:
      - [
        '@PrestaShop\Module\PrestashopCheckout\Checkout\EventSubscriber\CheckoutEventSubscriber',
        '@PrestaShop\Module\PrestashopCheckout\Order\EventSubscriber\OrderEventSubscriber',
        '@PrestaShop\Module\PrestashopCheckout\PayPal\Order\EventSubscriber\PayPalOrderEventSubscriber',
        '@PrestaShop\Module\PrestashopCheckout\PayPal\Payment\Capture\EventSubscriber\PayPalCaptureEventSubscriber',
        '@PrestaShop\Module\PrestashopCheckout\PayPal\Payment\Refund\EventSubscriber\PayPalRefundEventSubscriber',
        '@PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\EventSubscriber\PaymentMethodTokenEventSubscriber'
      ]

  PrestaShop\Module\PrestashopCheckout\Event\SymfonyEventDispatcherAdapter:
    class: 'PrestaShop\Module\PrestashopCheckout\Event\SymfonyEventDispatcherAdapter'
    public: true
    arguments:
      - "@ps_checkout.event.dispatcher.symfony"

  PrestaShop\Module\PrestashopCheckout\Context\PrestaShopContext:
    class: 'PrestaShop\Module\PrestashopCheckout\Context\PrestaShopContext'
    public: true

  PrestaShop\Module\PrestashopCheckout\Context\ContextStateManager:
    class: 'PrestaShop\Module\PrestashopCheckout\Context\ContextStateManager'
    public: true

  PrestaShop\Module\PrestashopCheckout\ShopContext:
    class: 'PrestaShop\Module\PrestashopCheckout\ShopContext'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Environment\Env'

  PrestaShop\Module\PrestashopCheckout\Shop\ShopProvider:
    class: 'PrestaShop\Module\PrestashopCheckout\Shop\ShopProvider'
    public: true

  PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfigurationOptionsResolver:
    class: 'PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfigurationOptionsResolver'
    public: true
    arguments:
      - '@=service("PrestaShop\\Module\\PrestashopCheckout\\Shop\\ShopProvider").getIdentifier()'

  PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration:
    class: 'PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfigurationOptionsResolver'

  PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PayPalCodeRepository'

  PrestaShop\Module\PrestashopCheckout\ExpressCheckout\ExpressCheckoutConfiguration:
    class: 'PrestaShop\Module\PrestashopCheckout\ExpressCheckout\ExpressCheckoutConfiguration'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration'

  PrestaShop\Module\PrestashopCheckout\PayPal\PayPalPayLaterConfiguration:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\PayPalPayLaterConfiguration'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration'

  PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceConfiguration:
    class: 'PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceConfiguration'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceConfigurationRepository'

  PrestaShop\Module\PrestashopCheckout\PayPal\Sdk\PayPalSdkConfigurationBuilder:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\Sdk\PayPalSdkConfigurationBuilder'
    public: true
    arguments:
      - '@ps_checkout.module'
      - '@PrestaShop\Module\PrestashopCheckout\Environment\Env'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalPayLaterConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceConfigurationRepository'
      - '@PrestaShop\Module\PrestashopCheckout\ExpressCheckout\ExpressCheckoutConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\ShopContext'
      - '@PrestaShop\Module\PrestashopCheckout\Context\PrestaShopContext'
      - '@ps_checkout.logger'
      - '@PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceEligibilityConstraint'

  PrestaShop\Module\PrestashopCheckout\Presenter\Store\Modules\PaypalModule:
    class: 'PrestaShop\Module\PrestashopCheckout\Presenter\Store\Modules\PaypalModule'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration'

  PrestaShop\Module\PrestashopCheckout\Presenter\Store\Modules\ConfigurationModule:
    class: 'PrestaShop\Module\PrestashopCheckout\Presenter\Store\Modules\ConfigurationModule'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalPayLaterConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\ExpressCheckout\ExpressCheckoutConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceProvider'
      - "@ps_checkout.module"

  PrestaShop\Module\PrestashopCheckout\Builder\ModuleLink\ModuleLinkBuilder:
    class: 'PrestaShop\Module\PrestashopCheckout\Builder\ModuleLink\ModuleLinkBuilder'
    public: true

  PrestaShop\Module\PrestashopCheckout\OnBoarding\Step\LiveStep:
    class: 'PrestaShop\Module\PrestashopCheckout\OnBoarding\Step\LiveStep'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration'

  PrestaShop\Module\PrestashopCheckout\OnBoarding\Step\ValueBanner:
    class: 'PrestaShop\Module\PrestashopCheckout\OnBoarding\Step\ValueBanner'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration'

  PrestaShop\Module\PrestashopCheckout\Translations\Translations:
    class: 'PrestaShop\Module\PrestashopCheckout\Translations\Translations'
    public: true
    arguments:
      - "@ps_checkout.module"

  PrestaShop\Module\PrestashopCheckout\Presenter\Store\Modules\ContextModule:
    class: 'PrestaShop\Module\PrestashopCheckout\Presenter\Store\Modules\ContextModule'
    public: true
    arguments:
      - '@=service("ps_checkout.module").name'
      - '@=service("ps_checkout.module").module_key'
      - '@PrestaShop\Module\PrestashopCheckout\Context\PrestaShopContext'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\OnBoarding\Step\LiveStep'
      - '@PrestaShop\Module\PrestashopCheckout\OnBoarding\Step\ValueBanner'
      - '@PrestaShop\Module\PrestashopCheckout\Translations\Translations'
      - '@PrestaShop\Module\PrestashopCheckout\ShopContext'
      - '@PrestaShop\Module\PrestashopCheckout\Shop\ShopProvider'
      - '@PrestaShop\Module\PrestashopCheckout\Builder\ModuleLink\ModuleLinkBuilder'
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PsAccountRepository'

  PrestaShop\Module\PrestashopCheckout\Adapter\LanguageAdapter:
    class: 'PrestaShop\Module\PrestashopCheckout\Adapter\LanguageAdapter'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\ShopContext'

  PrestaShop\Module\PrestashopCheckout\Presenter\Store\StorePresenter:
    class: 'PrestaShop\Module\PrestashopCheckout\Presenter\Store\StorePresenter'
    public: true
    arguments:
      - [
          '@PrestaShop\Module\PrestashopCheckout\Presenter\Store\Modules\ContextModule',
          '@PrestaShop\Module\PrestashopCheckout\Presenter\Store\Modules\PaypalModule',
          '@PrestaShop\Module\PrestashopCheckout\Presenter\Store\Modules\ConfigurationModule',
        ]

  PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceEligibilityConstraint:
    class: 'PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceEligibilityConstraint'
    public: true

  PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceCollectionBuilder:
    class: 'PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceCollectionBuilder'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceEligibilityConstraint'

  PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceTranslationProvider:
    class: 'PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceTranslationProvider'
    public: true
    arguments:
      - "@ps_checkout.module"

  PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourcePresenter:
    class: 'PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourcePresenter'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceTranslationProvider'
      - '@PrestaShop\Module\PrestashopCheckout\Repository\CountryRepository'
      - '@PrestaShop\Module\PrestashopCheckout\Provider\PaymentMethodLogoProvider'

  PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceCollection:
    class: 'PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceCollection'
    public: true
    arguments:
      - '@=service("PrestaShop\\Module\\PrestashopCheckout\\FundingSource\\FundingSourceCollectionBuilder").create()'

  PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceProvider:
    class: 'PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceProvider'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceCollectionBuilder'
      - '@PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourcePresenter'
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PaymentTokenRepository'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\Context\PrestaShopContext'

  ps_checkout.repository.paypal.code:
    class: 'PrestaShop\Module\PrestashopCheckout\Repository\PayPalCodeRepository'
    public: true

  PrestaShop\Module\PrestashopCheckout\Validator\MerchantValidator:
    class: 'PrestaShop\Module\PrestashopCheckout\Validator\MerchantValidator'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PsAccountRepository'
      - '@PrestaShop\Module\PrestashopCheckout\Context\PrestaShopContext'

  PrestaShop\Module\PrestashopCheckout\Validator\FrontControllerValidator:
    class: 'PrestaShop\Module\PrestashopCheckout\Validator\FrontControllerValidator'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Validator\MerchantValidator'
      - '@PrestaShop\Module\PrestashopCheckout\ExpressCheckout\ExpressCheckoutConfiguration'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalPayLaterConfiguration'

  PrestaShop\Module\PrestashopCheckout\Validator\BatchConfigurationValidator:
    class: 'PrestaShop\Module\PrestashopCheckout\Validator\BatchConfigurationValidator'
    public: true

  PrestaShop\Module\PrestashopCheckout\PayPal\PayPalOrderProvider:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\PayPalOrderProvider'
    public: true
    arguments:
      - "@ps_checkout.cache.paypal.order"

  PrestaShop\Module\PrestashopCheckout\Routing\Router:
    class: 'PrestaShop\Module\PrestashopCheckout\Routing\Router'
    public: true

  PrestaShop\Module\PrestashopCheckout\PayPal\Order\PayPalOrderTranslationProvider:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\PayPalOrderTranslationProvider'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Translations\Translations'
      - '@PrestaShop\Module\PrestashopCheckout\FundingSource\FundingSourceTranslationProvider'

  PrestaShop\Module\PrestashopCheckout\PayPal\Order\PayPalOrderSummaryViewBuilder:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\PayPalOrderSummaryViewBuilder'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PsCheckoutCartRepository'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalOrderProvider'
      - '@PrestaShop\Module\PrestashopCheckout\Routing\Router'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\Order\PayPalOrderTranslationProvider'
      - '@PrestaShop\Module\PrestashopCheckout\ShopContext'
      - '@PrestaShop\Module\PrestashopCheckout\Repository\PayPalOrderRepository'

  PrestaShop\Module\PrestashopCheckout\Webhook\WebhookSecretTokenService:
    class: 'PrestaShop\Module\PrestashopCheckout\Webhook\WebhookSecretTokenService'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration'

  PrestaShop\Module\PrestashopCheckout\Webhook\WebhookEventConfigurationUpdatedHandler:
    class: 'PrestaShop\Module\PrestashopCheckout\Webhook\WebhookEventConfigurationUpdatedHandler'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration'

  PrestaShop\Module\PrestashopCheckout\Order\Service\CheckOrderAmount:
    class: 'PrestaShop\Module\PrestashopCheckout\Order\Service\CheckOrderAmount'
    public: true

  PrestaShop\Module\PrestashopCheckout\Order\State\Service\OrderStateMapper:
    class: 'PrestaShop\Module\PrestashopCheckout\Order\State\Service\OrderStateMapper'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration'

  PrestaShop\Module\PrestashopCheckout\PayPal\Order\PayPalOrderStatus:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\PayPalOrderStatus'
    public: true

  PrestaShop\Module\PrestashopCheckout\PayPal\Order\CheckTransitionPayPalOrderStatusService:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\Order\CheckTransitionPayPalOrderStatusService'
    public: true

  PrestaShop\Module\PrestashopCheckout\Webhook\WebhookHandler:
    class: 'PrestaShop\Module\PrestashopCheckout\Webhook\WebhookHandler'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Webhook\WebhookSecretTokenService'
      - ['@PrestaShop\Module\PrestashopCheckout\Webhook\WebhookEventConfigurationUpdatedHandler']

  PrestaShop\Module\PrestashopCheckout\Configuration\BatchConfigurationProcessor:
    class: 'PrestaShop\Module\PrestashopCheckout\Configuration\BatchConfigurationProcessor'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Configuration\PrestaShopConfiguration'

  PrestaShop\Module\PrestashopCheckout\PayPal\Payment\Capture\CheckTransitionPayPalCaptureStatusService:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\Payment\Capture\CheckTransitionPayPalCaptureStatusService'
    public: true

  PrestaShop\Module\PrestashopCheckout\Checkout\CheckoutChecker:
    class: 'PrestaShop\Module\PrestashopCheckout\Checkout\CheckoutChecker'
    public: true
    arguments:
      - "@ps_checkout.logger"

  PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\PaymentMethodTokenService:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\PaymentToken\PaymentMethodTokenService'
    public: true
    arguments:
      - '@?'
      - '@PrestaShop\Module\PrestashopCheckout\Http\CheckoutHttpClient'
      - '@PrestaShop\Module\PrestashopCheckout\PayPal\PayPalConfiguration'

  PrestaShop\Module\PrestashopCheckout\PayPal\OAuth\OAuthService:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\OAuth\OAuthService'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Http\CheckoutHttpClient'

  PrestaShop\Module\PrestashopCheckout\Provider\PaymentMethodLogoProvider:
    class: 'PrestaShop\Module\PrestashopCheckout\Provider\PaymentMethodLogoProvider'
    public: true
    arguments:
      - '@ps_checkout.module'

  PrestaShop\Module\PrestashopCheckout\PayPal\GooglePay\Builder\GooglePayTransactionInfoBuilder:
    class: 'PrestaShop\Module\PrestashopCheckout\PayPal\GooglePay\Builder\GooglePayTransactionInfoBuilder'
    public: true
    arguments:
      - '@PrestaShop\Module\PrestashopCheckout\Translations\Translations'