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

        <service id="Elao\Enum\Bridge\Symfony\Console\Command\DumpJsEnumsCommand">
            <argument /> <!-- Enums FQCN <-> path -->
            <argument /> <!-- Base dir -->
            <argument /> <!-- Lib path -->
            <tag name="console.command" command="elao:enum:dump-js" />
        </service>

        <service id="Elao\Enum\Bridge\Symfony\HttpKernel\Controller\ArgumentResolver\EnumValueResolver">
            <tag name="controller.argument_value_resolver" priority="105" /> <!-- Prior RequestAttributeValueResolver -->
        </service>

        <service id="Elao\Enum\Bridge\Symfony\Serializer\Normalizer\EnumNormalizer">
            <tag name="serializer.normalizer" priority="-800" />
        </service>

        <service id="Elao\Enum\Bridge\Symfony\Translation\Extractor\EnumExtractor">
            <argument /> <!-- Path to namespace mappings -->
            <argument /> <!-- Domain for extracted translations -->
            <argument /> <!-- Filename pattern to search for files -->
            <argument /> <!-- Ignore paths/files -->
            <tag name="translation.extractor" alias="elao_enum" />
        </service>

        <service id="Elao\Enum\Bridge\ApiPlatform\Core\JsonSchema\Type\ElaoEnumType" decorates="api_platform.json_schema.type_factory">
            <argument type="service" id="Elao\Enum\Bridge\ApiPlatform\Core\JsonSchema\Type\ElaoEnumType.inner" />
        </service>

        <service id="Elao\Enum\Bridge\Twig\Extension\EnumExtension">
            <tag name="twig.extension" />
        </service>
    </services>
</container>
