<?xml version="1.0" ?>

<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>
        <service id="Swag\PayPal\OrdersApi\Administration\PayPalOrdersController" public="true">
            <argument type="service" id="Swag\PayPal\RestApi\V2\Resource\OrderResource"/>
            <argument type="service" id="Swag\PayPal\RestApi\V2\Resource\AuthorizationResource"/>
            <argument type="service" id="Swag\PayPal\RestApi\V2\Resource\CaptureResource"/>
            <argument type="service" id="Swag\PayPal\RestApi\V2\Resource\RefundResource"/>
            <argument type="service" id="order_transaction.repository"/>
            <argument type="service" id="Swag\PayPal\Util\PaymentStatusUtilV2"/>
            <argument type="service" id="Swag\PayPal\OrdersApi\Administration\Service\CaptureRefundCreator"/>
            <call method="setContainer">
                <argument type="service" id="service_container"/>
            </call>
        </service>

        <service id="Swag\PayPal\OrdersApi\Administration\Service\CaptureRefundCreator">
            <argument type="service" id="Swag\PayPal\Util\PriceFormatter"/>
        </service>

        <service id="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" abstract="true">
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
            <argument type="service" id="Swag\PayPal\OrdersApi\Builder\Util\PurchaseUnitProvider"/>
            <argument type="service" id="Swag\PayPal\OrdersApi\Builder\Util\AddressProvider"/>
            <argument type="service" id="Swag\PayPal\Util\LocaleCodeProvider"/>
            <argument type="service" id="Swag\PayPal\OrdersApi\Builder\Util\ItemListProvider"/>
        </service>

        <service id="Swag\PayPal\OrdersApi\Builder\PayPalOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder">
            <argument type="service" id="Swag\PayPal\Checkout\Payment\Service\VaultTokenService"/>
        </service>

        <service id="Swag\PayPal\OrdersApi\Builder\ACDCOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder">
            <argument type="service" id="Swag\PayPal\Checkout\Payment\Service\VaultTokenService"/>
        </service>

        <service id="Swag\PayPal\OrdersApi\Builder\VenmoOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder">
            <argument type="service" id="Swag\PayPal\Checkout\Payment\Service\VaultTokenService"/>
        </service>

        <service id="Swag\PayPal\OrdersApi\Builder\ApplePayOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\GooglePayOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\PUIOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\APM\BancontactOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\APM\BlikOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\APM\BoletoBancarioOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\APM\EpsOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\APM\IdealOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\APM\MultibancoOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\APM\MyBankOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\APM\OxxoOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\APM\P24OrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />
        <service id="Swag\PayPal\OrdersApi\Builder\APM\TrustlyOrderBuilder" parent="Swag\PayPal\OrdersApi\Builder\AbstractOrderBuilder" />


        <service id="Swag\PayPal\OrdersApi\Builder\Util\AddressProvider"/>

        <service id="Swag\PayPal\OrdersApi\Builder\Util\AmountProvider">
            <argument type="service" id="Swag\PayPal\Util\PriceFormatter"/>
        </service>

        <service id="Swag\PayPal\OrdersApi\Builder\Util\CustomIdProvider">
            <argument type="service" id="plugin.repository"/>
            <argument>%kernel.shopware_version%</argument>
        </service>

        <service id="Swag\PayPal\OrdersApi\Builder\Util\ItemListProvider">
            <argument type="service" id="Swag\PayPal\Util\PriceFormatter"/>
            <argument type="service" id="event_dispatcher"/>
            <argument type="service" id="monolog.logger.paypal"/>
        </service>

        <service id="Swag\PayPal\OrdersApi\Builder\Util\PurchaseUnitProvider">
            <argument type="service" id="Swag\PayPal\OrdersApi\Builder\Util\AmountProvider"/>
            <argument type="service" id="Swag\PayPal\OrdersApi\Builder\Util\AddressProvider"/>
            <argument type="service" id="Swag\PayPal\OrdersApi\Builder\Util\CustomIdProvider"/>
            <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/>
        </service>

        <service id="Swag\PayPal\OrdersApi\Builder\Util\ShippingOptionsProvider">
            <argument type="service" id="Swag\PayPal\Util\PriceFormatter"/>
            <argument type="service" id="Shopware\Core\Checkout\Shipping\SalesChannel\ShippingMethodRoute"/>
        </service>

        <service id="Swag\PayPal\OrdersApi\Patch\OrderNumberPatchBuilder"/>

        <service id="Swag\PayPal\OrdersApi\Patch\PurchaseUnitPatchBuilder">
            <argument type="service" id="Swag\PayPal\OrdersApi\Builder\Util\PurchaseUnitProvider"/>
            <argument type="service" id="Swag\PayPal\OrdersApi\Builder\Util\ItemListProvider"/>
        </service>
    </services>
</container>
