services:
    _defaults:
        public: true

    prestashop.core.form.choice_provider.language_by_id:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\LanguageByIdChoiceProvider'
        arguments:
            - '@prestashop.adapter.data_provider.language'

    prestashop.core.form.choice_provider.country_by_id:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\CountryByIdChoiceProvider'
        arguments:
            - '@=service("prestashop.adapter.legacy.context").getLanguage().id'
            - '@prestashop.adapter.data_provider.country'

    prestashop.core.form.choice_provider.currency_by_id:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\CurrencyByIdChoiceProvider'
        arguments:
            - '@prestashop.adapter.data_provider.currency'

    prestashop.core.form.choice_provider.timezone_by_name:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\TimezoneByNameChoiceProvider'
        arguments:
            - '@prestashop.core.admin.timezone.repository'

    prestashop.core.form.choice_provider.localization_pack_by_iso_code:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\LocalizationPackByIsoCodeChoiceProvider'
        arguments:
            - '@prestashop.core.localization.pack.loader.remote'
            - '@prestashop.core.localization.pack.loader.local'
            - '@prestashop.adapter.legacy.configuration'
            - '@translator'

    prestashop.core.form.choice_provider.non_installed_localization:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\NonInstalledLocalizationChoiceProvider'
        arguments:
            - '@=service("prestashop.core.language.pack.loader.remote").getLanguagePackList()'
            - '@prestashop.adapter.language.validator'
            - '@prestashop.adapter.data_provider.language'

    prestashop.core.form.choice_provider.country_by_iso_code:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\CountryByIsoCodeChoiceProvider'
        arguments:
            - '@=service("prestashop.adapter.legacy.context").getLanguage().id'
            - '@prestashop.adapter.data_provider.country'

    prestashop.core.form.choice_provider.group_by_id:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\GroupByIdChoiceProvider'
        arguments:
            - '@prestashop.adapter.data_provider.group'
            - '@=service("prestashop.adapter.legacy.context").getLanguage().id'

    prestashop.core.form.choice_provider.carrier_by_reference_id:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\CarrierByReferenceChoiceProvider'
        arguments:
            - '@prestashop.adapter.data_provider.carrier'
            - '@=service("prestashop.adapter.legacy.context").getLanguage().id'

    prestashop.core.form.choice_provider.order_state_by_id:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\OrderStateByIdChoiceProvider'
        arguments:
            - '@=service("prestashop.adapter.legacy.context").getLanguage().id'
            - '@prestashop.adapter.data_provider.order_state'

    prestashop.core.form.choice_provider.invoice_model_by_name:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\InvoiceModelByNameChoiceProvider'
        arguments:
            - '@prestashop.core.file.cached_finder.invoice_model'

    prestashop.core.form.choice_provider.mail_method:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\MailMethodChoiceProvider'
        arguments:
            - '@prestashop.adapter.legacy.configuration'
            - '@translator'

    prestashop.core.form.choice_provider.contact_by_id:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\ContactByIdChoiceProvider'
        arguments:
            - '@prestashop.adapter.contact.repository'
            - '@=service("prestashop.adapter.legacy.context").getLanguage().id'

    prestashop.core.form.choice_provider.translation_type:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\TranslationTypeChoiceProvider'
        arguments:
            - '@translator'

    prestashop.core.form.choice_provider.email_content_type:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\EmailContentTypeChoiceProvider'
        arguments:
            - '@translator'

    prestashop.core.form.choice_provider.theme_by_name:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\ThemeByNameChoiceProvider'
        arguments:
            - '@=service("prestashop.core.addon.theme.repository").getListAsCollection()'

    prestashop.core.form.choice_provider.module_by_name:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\ModuleByNameChoiceProvider'
        arguments:
            - '@=service("prestashop.core.admin.module.repository").getInstalledModulesCollection()'

    prestashop.core.form.choice_provider.status:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\StatusChoiceProvider'
        arguments:
            - '@translator'

    prestashop.core.form.choice_provider.canonical_redirect_type:
        class: 'PrestaShop\PrestaShop\Core\Form\ChoiceProvider\CanonicalRedirectTypeChoiceProvider'
        arguments:
            - '@translator'
