<?xml version="1.0"?>
<!--
/**
 * @author Amasty Team
 * @copyright Copyright (c) Amasty (https://www.amasty.com)
 * @package Pixel Core for Magento 2
 */-->

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Amasty\PixelCore\Api\PixelRepositoryInterface" type="Amasty\PixelCore\Model\PixelRepository"/>
    <preference for="Amasty\PixelCore\Api\Data\PixelInterface" type="Amasty\PixelCore\Model\Pixel"/>
    <preference for="Amasty\PixelCore\Api\Data\PixelSearchResultsInterface"
                type="Amasty\PixelCore\Model\PixelSearchResults"/>

    <preference for="Amasty\PixelCore\Model\Pixel\Query\GetByIdInterface"
                type="Amasty\PixelCore\Model\Pixel\Query\GetByIdCache"/>
    <preference for="Amasty\PixelCore\Model\Pixel\Query\GetListInterface"
                type="Amasty\PixelCore\Model\Pixel\Query\GetList"/>
    <preference for="Amasty\PixelCore\Model\Pixel\Command\SaveInterface"
                type="Amasty\PixelCore\Model\Pixel\Command\Save"/>
    <preference for="Amasty\PixelCore\Model\Pixel\Command\DeleteCommandInterface"
                type="Amasty\PixelCore\Model\Pixel\Command\DeleteCommand"/>
    <preference for="Amasty\PixelCore\Model\Pixel\Command\UpdateStatusInterface"
                type="Amasty\PixelCore\Model\Pixel\Command\UpdateStatus"/>

    <type name="Amasty\PixelCore\Model\PixelRepository">
        <arguments>
            <argument name="getById"
                      xsi:type="object">Amasty\PixelCore\Model\Pixel\Query\GetByIdInterface\Proxy</argument>
            <argument name="getList"
                      xsi:type="object">Amasty\PixelCore\Model\Pixel\Query\GetListInterface\Proxy</argument>
            <argument name="saveCommand"
                      xsi:type="object">Amasty\PixelCore\Model\Pixel\Command\SaveInterface\Proxy</argument>
            <argument name="deleteCommand"
                      xsi:type="object">Amasty\PixelCore\Model\Pixel\Command\DeleteCommandInterface\Proxy</argument>
        </arguments>
    </type>

    <virtualType name="Amasty\PixelCore\Model\Logger\VirtualDebug" type="Magento\Framework\Logger\Handler\Base">
        <arguments>
            <argument name="fileName" xsi:type="string">/var/log/pixel.log</argument>
        </arguments>
    </virtualType>
    <virtualType name="Amasty\PixelCore\Model\Logger\VirtualLogger" type="Magento\Framework\Logger\Monolog">
        <arguments>
            <argument name="handlers" xsi:type="array">
                <item name="debug" xsi:type="object">Amasty\PixelCore\Model\Logger\VirtualDebug</item>
            </argument>
        </arguments>
    </virtualType>
    <type name="Amasty\PixelCore\Model\Logger\Logger">
        <arguments>
            <argument name="loggers" xsi:type="array">
                <item name="default" xsi:type="object">Amasty\PixelCore\Model\Logger\VirtualLogger</item>
            </argument>
        </arguments>
    </type>

    <type name="Amasty\PixelCore\Ui\Component\Listing\Column\Store">
        <arguments>
            <argument name="storeKey" xsi:type="string">stores</argument>
        </arguments>
    </type>
</config>
