<?xml version="1.0"?>
<!--
/**
 * Copyright © 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\ShippingCalculatorBase\Api\EstimateShippingMethodsInterface" type="MageWorx\ShippingCalculatorBase\Model\EstimateShippingMethods" />
    <preference for="MageWorx\ShippingCalculatorBase\Api\AddressResolverInterface" type="MageWorx\ShippingCalculatorBase\Model\GeneralAddressResolver" />
    <!-- Plugins -->
    <type name="MageWorx\ShippingRules\Model\Validator">
        <plugin name="mageworx_shipping_calculator_quote_substitution"
                type="MageWorx\ShippingCalculatorBase\Plugin\ShippingRules\QuoteSubstitution"
                sortOrder="10"
                disabled="false" />
    </type>
    <type name="Magento\Quote\Api\Data\CartInterface">
        <plugin name="mageworx_shipping_calculator_disable_quote_save"
                type="MageWorx\ShippingCalculatorBase\Plugin\Quote"
                sortOrder="10"
                disabled="false" />
    </type>
    <!-- Custom Logger Handlers -->
    <virtualType name="MageworxShippingCalculatorLogger" type="Magento\Framework\Logger\Monolog">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="debug" xsi:type="object">MageWorx\ShippingCalculatorBase\Logger\DebugHandler</item>
            </argument>
        </arguments>
    </virtualType>
    <!-- Loggers Injection -->
    <type name="MageWorx\ShippingCalculatorBase\Controller\Calculator\Refresh">
        <arguments>
            <argument name="logger" xsi:type="object">MageworxShippingCalculatorLogger</argument>
        </arguments>
    </type>
</config>
