imports:
    - { resource: services/hydrator.yml }
    - { resource: services/entity.yml }

services:
    _defaults:
        autowire: true      # Automatically injects dependencies in your services.
        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.

    # Command
    C4S\ShopObjectExporterBundle\Command\ShopObjectExporterExportCommand:
        public: true
        tags:
            - { name: 'console.command', command: 'ShopObjectExporter:export' }

    # Command
    C4S\ShopObjectExporterBundle\Command\ShopObjectExporterExportSingleCommand:
        public: true
        tags:
            - { name: 'console.command', command: 'ShopObjectExporter:exportSingle' }

    # Command
    C4S\ShopObjectExporterBundle\Command\ShopObjectExporterCleanCommand:
        public: true
        tags:
            - { name: 'console.command', command: 'ShopObjectExporter:clean' }

    # Installer
    C4S\ShopObjectExporterBundle\Installer\Installer:
        class: C4S\ShopObjectExporterBundle\Installer\Installer
        public: true
        arguments:
            - '@Pimcore\Extension\Bundle\PimcoreBundleManager'
            - '@Pimcore\Bundle\CoreBundle\Command\Bundle\Helper\PostStateChange'

    # VersionsController
    C4S\ShopObjectExporterBundle\Controller\Admin\VersionsController:
        class: C4S\ShopObjectExporterBundle\Controller\Admin\VersionsController
        public: true

    # VersionListener
    C4S\ShopObjectExporterBundle\EventListener\Version\VersionListener:
        tags:
            - { name: kernel.event_listener, event: pimcore.version.preSave, method: preSave }
            - { name: kernel.event_listener, event: pimcore.version.postSave, method: postSave }

    # DataObjectListener
    C4S\ShopObjectExporterBundle\EventListener\DataObject\DataObjectListener:
        tags:
            - { name: kernel.event_listener, event: pimcore.dataobject.preDelete, method: preDelete }
            - { name: kernel.event_listener, event: pimcore.dataobject.postDelete, method: postDelete }

    # BatchSerializer
    C4S\ShopObjectExporterBundle\Batch\BatchSerializer:
        class: C4S\ShopObjectExporterBundle\Batch\BatchSerializer
        public: true

    # BatchProcess
    C4S\ShopObjectExporterBundle\Batch\BatchProcess:
        class: C4S\ShopObjectExporterBundle\Batch\BatchProcess
        public: true

    # CustomRenderer
    c4s.customrenderer:
        class: C4S\ShopObjectExporterBundle\Renderer\CustomRenderer
        public: true