<?xml version="1.0" encoding="UTF-8"?>

<!--

 This file is part of the Sylius package.

 (c) Sylius Sp. z o.o.

 For the full copyright and license information, please view the LICENSE
 file that was distributed with this source code.

-->

<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>
        <defaults public="true" />

        <service id="sylius.behat.context.transform.address" class="Sylius\Behat\Context\Transform\AddressContext">
            <argument type="service" id="sylius.factory.address" />
            <argument type="service" id="sylius.converter.country_name" />
            <argument type="service" id="sylius.repository.address" />
            <argument type="service" id="sylius.fixture.example_factory.address" />
        </service>

        <service id="Sylius\Behat\Context\Transform\CatalogPromotionContext">
            <argument type="service" id="sylius.repository.catalog_promotion" />
        </service>

        <service id="sylius.behat.context.transform.channel" class="Sylius\Behat\Context\Transform\ChannelContext">
            <argument type="service" id="sylius.repository.channel" />
        </service>

        <service id="sylius.behat.context.transform.country" class="Sylius\Behat\Context\Transform\CountryContext">
            <argument type="service" id="sylius.converter.country_name" />
            <argument type="service" id="sylius.repository.country" />
        </service>

        <service id="sylius.behat.context.transform.coupon" class="Sylius\Behat\Context\Transform\CouponContext">
            <argument type="service" id="sylius.repository.promotion_coupon" />
        </service>

        <service id="sylius.behat.context.transform.currency" class="Sylius\Behat\Context\Transform\CurrencyContext">
            <argument type="service" id="sylius.currency_name_converter" />
            <argument type="service" id="sylius.repository.currency" />
        </service>

        <service id="sylius.behat.context.transform.customer" class="Sylius\Behat\Context\Transform\CustomerContext">
            <argument type="service" id="sylius.repository.customer" />
            <argument type="service" id="sylius.factory.customer" />
            <argument type="service" id="sylius.behat.shared_storage" />
        </service>

        <service id="sylius.behat.context.transform.customer_group" class="Sylius\Behat\Context\Transform\CustomerGroupContext">
            <argument type="service" id="sylius.repository.customer_group" />
        </service>

        <service id="sylius.behat.context.transform.date_time" class="Sylius\Behat\Context\Transform\DateTimeContext">
        </service>

        <service id="sylius.behat.context.transform.exchange_rate" class="Sylius\Behat\Context\Transform\ExchangeRateContext">
            <argument type="service" id="sylius.currency_name_converter" />
            <argument type="service" id="sylius.repository.currency" />
            <argument type="service" id="sylius.repository.exchange_rate" />
        </service>

        <service id="sylius.behat.context.transform.lexical" class="Sylius\Behat\Context\Transform\LexicalContext">
        </service>

        <service id="sylius.behat.context.transform.locale" class="Sylius\Behat\Context\Transform\LocaleContext">
            <argument type="service" id="sylius.locale_converter" />
            <argument type="service" id="sylius.repository.locale" />
            <argument type="service" id="sylius.behat.shared_storage" />
        </service>

        <service id="sylius.behat.context.transform.order" class="Sylius\Behat\Context\Transform\OrderContext">
            <argument type="service" id="sylius.repository.customer" />
            <argument type="service" id="sylius.repository.order" />
            <argument type="service" id="sylius.behat.shared_storage" />
        </service>

        <service id="sylius.behat.context.transform.payment" class="Sylius\Behat\Context\Transform\PaymentMethodContext">
            <argument type="service" id="sylius.repository.payment_method" />
        </service>

        <service id="sylius.behat.context.transform.product" class="Sylius\Behat\Context\Transform\ProductContext">
            <argument type="service" id="sylius.repository.product" />
            <argument>%locale%</argument>
        </service>

        <service id="sylius.behat.context.transform.product_association_type" class="Sylius\Behat\Context\Transform\ProductAssociationTypeContext">
            <argument type="service" id="sylius.repository.product_association_type" />
        </service>

        <service id="sylius.behat.context.transform.product_attribute" class="Sylius\Behat\Context\Transform\ProductAttributeContext">
            <argument type="service" id="sylius.repository.product_attribute_translation" />
        </service>

        <service id="sylius.behat.context.transform.product_option" class="Sylius\Behat\Context\Transform\ProductOptionContext">
            <argument type="service" id="sylius.repository.product_option" />
        </service>

        <service id="sylius.behat.context.transform.product_option_value" class="Sylius\Behat\Context\Transform\ProductOptionValueContext">
            <argument type="service" id="sylius.repository.product_option_value" />
        </service>

        <service id="sylius.behat.context.transform.product_review" class="Sylius\Behat\Context\Transform\ProductReviewContext">
            <argument type="service" id="sylius.repository.product_review" />
        </service>

        <service id="sylius.behat.context.transform.product_variant" class="Sylius\Behat\Context\Transform\ProductVariantContext">
            <argument type="service" id="sylius.repository.product" />
            <argument type="service" id="sylius.repository.product_variant" />
            <argument type="service" id="sylius.behat.shared_storage" />
        </service>

        <service id="sylius.behat.context.transform.promotion" class="Sylius\Behat\Context\Transform\PromotionContext">
            <argument type="service" id="sylius.repository.promotion" />
            <argument type="service" id="sylius.repository.promotion_coupon" />
        </service>

        <service id="sylius.behat.context.transform.province" class="Sylius\Behat\Context\Transform\ProvinceContext">
            <argument type="service" id="sylius.repository.province" />
        </service>

        <service id="sylius.behat.context.transform.shared_storage" class="Sylius\Behat\Context\Transform\SharedStorageContext">
            <argument type="service" id="sylius.behat.shared_storage" />
        </service>
        <service id="sylius.behat.context.transform.shipping_calculator" class="Sylius\Behat\Context\Transform\ShippingCalculatorContext">
            <argument>%sylius.shipping_calculators%</argument>
            <argument type="service" id="translator"/>
        </service>

        <service id="sylius.behat.context.transform.shipping_category" class="Sylius\Behat\Context\Transform\ShippingCategoryContext">
            <argument type="service" id="sylius.repository.shipping_category" />
        </service>

        <service id="sylius.behat.context.transform.shipping_method" class="Sylius\Behat\Context\Transform\ShippingMethodContext">
            <argument type="service" id="sylius.repository.shipping_method" />
        </service>

        <service id="sylius.behat.context.transform.tax_category" class="Sylius\Behat\Context\Transform\TaxCategoryContext">
            <argument type="service" id="sylius.repository.tax_category" />
        </service>

        <service id="sylius.behat.context.transform.tax_rate" class="Sylius\Behat\Context\Transform\TaxRateContext">
            <argument type="service" id="sylius.repository.tax_rate" />
        </service>

        <service id="sylius.behat.context.transform.taxon" class="Sylius\Behat\Context\Transform\TaxonContext">
            <argument type="service" id="sylius.repository.taxon" />
            <argument>%locale%</argument>
        </service>

        <service id="sylius.behat.context.transform.theme" class="Sylius\Behat\Context\Transform\ThemeContext">
            <argument type="service" id="sylius.repository.theme" />
        </service>

        <service id="sylius.behat.context.transform.user" class="Sylius\Behat\Context\Transform\UserContext">
            <argument type="service" id="sylius.behat.shared_storage" />
        </service>

        <service id="sylius.behat.context.transform.admin" class="Sylius\Behat\Context\Transform\AdminUserContext">
            <argument type="service" id="sylius.repository.admin_user" />
            <argument type="service" id="sylius.behat.shared_storage" />
        </service>

        <service id="sylius.behat.context.transform.cart" class="Sylius\Behat\Context\Transform\CartContext">
            <argument type="service" id="sylius.repository.order" />
            <argument type="service" id="sylius.behat.shared_storage" />
        </service>

        <service id="sylius.behat.context.transform.zone" class="Sylius\Behat\Context\Transform\ZoneContext">
            <argument type="service" id="sylius.repository.zone" />
        </service>

        <service id="sylius.behat.context.transform.zone_member" class="Sylius\Behat\Context\Transform\ZoneMemberContext">
            <argument type="service" id="sylius.converter.country_name" />
            <argument type="service" id="sylius.repository.province" />
            <argument type="service" id="sylius.repository.zone" />
            <argument type="service" id="sylius.repository.zone_member" />
        </service>

        <service id="sylius.behat.context.transform.shop_user" class="Sylius\Behat\Context\Transform\ShopUserContext">
            <argument type="service" id="sylius.repository.shop_user" />
        </service>
    </services>
</container>
