<?xml version="1.0"?>
<!--
/**
 * Copyright © 2018 MageWorx. All rights reserved.
 * See LICENSE.txt for license details.
 */
 -->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <!-- Api preferences -->
    <preference for="MageWorx\OrdersBase\Api\Data\DeviceDataInterface" type="MageWorx\OrdersBase\Model\DeviceData"/>
    <preference for="MageWorx\OrdersBase\Api\DeviceDataRepositoryInterface" type="MageWorx\OrdersBase\Model\DeviceDataRepository"/>
    <preference for="MageWorx\OrdersBase\Api\DeviceTypeParserInterface" type="MageWorx\OrdersBase\Model\DeviceTypeParser"/>
    <preference for="MageWorx\OrdersBase\Api\AreaCodeParserInterface" type="MageWorx\OrdersBase\Model\AreaCodeParser"/>
    <preference for="MageWorx\OrdersBase\Api\CarriersFromOrderSourceInterface" type="MageWorx\OrdersBase\Model\Config\Source\CarriersFromOrderSource"/>
    <preference for="MageWorx\OrdersBase\Api\PaymentMethodsFromOrderSourceInterface" type="MageWorx\OrdersBase\Model\Config\Source\PaymentMethodsFromOrderSource"/>
    <!-- Dependency injection -->
    <type name="MageWorx\OrdersBase\Observer\OrderPlaced">
        <arguments>
            <argument name="parsers" xsi:type="array">
                <item name="areaParser" xsi:type="object">MageWorx\OrdersBase\Api\AreaCodeParserInterface</item>
                <item name="typeParser" xsi:type="object">MageWorx\OrdersBase\Api\DeviceTypeParserInterface</item>
            </argument>
        </arguments>
    </type>
    <!-- Plugins -->
    <type name="Magento\Sales\Api\OrderRepositoryInterface">
        <plugin name="mageworx_order_base_save_device_data" type="MageWorx\OrdersBase\Plugin\Order\SaveAttributes"/>
        <plugin name="mageworx_order_base_get_device_data" type="MageWorx\OrdersBase\Plugin\Order\GetAttributes"/>
    </type>
</config>
