services:
    ############ API SMARTGEAR V1 ############

    smartgear.api.smartgear.v1.api:
        class: WEM\SmartgearBundle\Api\Smartgear\V1\Api
        arguments:
            $coreConfigurationManager: '@smartgear.config.manager.core'
            $securityApiKey: '@smartgear.classes.api.security.api_key'
            $securityToken: '@smartgear.classes.api.security.token'
        public: true
    
    ############ API BACKUP V1 ############

    smartgear.api.backup.v1.api:
        class: WEM\SmartgearBundle\Api\Backup\V1\Api
        arguments:
            $translator: '@contao.translation.translator'
            $backupManager : '@smartgear.backup.backup_manager'
            $listResultToListResponseMapper: '@smartgear.api.backup.v1.model.mapper.list_result_to_list_response'
            $createResultToCreateResponseMapper: '@smartgear.api.backup.v1.model.mapper.create_result_to_create_response'
        public: true

    smartgear.api.backup.v1.model.list_response:
        class: WEM\SmartgearBundle\Api\Backup\V1\Model\ListResponse
        public: true

    smartgear.api.backup.v1.model.create_response:
        class: WEM\SmartgearBundle\Api\Backup\V1\Model\CreateResponse
        public: true

    smartgear.api.backup.v1.model.mapper.list_result_to_list_response:
        class: WEM\SmartgearBundle\Api\Backup\V1\Model\Mapper\ListResultToListResponse
        public: true

    smartgear.api.backup.v1.model.mapper.create_result_to_create_response:
        class: WEM\SmartgearBundle\Api\Backup\V1\Model\Mapper\CreateResultToCreateResponse
        public: true
    
    ############ API UPDATE V1 ############

    smartgear.api.update.v1.api:
        class: WEM\SmartgearBundle\Api\Update\V1\Api
        arguments:
            $updateManager : '@smartgear.update.update_manager'
            $listResultToListResponseMapper: '@smartgear.api.update.v1.model.mapper.list_result_to_list_response'
            $updateResultToUpdateResponseMapper: '@smartgear.api.update.v1.model.mapper.update_result_to_update_response'
        public: true

    smartgear.api.update.v1.model.list_response:
        class: WEM\SmartgearBundle\Api\Update\V1\Model\ListResponse
        public: true

    smartgear.api.update.v1.model.update_response:
        class: WEM\SmartgearBundle\Api\Update\V1\Model\UpdateResponse
        public: true

    smartgear.api.update.v1.model.mapper.list_result_to_list_response:
        class: WEM\SmartgearBundle\Api\Update\V1\Model\Mapper\ListResultToListResponse
        public: true

    smartgear.api.update.v1.model.mapper.update_result_to_update_response:
        class: WEM\SmartgearBundle\Api\Update\V1\Model\Mapper\UpdateResultToUpdateResponse
        public: true
    
    ############ API NOMINATIM V4 ############

    smartgear.api.nominatim.v4.api:
        class: WEM\SmartgearBundle\Api\Nominatim\V4\Api
        arguments:
            $stdClassToSearchResponseMapper: '@smartgear.api.nominatim.v4.model.mapper.std_class_to_search_response'
        public: true

    smartgear.api.nominatim.v4.model.search_response:
        class: WEM\SmartgearBundle\Api\Nominatim\V4\Model\SearchResponse
        public: true

    smartgear.api.nominatim.v4.model.mapper.std_class_to_search_response:
        class: WEM\SmartgearBundle\Api\Nominatim\V4\Model\Mapper\StdClassToSearchResponse
        public: true
    
    ############ API AIRTABLE V0 ############

    smartgear.api.airtable.v0.api:
        class: WEM\SmartgearBundle\Api\Airtable\V0\Api
        arguments:
            $configurationManager: '@smartgear.config.manager.core'
        public: true