services:
    _defaults:
        autowire: false
        autoconfigure: false
        public: true

    Claroline\CoreBundle\API\Serializer\ParametersSerializer:
        arguments:
            - '@Claroline\AppBundle\API\SerializerProvider'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Library\Configuration\PlatformConfigurationHandler'

    Claroline\CoreBundle\API\Serializer\ObjectLockSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\CommunityBundle\Serializer\UserSerializer'

    Claroline\CoreBundle\API\Serializer\MessageSerializer:
        arguments:
            - '@Claroline\CommunityBundle\Serializer\UserSerializer'
            - '@Claroline\AppBundle\Persistence\ObjectManager'

    Claroline\CoreBundle\API\Serializer\Planning\PlannedObjectSerializer:
        tags: [ claroline.serializer ]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CommunityBundle\Serializer\UserSerializer'
            - '@Claroline\CoreBundle\API\Serializer\Location\LocationSerializer'
            - '@Claroline\CoreBundle\API\Serializer\Location\RoomSerializer'

    Claroline\CoreBundle\API\Serializer\DataSourceSerializer:
        tags: [claroline.serializer]

    Claroline\CoreBundle\API\Serializer\Tool\AdminToolSerializer:
        tags: [claroline.serializer]

    Claroline\CoreBundle\API\Serializer\Workspace\WorkspaceSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@security.authorization_checker'
            - '@security.token_storage'
            - '@event_dispatcher'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Manager\Workspace\WorkspaceManager'
            - '@Claroline\CommunityBundle\Serializer\UserSerializer'
            - '@Claroline\CommunityBundle\Serializer\OrganizationSerializer'
            - '@Claroline\CoreBundle\API\Serializer\Resource\ResourceNodeSerializer'

    Claroline\CoreBundle\API\Serializer\Workspace\ShortcutsSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\CommunityBundle\Serializer\RoleSerializer'

    Claroline\CoreBundle\API\Serializer\Workspace\PendingRegistrationSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\CommunityBundle\Serializer\UserSerializer'

    Claroline\CoreBundle\API\Serializer\Widget\WidgetSerializer:
        tags: [claroline.serializer]

    Claroline\CoreBundle\API\Serializer\Widget\WidgetInstanceSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\AppBundle\API\SerializerProvider'

    Claroline\CoreBundle\API\Serializer\Widget\WidgetContainerSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\API\Finder\Widget\WidgetInstanceFinder'
            - '@Claroline\CoreBundle\API\Serializer\Widget\WidgetInstanceSerializer'

    Claroline\CoreBundle\API\Serializer\Widget\Type\SimpleWidgetSerializer:
        tags: [claroline.serializer]

    Claroline\CoreBundle\API\Serializer\Widget\Type\ResourceWidgetSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@security.token_storage'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\API\Serializer\Resource\ResourceNodeSerializer'

    Claroline\CoreBundle\API\Serializer\Widget\Type\ListWidgetSerializer:
        tags: [claroline.serializer]

    Claroline\CoreBundle\API\Serializer\Location\LocationSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@security.authorization_checker'
            - '@Claroline\AppBundle\Persistence\ObjectManager'

    Claroline\CoreBundle\API\Serializer\Location\RoomSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@security.authorization_checker'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\API\Serializer\Location\LocationSerializer'

    Claroline\CoreBundle\API\Serializer\Location\MaterialSerializer:
        tags: [ claroline.serializer ]
        arguments:
            - '@security.authorization_checker'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\API\Serializer\Location\LocationSerializer'

    Claroline\CoreBundle\API\Serializer\Location\MaterialBookingSerializer:
        tags: [ claroline.serializer ]

    Claroline\CoreBundle\API\Serializer\Location\RoomBookingSerializer:
        tags: [ claroline.serializer ]

    Claroline\CoreBundle\API\Serializer\Translatable\TranslatableSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Manager\LocaleManager'
            - '@request_stack'

    Claroline\CoreBundle\API\Serializer\Tool\ToolSerializer:
        tags: [claroline.serializer]

    Claroline\CoreBundle\API\Serializer\Tool\ToolRightsSerializer:
        tags: [ claroline.serializer ]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CommunityBundle\Serializer\RoleSerializer'
            - '@Claroline\CoreBundle\Manager\Tool\ToolMaskDecoderManager'

    Claroline\CoreBundle\API\Serializer\Tool\OrderedToolSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Manager\Tool\ToolManager'

    Claroline\CoreBundle\API\Serializer\Template\TemplateTypeSerializer:
        tags: [claroline.serializer]

    Claroline\CoreBundle\API\Serializer\Template\TemplateSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\API\Serializer\Template\TemplateTypeSerializer'

    Claroline\CoreBundle\API\Serializer\Resource\ResourceTypeSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\CoreBundle\Manager\Resource\ResourceActionManager'

    Claroline\CoreBundle\API\Serializer\Resource\ResourceNodeSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@event_dispatcher'
            - '@Claroline\CommunityBundle\Serializer\UserSerializer'
            - '@Claroline\CoreBundle\Manager\Resource\RightsManager'
            - '@Claroline\AppBundle\API\SerializerProvider'

    Claroline\CoreBundle\API\Serializer\Resource\ResourceRightsSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CommunityBundle\Serializer\RoleSerializer'
            - '@Claroline\CoreBundle\Manager\Resource\MaskManager'

    Claroline\CoreBundle\API\Serializer\Resource\ResourceCommentSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CommunityBundle\Serializer\UserSerializer'

    Claroline\CoreBundle\API\Serializer\Resource\Types\TextSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@security.token_storage'
            - '@Claroline\CoreBundle\Manager\Template\PlaceholderManager'

    Claroline\CoreBundle\API\Serializer\Resource\Types\FileSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@router'
            - '%claroline.param.files_directory%'
            - '@event_dispatcher'

    Claroline\CoreBundle\API\Serializer\Resource\Types\DirectorySerializer:
        tags: [claroline.serializer]

    Claroline\CoreBundle\API\Serializer\Platform\PluginSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\CoreBundle\Manager\PluginManager'

    Claroline\CoreBundle\API\Serializer\Platform\ClientSerializer:
        arguments:
            - '%kernel.environment%'
            - '@event_dispatcher'
            - '@security.token_storage'
            - '@request_stack'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\Library\Configuration\PlatformConfigurationHandler'
            - '@Claroline\AppBundle\Manager\PlatformManager'
            - '@Claroline\CoreBundle\Manager\VersionManager'
            - '@Claroline\CoreBundle\Manager\PluginManager'
            - '@Claroline\CoreBundle\Manager\UserManager'
            - '@Claroline\CoreBundle\API\Serializer\Resource\ResourceTypeSerializer'

    Claroline\CoreBundle\API\Serializer\Log\LogSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@translator'
            - '@event_dispatcher'
            - '@Claroline\CommunityBundle\Serializer\UserSerializer'
            - '@Claroline\CoreBundle\API\Serializer\Workspace\WorkspaceSerializer'
            - '@Claroline\CoreBundle\API\Serializer\Resource\ResourceNodeSerializer'

    Claroline\CoreBundle\API\Serializer\Log\Connection\LogConnectWorkspaceSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\API\SerializerProvider'

    Claroline\CoreBundle\API\Serializer\Log\Connection\LogConnectToolSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\API\SerializerProvider'

    Claroline\CoreBundle\API\Serializer\Log\Connection\LogConnectResourceSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\API\SerializerProvider'

    Claroline\CoreBundle\API\Serializer\Log\Connection\LogConnectPlatformSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\API\SerializerProvider'

    Claroline\CoreBundle\API\Serializer\Log\Connection\LogConnectAdminToolSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\API\SerializerProvider'

    Claroline\CoreBundle\API\Serializer\File\PublicFileSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\AppBundle\Manager\PlatformManager'

    Claroline\CoreBundle\API\Serializer\Facet\PanelFacetSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\API\Serializer\Facet\FieldFacetSerializer'

    Claroline\CoreBundle\API\Serializer\Facet\FieldFacetSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\API\Serializer\Facet\FieldFacetChoiceSerializer'

    Claroline\CoreBundle\API\Serializer\Facet\FieldFacetChoiceSerializer:
        tags: [claroline.serializer]

    Claroline\CoreBundle\API\Serializer\Facet\FacetSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\CoreBundle\API\Serializer\Facet\PanelFacetSerializer'

    Claroline\CoreBundle\API\Serializer\Platform\ConnectionMessageSerializer:
        tags: [claroline.serializer]
        arguments:
            - '@security.authorization_checker'
            - '@Claroline\AppBundle\Persistence\ObjectManager'
            - '@Claroline\AppBundle\Manager\PlatformManager'
            - '@Claroline\CommunityBundle\Serializer\RoleSerializer'
