<?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\Bundle\CoreBundle\Fixture\Factory\CatalogPromotionExampleFactory">
            <argument type="service" id="sylius.factory.catalog_promotion" />
            <argument type="service" id="sylius.repository.locale" />
            <argument type="service" id="sylius.repository.channel" />
            <argument type="service" id="Sylius\Bundle\CoreBundle\Fixture\Factory\CatalogPromotionScopeExampleFactory" />
            <argument type="service" id="Sylius\Bundle\CoreBundle\Fixture\Factory\CatalogPromotionActionExampleFactory" />
        </service>

        <service id="Sylius\Bundle\CoreBundle\Fixture\Factory\CatalogPromotionScopeExampleFactory">
            <argument type="service" id="sylius.factory.catalog_promotion_scope" />
        </service>

        <service id="Sylius\Bundle\CoreBundle\Fixture\Factory\CatalogPromotionActionExampleFactory">
            <argument type="service" id="sylius.factory.catalog_promotion_action" />
        </service>

        <service id="sylius.fixture.example_factory.payment_method" class="Sylius\Bundle\CoreBundle\Fixture\Factory\PaymentMethodExampleFactory">
            <argument type="service" id="sylius.factory.payment_method" />
            <argument type="service" id="sylius.repository.locale" />
            <argument type="service" id="sylius.repository.channel" />
        </service>

        <service id="sylius.fixture.example_factory.shipping_category" class="Sylius\Bundle\CoreBundle\Fixture\Factory\ShippingCategoryExampleFactory">
            <argument type="service" id="sylius.factory.shipping_category" />
        </service>

        <service id="sylius.fixture.example_factory.shipping_method" class="Sylius\Bundle\CoreBundle\Fixture\Factory\ShippingMethodExampleFactory">
            <argument type="service" id="sylius.factory.shipping_method" />
            <argument type="service" id="sylius.repository.zone" />
            <argument type="service" id="sylius.repository.shipping_category" />
            <argument type="service" id="sylius.repository.locale" />
            <argument type="service" id="sylius.repository.channel" />
            <argument type="service" id="sylius.repository.tax_category" />
        </service>

        <service id="sylius.fixture.example_factory.channel" class="Sylius\Bundle\CoreBundle\Fixture\Factory\ChannelExampleFactory">
            <argument type="service" id="sylius.factory.channel" />
            <argument type="service" id="sylius.repository.locale" />
            <argument type="service" id="sylius.repository.currency" />
            <argument type="service" id="sylius.repository.zone" />
            <argument type="service" id="sylius.repository.taxon" />
            <argument type="service" id="sylius.factory.shop_billing_data" />
        </service>

        <service id="sylius.fixture.example_factory.customer_group" class="Sylius\Bundle\CoreBundle\Fixture\Factory\CustomerGroupExampleFactory">
            <argument type="service" id="sylius.factory.customer_group" />
        </service>

        <service id="sylius.fixture.example_factory.shop_user" class="Sylius\Bundle\CoreBundle\Fixture\Factory\ShopUserExampleFactory">
            <argument type="service" id="sylius.factory.shop_user" />
            <argument type="service" id="sylius.factory.customer" />
            <argument type="service" id="sylius.repository.customer_group" />
        </service>

        <service id="sylius.fixture.example_factory.admin_user" class="Sylius\Bundle\CoreBundle\Fixture\Factory\AdminUserExampleFactory">
            <argument type="service" id="sylius.factory.admin_user" />
            <argument>%locale%</argument>
            <argument type="service" id="file_locator" />
            <argument type="service" id="sylius.image_uploader" />
            <argument type="service" id="sylius.factory.avatar_image" />
        </service>

        <service id="sylius.fixture.example_factory.promotion" class="Sylius\Bundle\CoreBundle\Fixture\Factory\PromotionExampleFactory">
            <argument type="service" id="sylius.factory.promotion" />
            <argument type="service" id="sylius.fixture.example_factory.promotion_rule" />
            <argument type="service" id="sylius.fixture.example_factory.promotion_action" />
            <argument type="service" id="sylius.repository.channel" />
            <argument type="service" id="sylius.factory.promotion_coupon" />
            <argument type="service" id="sylius.repository.locale" />
        </service>

        <service id="sylius.fixture.example_factory.promotion_action" class="Sylius\Bundle\CoreBundle\Fixture\Factory\PromotionActionExampleFactory">
            <argument type="service" id="sylius.factory.promotion_action" />
        </service>

        <service id="sylius.fixture.example_factory.promotion_rule" class="Sylius\Bundle\CoreBundle\Fixture\Factory\PromotionRuleExampleFactory">
            <argument type="service" id="sylius.factory.promotion_rule" />
        </service>

        <service id="sylius.fixture.example_factory.product_association_type" class="Sylius\Bundle\CoreBundle\Fixture\Factory\ProductAssociationTypeExampleFactory">
            <argument type="service" id="sylius.factory.product_association_type" />
            <argument type="service" id="sylius.repository.locale" />
        </service>

        <service id="sylius.fixture.example_factory.product_association" class="Sylius\Bundle\CoreBundle\Fixture\Factory\ProductAssociationExampleFactory">
            <argument type="service" id="sylius.factory.product_association" />
            <argument type="service" id="sylius.repository.product_association_type" />
            <argument type="service" id="sylius.repository.product" />
        </service>

        <service id="sylius.fixture.example_factory.product_option" class="Sylius\Bundle\CoreBundle\Fixture\Factory\ProductOptionExampleFactory">
            <argument type="service" id="sylius.factory.product_option" />
            <argument type="service" id="sylius.factory.product_option_value" />
            <argument type="service" id="sylius.repository.locale" />
        </service>

        <service id="sylius.fixture.example_factory.product_attribute" class="Sylius\Bundle\CoreBundle\Fixture\Factory\ProductAttributeExampleFactory">
            <argument type="service" id="sylius.factory.product_attribute" />
            <argument type="service" id="sylius.repository.locale" />
            <argument>%sylius.attribute.attribute_types%</argument>
        </service>

        <service id="sylius.fixture.example_factory.product_review" class="Sylius\Bundle\CoreBundle\Fixture\Factory\ProductReviewExampleFactory">
            <argument type="service" id="sylius.factory.product_review" />
            <argument type="service" id="sylius.repository.product" />
            <argument type="service" id="sylius.repository.customer" />
            <argument type="service" id="sylius_abstraction.state_machine" />
        </service>

        <service id="sylius.fixture.example_factory.tax_category" class="Sylius\Bundle\CoreBundle\Fixture\Factory\TaxCategoryExampleFactory">
            <argument type="service" id="sylius.factory.tax_category" />
        </service>

        <service id="sylius.fixture.example_factory.tax_rate" class="Sylius\Bundle\CoreBundle\Fixture\Factory\TaxRateExampleFactory">
            <argument type="service" id="sylius.factory.tax_rate" />
            <argument type="service" id="sylius.repository.zone" />
            <argument type="service" id="sylius.repository.tax_category" />
        </service>

        <service id="sylius.fixture.example_factory.taxon" class="Sylius\Bundle\CoreBundle\Fixture\Factory\TaxonExampleFactory">
            <argument type="service" id="sylius.factory.taxon" />
            <argument type="service" id="sylius.repository.taxon" />
            <argument type="service" id="sylius.repository.locale" />
            <argument type="service" id="sylius.generator.taxon_slug" />
        </service>

        <service id="sylius.fixture.example_factory.product" class="Sylius\Bundle\CoreBundle\Fixture\Factory\ProductExampleFactory">
            <argument type="service" id="sylius.factory.product" />
            <argument type="service" id="sylius.factory.product_variant" />
            <argument type="service" id="sylius.factory.channel_pricing" />
            <argument type="service" id="sylius.generator.product_variant" />
            <argument type="service" id="sylius.factory.product_attribute_value" />
            <argument type="service" id="sylius.factory.product_image" />
            <argument type="service" id="sylius.factory.product_taxon" />
            <argument type="service" id="sylius.image_uploader" />
            <argument type="service" id="sylius.generator.slug" />
            <argument type="service" id="sylius.repository.taxon" />
            <argument type="service" id="sylius.repository.product_attribute" />
            <argument type="service" id="sylius.repository.product_option" />
            <argument type="service" id="sylius.repository.channel" />
            <argument type="service" id="sylius.repository.locale" />
            <argument type="service" id="sylius.repository.tax_category" />
            <argument type="service" id="file_locator" />
        </service>

        <service id="sylius.fixture.example_factory.address" class="Sylius\Bundle\CoreBundle\Fixture\Factory\AddressExampleFactory">
            <argument type="service" id="sylius.factory.address" />
            <argument type="service" id="sylius.repository.country" />
            <argument type="service" id="sylius.repository.customer" />
        </service>

        <service id="sylius.fixture.example_factory.order" class="Sylius\Bundle\CoreBundle\Fixture\Factory\OrderExampleFactory">
            <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" />
        </service>
    </services>
</container>
