services:
    _defaults:
        public: true

    Oro\Bundle\ProductBundle\Controller\ProductController:
        calls:
            - ['setContainer', ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }
            - { name: container.service_subscriber, id: oro_product.service.product_update_handler, key: Oro\Bundle\ProductBundle\Form\Handler\ProductUpdateHandler }
            - { name: container.service_subscriber, id: oro_product.provider.page_template_provider, key: Oro\Bundle\ProductBundle\Provider\PageTemplateProvider }
            - { name: container.service_subscriber, id: oro_ui.html_tag_helper }

    Oro\Bundle\ProductBundle\Controller\Frontend\ProductController:
        calls:
            - ['setContainer', ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }
            - { name: container.service_subscriber, id: oro_product.layout.data_provider.product_view_form_availability_provider, key: Oro\Bundle\ProductBundle\Layout\DataProvider\ProductViewFormAvailabilityProvider }
            - { name: container.service_subscriber, id: oro_product.provider.product_variant_availability_provider, key: Oro\Bundle\ProductBundle\Provider\ProductVariantAvailabilityProvider }
            - { name: container.service_subscriber, id: oro_product.provider.page_template_provider, key: Oro\Bundle\ProductBundle\Provider\PageTemplateProvider }
            - { name: container.service_subscriber, id: oro_product.provider.product_autocomplete, key: Oro\Bundle\ProductBundle\Provider\ProductAutocompleteProvider }

    Oro\Bundle\ProductBundle\Controller\BrandController:
        calls:
            - ['setContainer', ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }

    Oro\Bundle\ProductBundle\Controller\Frontend\BrandController:
        calls:
            - ['setContainer', ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }

    Oro\Bundle\ProductBundle\Controller\AjaxGetProductsCountController:
        calls:
            - ['setContainer', ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }
            - { name: container.service_subscriber, id: oro_product.provider.grid_count_provider, key: Oro\Bundle\ProductBundle\Provider\GridCountProvider }

    Oro\Bundle\ProductBundle\Controller\AjaxProductUnitController:
        calls:
            - [ 'setContainer', [ '@Psr\Container\ContainerInterface' ] ]
        tags:
            - { name: container.service_subscriber }
            - { name: container.service_subscriber, id: oro_product.formatter.product_unit_label, key: Oro\Bundle\ProductBundle\Formatter\UnitLabelFormatter }

    Oro\Bundle\ProductBundle\Controller\Frontend\AjaxProductVariantController:
        calls:
            - ['setContainer', ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }

    Oro\Bundle\ProductBundle\Controller\Frontend\QuickAddController:
        calls:
            - ['setContainer', ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }
            - { name: container.service_subscriber, id: oro_product.layout.data_provider.product_form, key: Oro\Bundle\ProductBundle\Layout\DataProvider\ProductFormProvider }
            - { name: container.service_subscriber, id: oro_product.form_handler.quick_add_process, key: Oro\Bundle\ProductBundle\Form\Handler\QuickAddProcessHandler }
            - { name: container.service_subscriber, id: oro_product.form_handler.quick_add_import_from_file, key: Oro\Bundle\ProductBundle\Form\Handler\QuickAddImportFromFileHandler }
            - { name: container.service_subscriber, id: oro_product.form_handler.quick_add_import_from_plain_text, key: Oro\Bundle\ProductBundle\Form\Handler\QuickAddImportFromPlainTextHandler }

    Oro\Bundle\ProductBundle\Controller\Frontend\AjaxProductController:
        calls:
            - ['setContainer', ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }
            - { name: container.service_subscriber, id: oro_product.provider.product_images_urls, key: Oro\Bundle\ProductBundle\Provider\ProductImagesURLsProvider }
            - { name: container.service_subscriber, id: oro_product.manager.user_product_filters_sidebar_state_manager, key: Oro\Bundle\ProductBundle\Manager\UserProductFiltersSidebarStateManager }

    Oro\Bundle\ProductBundle\Controller\Frontend\AjaxProductUnitController:
        calls:
            - [ 'setContainer', [ '@Psr\Container\ContainerInterface' ] ]
        tags:
            - { name: container.service_subscriber }
            - { name: container.service_subscriber, id: oro_product.formatter.product_unit_label, key: Oro\Bundle\ProductBundle\Formatter\UnitLabelFormatter }

    Oro\Bundle\ProductBundle\Controller\Frontend\ExportController:
        calls:
            - [setContainer, ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }

    Oro\Bundle\ProductBundle\Controller\ProductCollectionContentVariantController:
        calls:
            - ['setContainer', ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }
            - { name: container.service_subscriber, id: oro_product.form.handler.product_collection_segment_products, key: Oro\Bundle\ProductBundle\Form\Handler\ProductCollectionSegmentProductsFormHandler }

    Oro\Bundle\ProductBundle\Controller\ProductKitItemController:
        calls:
            - ['setContainer', ['@Psr\Container\ContainerInterface']]
        tags:
            - { name: container.service_subscriber }
