services:
    _defaults:
        public: true

    prestashop.core.api.controller:
        abstract: true
        class: PrestaShopBundle\Controller\Api\ApiController
        calls:
            - [setLogger, ['@logger']]
            - [setContainer, ['@service_container']]

    prestashop.core.api.stock.controller:
        class: PrestaShopBundle\Controller\Api\StockController
        parent: prestashop.core.api.controller
        public: true
        properties:
            movements: "@prestashop.core.api.stock.movements_collection"
            stockRepository: "@prestashop.core.api.stock.repository"
            queryParams: "@prestashop.core.api.query_stock_params_collection"

    prestashop.core.api.stock_movement.controller:
        class: PrestaShopBundle\Controller\Api\StockMovementController
        parent: prestashop.core.api.controller
        public: true
        properties:
            stockMovementRepository: "@prestashop.core.api.stock_movement.repository"
            queryParams: "@prestashop.core.api.query_stock_movement_params_collection"

    prestashop.core.api.supplier.controller:
        class: PrestaShopBundle\Controller\Api\SupplierController
        parent: prestashop.core.api.controller
        public: true
        properties:
            supplierRepository: "@prestashop.core.api.supplier.repository"

    prestashop.core.api.manufacturer.controller:
        class: PrestaShopBundle\Controller\Api\ManufacturerController
        parent: prestashop.core.api.controller
        public: true
        properties:
            manufacturerRepository: "@prestashop.core.api.manufacturer.repository"

    prestashop.core.api.category.controller:
        class: PrestaShopBundle\Controller\Api\CategoryController
        parent: prestashop.core.api.controller
        public: true
        properties:
            categoryRepository: "@prestashop.core.api.category.repository"

    prestashop.core.api.attribute.controller:
        class: PrestaShopBundle\Controller\Api\AttributeController
        parent: prestashop.core.api.controller
        public: true
        properties:
            featureAttributeRepository: "@prestashop.core.api.feature_attribute.repository"

    prestashop.core.api.feature.controller:
        class: PrestaShopBundle\Controller\Api\FeatureController
        parent: prestashop.core.api.controller
        public: true
        properties:
            featureAttributeRepository: "@prestashop.core.api.feature_attribute.repository"

    prestashop.core.api.i18n.controller:
        class: PrestaShopBundle\Controller\Api\I18nController
        parent: prestashop.core.api.controller
        public: true

    prestashop.core.api.translation.controller:
        class: PrestaShopBundle\Controller\Api\TranslationController
        parent: prestashop.core.api.controller
        public: true
        properties:
            translationService: "@prestashop.service.translation"
            queryParams: "@prestashop.core.api.query_translation_params_collection"

    prestashop.core.api.improve.design.postions.controller:
        class: PrestaShopBundle\Controller\Api\Improve\Design\PositionsController
        parent: prestashop.core.api.controller
        public: true
