<?xml version="1.0"?>
<!--
/**
 * Copyright © 2016 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">
    <!-- Data -->
    <type name="MageWorx\OptionBase\Model\Product\Option\Value\Attributes">
        <arguments>
            <argument name="data" xsi:type="array">
                <item name="manage_stock" xsi:type="object">MageWorx\OptionInventory\Model\Attribute\OptionValue\ManageStock</item>
                <item name="qty" xsi:type="object">MageWorx\OptionInventory\Model\Attribute\OptionValue\Qty</item>
            </argument>
        </arguments>
    </type>

    <virtualType name="MageWorxOptionInventoryReportGridDataProvider" type="Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider">
        <arguments>
            <argument name="collection" xsi:type="object" shared="false">MageWorx\OptionInventory\Model\ResourceModel\Report\Collection</argument>
            <argument name="filterPool" xsi:type="object" shared="false">MageWorxOptionInventoryReportGirdFilterPool</argument>
        </arguments>
    </virtualType>

    <virtualType name="MageWorxOptionInventoryReportGirdFilterPool" type="Magento\Framework\View\Element\UiComponent\DataProvider\FilterPool">
        <arguments>
            <argument name="appliers" xsi:type="array">
                <item name="regular" xsi:type="object">Magento\Framework\View\Element\UiComponent\DataProvider\RegularFilter</item>
                <item name="fulltext" xsi:type="object">Magento\Framework\View\Element\UiComponent\DataProvider\FulltextFilter</item>
            </argument>
        </arguments>
    </virtualType>

    <type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
        <arguments>
            <argument name="collections" xsi:type="array">
                <item name="optioninventory_report_listing_data_source" xsi:type="string">MageWorx\OptionInventory\Model\ResourceModel\Report\Grid\Collection</item>
            </argument>
        </arguments>
    </type>

    <type name="MageWorx\OptionInventory\Model\ResourceModel\Report\Grid\Collection">
        <arguments>
            <argument name="mainTable" xsi:type="string">catalog_product_option_type_value</argument>
            <argument name="eventPrefix" xsi:type="string">mageworx_optioninventory_report_grid_collection</argument>
            <argument name="eventObject" xsi:type="string">mageworx_optioninventory_report_grid_collection</argument>
            <argument name="resourceModel" xsi:type="string">MageWorx\OptionInventory\Model\ResourceModel\Report</argument>
        </arguments>
    </type>

    <type name="MageWorx\OptionBase\Model\Source\LinkedProductAttributes">
        <arguments>
            <argument name="linkedAttributes" xsi:type="array">
                <item name="qty" xsi:type="string">qty</item>
            </argument>
        </arguments>
    </type>

    <type name="MageWorx\OptionBase\Helper\Data">
        <arguments>
            <argument name="linkedAttributes" xsi:type="array">
                <item name="qty" xsi:type="string">qty</item>
            </argument>
        </arguments>
    </type>

    <!-- Plugins -->
    <type name="MageWorx\OptionBase\Model\Product\Option\Value\AdditionalHtmlData">
        <arguments>
            <argument name="data" xsi:type="array">
                <item name="manage_stock" xsi:type="object">MageWorx\OptionInventory\Model\Product\Option\Value\AdditionalHtml</item>
            </argument>
        </arguments>
    </type>

    <!-- Installation -->
    <type name="MageWorx\OptionBase\Model\Installer">
        <arguments>
            <argument name="installSchema" xsi:type="array">
                <item name="optioninventory_install_schema_data" xsi:type="object">MageWorx\OptionInventory\Model\InstallSchema</item>
            </argument>
        </arguments>
    </type>

    <!-- Config param injection -->
    <type name="MageWorx\OptionBase\Helper\Data">
        <arguments>
            <argument name="configPathInventoryOutOfStockOptions" xsi:type="string">mageworx_apo/optioninventory/disable_out_of_stock_options</argument>
        </arguments>
    </type>
</config>
