services:
    _defaults:
        autowire: true
        autoconfigure: true

    Pimcore\Bundle\AdminBundle\Installer:
        public: true
        arguments:
            $bundle: "@=service('kernel').getBundle('PimcoreAdminBundle')"

    #
    # CONTROLLERS
    #

    # auto-register all controllers as services
    Pimcore\Bundle\AdminBundle\Controller\:
        resource: '../src/Controller'
        public: true
        tags: ['controller.service_arguments']

    Pimcore\Bundle\AdminBundle\Controller\Admin\IndexController:
        public: true
        arguments:
            $httpClient: '@pimcore.http_client'
        tags: [ 'controller.service_arguments' ]

    #
    # COMMANDS
    #

    # auto-register all commands as services
    Pimcore\Bundle\AdminBundle\Command\:
        resource: '../src/Command'
        tags: [ 'console.command' ]

    #
    # TRANSLATIONS
    #

    Pimcore\Bundle\AdminBundle\Translation\AdminUserTranslator: ~

    #
    # GDPR Services
    #

    # Tagged data providers will be injected from compiler pass
    Pimcore\Bundle\AdminBundle\GDPR\DataProvider\Manager: ~

    # Providers implementing DataProviderInterface will be auto-tagged via autoconfiguration
    Pimcore\Bundle\AdminBundle\GDPR\DataProvider\DataObjects:
        arguments:
            $config: '%pimcore.gdpr-data-extrator.dataobjects%'

    Pimcore\Bundle\AdminBundle\GDPR\DataProvider\Assets:
        arguments:
            $config: '%pimcore.gdpr-data-extrator.assets%'

    Pimcore\Bundle\AdminBundle\GDPR\DataProvider\SentMail: ~
    Pimcore\Bundle\AdminBundle\GDPR\DataProvider\PimcoreUsers:
        arguments:
            $logsDir: '%kernel.logs_dir%'


    #
    # Grid Helper Service
    #

    Pimcore\Bundle\AdminBundle\Helper\GridHelperService: ~

    #
    # User Helper Service
    #

    Pimcore\Bundle\AdminBundle\Helper\User: ~

    #
    # Default Preview Generator
    #

    Pimcore\Model\DataObject\ClassDefinition\PreviewGeneratorInterface:
        class: Pimcore\Bundle\AdminBundle\Service\PreviewGenerator

    #
    # Twig Extensions
    #

    Pimcore\Twig\Extension\AdminExtension: ~
    
    Pimcore\Bundle\AdminBundle\Twig\Extension\AdminExtension: ~

    #
    # Workflows
    #
    
    Pimcore\Bundle\AdminBundle\Service\Workflow\ActionsButtonService: ~

    #
    # Admin Config Services
    #
    Pimcore\Bundle\AdminBundle\System\AdminConfig: ~

    #
    # Element Services
    #
    Pimcore\Bundle\AdminBundle\Service\ElementServiceInterface:
        class: Pimcore\Bundle\AdminBundle\Service\ElementService
