<?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.fixture.locale" class="Sylius\Bundle\CoreBundle\Fixture\LocaleFixture">
            <argument type="service" id="sylius.factory.locale" />
            <argument type="service" id="sylius.manager.locale" />
            <argument>%locale%</argument>
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.currency" class="Sylius\Bundle\CoreBundle\Fixture\CurrencyFixture">
            <argument type="service" id="sylius.factory.currency" />
            <argument type="service" id="sylius.manager.currency" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.geographical" class="Sylius\Bundle\CoreBundle\Fixture\GeographicalFixture">
            <argument type="service" id="sylius.factory.country" />
            <argument type="service" id="sylius.manager.country" />
            <argument type="service" id="sylius.factory.province" />
            <argument type="service" id="sylius.manager.province" />
            <argument type="service" id="sylius.factory.zone" />
            <argument type="service" id="sylius.manager.zone" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.payment_method" class="Sylius\Bundle\CoreBundle\Fixture\PaymentMethodFixture">
            <argument type="service" id="sylius.manager.payment_method" />
            <argument type="service" id="sylius.fixture.example_factory.payment_method" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.shipping_category" class="Sylius\Bundle\CoreBundle\Fixture\ShippingCategoryFixture">
            <argument type="service" id="sylius.manager.shipping_category" />
            <argument type="service" id="sylius.fixture.example_factory.shipping_category" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.shipping_method" class="Sylius\Bundle\CoreBundle\Fixture\ShippingMethodFixture">
            <argument type="service" id="sylius.manager.shipping_method" />
            <argument type="service" id="sylius.fixture.example_factory.shipping_method" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="Sylius\Bundle\CoreBundle\Fixture\CatalogPromotionFixture">
            <argument type="service" id="sylius.manager.catalog_promotion" />
            <argument type="service" id="Sylius\Bundle\CoreBundle\Fixture\Factory\CatalogPromotionExampleFactory" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.channel" class="Sylius\Bundle\CoreBundle\Fixture\ChannelFixture">
            <argument type="service" id="sylius.manager.channel" />
            <argument type="service" id="sylius.fixture.example_factory.channel" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.customer_group" class="Sylius\Bundle\CoreBundle\Fixture\CustomerGroupFixture">
            <argument type="service" id="sylius.manager.customer_group" />
            <argument type="service" id="sylius.fixture.example_factory.customer_group" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.shop_user" class="Sylius\Bundle\CoreBundle\Fixture\ShopUserFixture">
            <argument type="service" id="sylius.manager.shop_user" />
            <argument type="service" id="sylius.fixture.example_factory.shop_user" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.admin_user" class="Sylius\Bundle\CoreBundle\Fixture\AdminUserFixture">
            <argument type="service" id="sylius.manager.admin_user" />
            <argument type="service" id="sylius.fixture.example_factory.admin_user" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.product_association_type" class="Sylius\Bundle\CoreBundle\Fixture\ProductAssociationTypeFixture">
            <argument type="service" id="sylius.manager.product_association_type" />
            <argument type="service" id="sylius.fixture.example_factory.product_association_type" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.product_association" class="Sylius\Bundle\CoreBundle\Fixture\ProductAssociationFixture">
            <argument type="service" id="sylius.manager.product_association" />
            <argument type="service" id="sylius.fixture.example_factory.product_association" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.similar_product_association" class="Sylius\Bundle\CoreBundle\Fixture\SimilarProductAssociationFixture">
            <argument type="service" id="sylius.fixture.product_association_type" />
            <argument type="service" id="sylius.fixture.product_association" />
            <argument type="service" id="sylius.repository.product" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.product_option" class="Sylius\Bundle\CoreBundle\Fixture\ProductOptionFixture">
            <argument type="service" id="sylius.manager.product_option" />
            <argument type="service" id="sylius.fixture.example_factory.product_option" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.product_attribute" class="Sylius\Bundle\CoreBundle\Fixture\ProductAttributeFixture">
            <argument type="service" id="sylius.manager.product_attribute" />
            <argument type="service" id="sylius.fixture.example_factory.product_attribute" />
            <argument>%sylius.attribute.attribute_types%</argument>
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.product_review" class="Sylius\Bundle\CoreBundle\Fixture\ProductReviewFixture">
            <argument type="service" id="sylius.manager.product_review" />
            <argument type="service" id="sylius.fixture.example_factory.product_review" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.tax_category" class="Sylius\Bundle\CoreBundle\Fixture\TaxCategoryFixture">
            <argument type="service" id="sylius.manager.tax_category" />
            <argument type="service" id="sylius.fixture.example_factory.tax_category" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.tax_rate" class="Sylius\Bundle\CoreBundle\Fixture\TaxRateFixture">
            <argument type="service" id="sylius.manager.tax_rate" />
            <argument type="service" id="sylius.fixture.example_factory.tax_rate" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.promotion" class="Sylius\Bundle\CoreBundle\Fixture\PromotionFixture">
            <argument type="service" id="sylius.manager.promotion" />
            <argument type="service" id="sylius.fixture.example_factory.promotion" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.taxon" class="Sylius\Bundle\CoreBundle\Fixture\TaxonFixture">
            <argument type="service" id="sylius.manager.taxon" />
            <argument type="service" id="sylius.fixture.example_factory.taxon" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.product" class="Sylius\Bundle\CoreBundle\Fixture\ProductFixture">
            <argument type="service" id="sylius.manager.product" />
            <argument type="service" id="sylius.fixture.example_factory.product" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.mug_product" class="Sylius\Bundle\CoreBundle\Fixture\MugProductFixture">
            <argument type="service" id="sylius.fixture.taxon" />
            <argument type="service" id="sylius.fixture.product_attribute" />
            <argument type="service" id="sylius.fixture.product_option" />
            <argument type="service" id="sylius.fixture.product" />
            <argument>%locale%</argument>
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.sticker_product" class="Sylius\Bundle\CoreBundle\Fixture\StickerProductFixture">
            <argument type="service" id="sylius.fixture.taxon" />
            <argument type="service" id="sylius.fixture.product_attribute" />
            <argument type="service" id="sylius.fixture.product_option" />
            <argument type="service" id="sylius.fixture.product" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.book_product" class="Sylius\Bundle\CoreBundle\Fixture\BookProductFixture">
            <argument type="service" id="sylius.fixture.taxon" />
            <argument type="service" id="sylius.fixture.product_attribute" />
            <argument type="service" id="sylius.fixture.product" />
            <argument>%locale%</argument>
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.tshirt_product" class="Sylius\Bundle\CoreBundle\Fixture\TshirtProductFixture">
            <argument type="service" id="sylius.fixture.taxon" />
            <argument type="service" id="sylius.fixture.product_attribute" />
            <argument type="service" id="sylius.fixture.product_option" />
            <argument type="service" id="sylius.fixture.product" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.order" class="Sylius\Bundle\CoreBundle\Fixture\OrderFixture">
            <argument type="service" id="sylius.factory.order" />
            <argument type="service" id="sylius.factory.order_item" />
            <argument type="service" id="sylius.order_item_quantity_modifier" />
            <argument type="service" id="sylius.manager.order" />
            <argument type="service" id="sylius.repository.channel" />
            <argument type="service" id="sylius.repository.customer" />
            <argument type="service" id="sylius.repository.product" />
            <argument type="service" id="sylius.repository.country" />
            <argument type="service" id="sylius.repository.payment_method" />
            <argument type="service" id="sylius.repository.shipping_method" />
            <argument type="service" id="sylius.factory.address" />
            <argument type="service" id="sylius_abstraction.state_machine" />
            <argument type="service" id="sylius.checker.order_shipping_method_selection_requirement" />
            <argument type="service" id="sylius.checker.order_payment_method_selection_requirement" />
            <argument type="service" id="sylius.fixture.example_factory.order" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.address" class="Sylius\Bundle\CoreBundle\Fixture\AddressFixture">
            <argument type="service" id="sylius.manager.address" />
            <argument type="service" id="sylius.fixture.example_factory.address" />
            <tag name="sylius_fixtures.fixture" />
        </service>

        <service id="sylius.fixture.payment" class="Sylius\Bundle\CoreBundle\Fixture\PaymentFixture">
            <argument type="service" id="sylius.repository.payment" />
            <argument type="service" id="sylius_abstraction.state_machine" />
            <argument type="service" id="sylius.manager.payment" />
            <tag name="sylius_fixtures.fixture" />
        </service>
    </services>
</container>
