<?xml version="1.0" encoding="UTF-8" ?>
<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
        https://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>
        <service id=".zenstruck_foundry.default_instantiator" class="Zenstruck\Foundry\Instantiator" />
        <service id=".zenstruck_foundry.faker" class="Faker\Generator">
            <factory class="Faker\Factory" method="create" />
        </service>

        <service id=".zenstruck_foundry.configuration" class="Zenstruck\Foundry\Configuration" public="true">
            <argument></argument> <!-- $ormConnectionsToReset -->
            <argument></argument> <!-- $ormObjectManagersToReset -->
            <argument></argument> <!-- $ormResetMode -->
            <argument></argument> <!-- $odmObjectManagersToReset -->
            <call method="setManagerRegistry">
                <argument type="service" id=".zenstruck_foundry.chain_manager_registry" />
            </call>
            <call method="setStoryManager">
                <argument type="service" id=".zenstruck_foundry.story_manager" />
            </call>
            <call method="setModelFactoryManager">
                <argument type="service" id=".zenstruck_foundry.model_factory_manager" />
            </call>
            <call method="setInstantiator">
                <argument type="service" id=".zenstruck_foundry.default_instantiator" />
            </call>
            <call method="setFaker">
                <argument type="service" id=".zenstruck_foundry.faker" />
            </call>
        </service>

        <service id=".zenstruck_foundry.story_manager" class="Zenstruck\Foundry\StoryManager">
            <argument type="tagged_iterator" tag="foundry.story" />
        </service>

        <service id=".zenstruck_foundry.model_factory_manager" class="Zenstruck\Foundry\ModelFactoryManager">
            <argument type="tagged_iterator" tag="foundry.factory" />
        </service>

        <service id=".zenstruck_foundry.chain_manager_registry" class="Zenstruck\Foundry\ChainManagerRegistry">
            <argument/> <!-- list<ManagerRegistry> set by compiler pass -->
        </service>

        <service id=".zenstruck_foundry.global_state_registry" class="Zenstruck\Foundry\Test\GlobalStateRegistry" public="true" />
    </services>
</container>
