services:
    oro_account.importexport.data_converter:
        parent: oro_importexport.data_converter.configurable

    oro_account.importexport.template_fixture.data_converter.account:
        parent: oro_importexport.data_converter.template_fixture.configurable

    # Strategy
    oro_account.importexport.strategy.account.add_or_replace:
        class: Oro\Bundle\AccountBundle\ImportExport\Strategy\AccountAddOrReplaceStrategy
        parent: oro_importexport.strategy.configurable_add_or_replace

    # Import processor
    oro_account.importexport.processor.import:
        parent: oro_importexport.processor.import_abstract
        calls:
             - [setDataConverter, ["@oro_account.importexport.data_converter"]]
             - [setStrategy, ["@oro_account.importexport.strategy.account.add_or_replace"]]
        tags:
            - { name: oro_importexport.processor, type: import, entity: 'Oro\Bundle\AccountBundle\Entity\Account', alias: oro_account.add_or_replace }
            - { name: oro_importexport.processor, type: import_validation, entity: 'Oro\Bundle\AccountBundle\Entity\Account', alias: oro_account.add_or_replace }

    # Export processor
    oro_account.importexport.processor.export:
        parent: oro_importexport.processor.export_abstract
        calls:
            - [setDataConverter, ["@oro_account.importexport.data_converter"]]
        tags:
            - { name: oro_importexport.processor, type: export, entity: 'Oro\Bundle\AccountBundle\Entity\Account', alias: oro_account }

    oro_account.importexport.processor.export_template:
        parent: oro_importexport.processor.export_abstract
        calls:
            - [setDataConverter, ["@oro_account.importexport.template_fixture.data_converter.account"]]
        tags:
            - { name: oro_importexport.processor, type: export_template, entity: 'Oro\Bundle\AccountBundle\Entity\Account', alias: oro_account }

    oro_account.importexport.template_fixture.account:
        class: Oro\Bundle\AccountBundle\ImportExport\TemplateFixture\AccountFixture
        tags:
            - { name: oro_importexport.template_fixture }

    oro_account.importexport.configuration_provider.account:
        class: 'Oro\Bundle\AccountBundle\ImportExport\Configuration\AccountImportExportConfigurationProvider'
        tags:
            - { name: oro_importexport.configuration, alias: oro_account }
