<?xml version="1.0"?>
<!--
/**
 * Copyright © Postpay. All rights reserved.
 * See LICENSE for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Postpay\Payment\Model\Adapter\AdapterInterface" type="Postpay\Payment\Model\Adapter\RESTfulAdapter"/>

    <virtualType name="PostpayConfig" type="Postpay\Payment\Gateway\Config\Config">
        <arguments>
            <argument name="methodCode" xsi:type="const">Postpay\Payment\Gateway\Config\Config::CODE</argument>
        </arguments>
    </virtualType>

    <virtualType name="PostpayPayNowConfig" type="Postpay\Payment\Gateway\Config\PayNowConfig">
        <arguments>
            <argument name="methodCode" xsi:type="const">Postpay\Payment\Gateway\Config\PayNowConfig::CODE</argument>
        </arguments>
    </virtualType>

    <virtualType name="PostpayLogger" type="Magento\Payment\Model\Method\Logger">
        <arguments>
            <argument name="config" xsi:type="object">PostpayConfig</argument>
        </arguments>
    </virtualType>

    <type name="Postpay\Payment\Model\Adapter\ApiAdapter">
        <arguments>
            <argument name="customLogger" xsi:type="object">PostpayLogger</argument>
            <argument name="config" xsi:type="object">PostpayConfig</argument>
        </arguments>
    </type>

    <type name="Postpay\Payment\Observer\IsActiveObserver">
        <arguments>
            <argument name="config" xsi:type="object">PostpayConfig</argument>
        </arguments>
    </type>

    <type name="Postpay\Payment\Block\Widget\Product">
        <arguments>
            <argument name="config" xsi:type="object">PostpayConfig</argument>
        </arguments>
    </type>

    <type name="Postpay\Payment\Block\Widget\Cart">
        <arguments>
            <argument name="config" xsi:type="object">PostpayConfig</argument>
        </arguments>
    </type>

    <type name="Postpay\Payment\Model\Ui\ConfigProvider">
        <arguments>
            <argument name="config" xsi:type="object">PostpayConfig</argument>
            <argument name="payNowConfig" xsi:type="object">PostpayPayNowConfig</argument>
        </arguments>
    </type>  
</config>
