<?xml version="1.0"?>
<!--
/**
 * @author Amasty Team
 * @copyright Copyright (c) Amasty (https://www.amasty.com)
 * @package Product Import Entity for Magento 2 (System)
 */-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:amasty:module:Amasty_ImportCore:etc/am_import.xsd">
    <entity code="inventory_stock">
        <name>MSI Inventory Stock</name>
        <group>Product</group>
        <description>MSI Inventory Stock Import Entity</description>
        <enabledChecker class="Amasty\ImportCore\Import\Config\IsModuleEnabled">
            <arguments>
                <argument name="moduleName" xsi:type="string">Magento_Inventory</argument>
            </arguments>
        </enabledChecker>
        <fieldsConfig>
            <fieldsClass class="Amasty\ImportCore\Import\FieldsClass\Describe">
                <arguments>
                    <argument name="tableName" xsi:type="string">inventory_stock</argument>
                </arguments>
            </fieldsClass>
            <fields>
                <field name="stock_id">
                    <actions>
                        <trim/>
                    </actions>
                    <validation>
                        <nonNegative/>
                    </validation>
                    <required/>
                </field>
                <field name="name">
                    <actions>
                        <trim/>
                    </actions>
                    <validation>
                        <notEmpty/>
                    </validation>
                    <required/>
                </field>
            </fields>
            <sampleData>
                <row>
                    <field name='stock_id'>1</field>
                    <field name='name'>Default Stock</field>
                </row>
            </sampleData>
        </fieldsConfig>
        <behaviors>
            <custom class="Amasty\ProductImportEntity\Import\Behavior\Inventory\Save\Stock"
                    code="save_inventory_stock"
                    name="Add/Update">
                <executeOnParent>
                    <addDirect/>
                    <addUpdateDirect/>
                    <updateDirect/>
                    <custom code="save_inventory_source"/>
                </executeOnParent>
            </custom>
            <deleteDirect name="Delete">
                <tableName>inventory_stock</tableName>
            </deleteDirect>
        </behaviors>
    </entity>
    <relation code="inventory_source_stock">
        <parent_entity>inventory_source</parent_entity>
        <child_entity>inventory_stock</child_entity>
        <sub_entity_field_name>inventory_stock</sub_entity_field_name>
        <skip_relation_fields_update>true</skip_relation_fields_update>
        <type>many_to_many</type>
        <arguments>
            <argument name="connect_table_name" xsi:type="string">inventory_source_stock_link</argument>
            <argument name="parent_field_name" xsi:type="string">source_code</argument>
            <argument name="connect_parent_field_name" xsi:type="string">source_code</argument>
            <argument name="child_field_name" xsi:type="string">stock_id</argument>
            <argument name="connect_child_field_name" xsi:type="string">stock_id</argument>
        </arguments>
    </relation>
</config>
