#####################################
#           Services                #
#####################################

services:

    #####################################
    #           Admin                   #
    #####################################

    App\Service\Admin\AnalyticService:
        public: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'
            $kernel: '@kernel'
            $browserRuntime: '@App\Twig\Content\BrowserRuntime'

    App\Service\Admin\BreadcrumbService:
        public: true
        lazy: true
        arguments:
            $container: '@service_container'
            $translator: '@translator'

    App\Service\Admin\DeleteService:
        public: true
        arguments:
            $requestStack: '@request_stack'
            $entityManager: '@doctrine.orm.entity_manager'
            $kernel: '@kernel'
            $interfaceHelper: '@App\Helper\Core\InterfaceHelper'
            $indexHelper: '@App\Helper\Admin\IndexHelper'

    App\Service\Admin\PositionService:
        public: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'
            $interfaceHelper: '@App\Helper\Core\InterfaceHelper'
            $indexHelper: '@App\Helper\Admin\IndexHelper'

    App\Service\Admin\SearchFilterService:
        public: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'
            $builderUpdater: '@lexik_form_filter.query_builder_updater'

    App\Module\InternationalBundle\Service\ImportService:
        public: true
        lazy: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'
            $kernel: '@kernel'

    App\Module\InternationalBundle\Service\QuotationService:
        public: true
        lazy: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'

    #####################################
    #           Content                 #
    #####################################

    App\Service\Content\AnalyticService:
        public: true
        lazy: true
        arguments:
            $authorizationChecker: '@security.authorization_checker'
            $entityManager: '@doctrine.orm.entity_manager'
            $requestStack: '@request_stack'
            $kernel: '@kernel'
            $browserDetection: '@App\Service\Content\BrowserDetection'

    App\Service\Content\LocaleService:
        public: true
        lazy: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'
            $router: '@router'
            $seoService: '@App\Service\Content\SeoService'
            $requestStack: '@request_stack'

    App\Service\Content\MenuService:
        public: true
        lazy: true
        arguments:
            $menuRepository: '@App\Repository\Action\Menu\MenuRepository'
            $treeService: '@App\Service\Core\TreeService'
            $requestStack: '@request_stack'

    App\Service\Content\SeoService:
        public: true
        arguments:
            $requestStack: '@request_stack'
            $mediaRuntime: '@App\Twig\Content\MediaRuntime'
            $layoutRuntime: '@App\Twig\Content\LayoutRuntime'
            $entityManager: '@doctrine.orm.entity_manager'
            $interfaceHelper: '@App\Helper\Core\InterfaceHelper'
            $listingService: '@App\Service\Content\ListingService'
            $analyticService: '@App\Service\Content\AnalyticService'
            $localeService: '@App\Service\Content\LocaleService'
            $router: '@router'

    App\Service\Content\RecaptchaService:
        public: true
        lazy: true
        arguments:
            $cryptService: '@App\Service\Content\CryptService'
            $translator: '@translator'
            $requestStack: '@request_stack'
            $entityManager: '@doctrine.orm.entity_manager'
            $kernel: '@kernel'

    App\Service\Content\SocialWallService:
        public: true
        arguments:
            $kernel: '@kernel'
            $entityManager: '@doctrine.orm.entity_manager'

    #####################################
    #           Core                    #
    #####################################

    App\Service\Core\SubscriberService:
        lazy: true
        arguments:
            $container: '@service_container'

    App\Service\Core\CacheService:
        public: true
        arguments:
            $cache: '@cache.system'
            $browserDetection: '@App\Service\Content\BrowserDetection'
            $cacheHelperLogger: '@logger'
            $requestStack: '@request_stack'
            $kernel: '@kernel'
            $twig: '@twig'
            $entityManager: '@doctrine.orm.entity_manager'
            $isDebug: '%kernel.debug%'

    App\Service\Core\GdprService:
        public: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'
            $kernel: '@kernel'
            $cronSchedulerService: '@App\Service\Core\CronSchedulerService'

    App\Service\Core\TreeService:
        public: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'

    App\Service\Core\MailerService:
        public: true
        lazy: true
        arguments:
            $mailer: '@mailer'
            $twig: '@twig'
            $requestStack: '@request_stack'
            $kernel: '@kernel'
            $isDebug: '%kernel.debug%'

    App\Service\Core\XlsxFileReader:
        public: true
        lazy: true

    #####################################
    #          Development              #
    #####################################

    App\Service\Development\FileUrlizerService:
        lazy: true
        arguments:
            $kernel: '@kernel'

    #####################################
    #             Export                #
    #####################################

    App\Service\Export\ExportCsvService:
        public: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'
            $kernel: '@kernel'
            $requestStack: '@request_stack'

    App\Service\Export\ExportContactService:
        public: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'
            $kernel: '@kernel'
            $requestStack: '@request_stack'

    #####################################
    #          Translation              #
    #####################################

    App\Service\Translation\ExportService:
        lazy: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'
            $kernel: '@kernel'

    App\Service\Translation\Extractor:
        lazy: true
        public: true
        arguments:
            $kernel: '@kernel'
            $entityManager: '@doctrine.orm.entity_manager'
            $entityService: '@App\Service\Development\EntityService'
            $interfaceHelper: '@App\Helper\Core\InterfaceHelper'
            $translator: '@translator'

    App\Service\Translation\ImportService:
        lazy: true
        arguments:
            $entityManager: '@doctrine.orm.entity_manager'
            $fileReader: '@App\Service\Core\XlsxFileReader'
            $kernel: '@kernel'
            $cacheCommand: '@App\Command\CacheCommand'