<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<map xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
     xs:noNamespaceSchemaLocation="urn:magento:module:Magento_DataMigrationTool:etc/map.xsd">
    <source>
        <field_rules>
            <transform>
                <field>eav_attribute.attribute_model</field>
                <handler class="\Migration\Handler\EavAttribute\ConvertModel"/>
            </transform>
            <transform>
                <field>eav_attribute.backend_model</field>
                <handler class="\Migration\Handler\EavAttribute\ConvertModel"/>
            </transform>
            <transform>
                <field>eav_attribute.backend_table</field>
                <handler class="\Migration\Handler\GetDestinationValue">
                    <param name="setNullIfEmpty" value="true"/>
                </handler>
            </transform>
            <transform>
                <field>eav_attribute.frontend_model</field>
                <handler class="\Migration\Handler\EavAttribute\ConvertModel"/>
            </transform>
            <transform>
                <field>eav_attribute.frontend_input</field>
                <handler class="\Migration\Handler\Convert">
                    <param name="map" value="[datetime:date]"/>
                </handler>
            </transform>
            <transform>
                <field>eav_attribute.is_required</field>
                <handler class="\Migration\Handler\GetDestinationValue"/>
            </transform>
            <transform>
                <field>eav_attribute.frontend_class</field>
                <handler class="\Migration\Handler\GetDestinationValue"/>
            </transform>
            <transform>
                <field>eav_attribute.frontend_label</field>
                <handler class="\Migration\Handler\GetDestinationValue"/>
            </transform>
            <transform>
                <field>eav_attribute.source_model</field>
                <handler class="\Migration\Handler\EavAttribute\ConvertModel"/>
            </transform>
            <transform>
                <field>eav_attribute.default_value</field>
                <handler class="\Migration\Handler\GetDestinationValue"/>
            </transform>
            <transform>
                <field>eav_attribute.note</field>
                <handler class="\Migration\Handler\GetDestinationValue">
                    <param name="setNullIfEmpty" value="true"/>
                </handler>
            </transform>

            <transform>
                <field>catalog_eav_attribute.frontend_input_renderer</field>
                <handler class="\Migration\Handler\EavAttribute\ConvertModel"/>
            </transform>
            <transform>
                <field>catalog_eav_attribute.is_visible</field>
                <handler class="\Migration\Handler\GetDestinationValue"/>
            </transform>
            <transform>
                <field>catalog_eav_attribute.apply_to</field>
                <handler class="\Migration\Handler\GetDestinationValue"/>
            </transform>

            <transform>
                <field>customer_eav_attribute.input_filter</field>
                <handler class="\Migration\Handler\GetDestinationValue"/>
            </transform>
            <transform>
                <field>customer_eav_attribute.data_model</field>
                <handler class="\Migration\Handler\EavAttribute\ConvertModel"/>
            </transform>

            <transform>
                <field>eav_entity_type.entity_model</field>
                <handler class="\Migration\Handler\EavAttribute\ConvertModel"/>
            </transform>
            <transform>
                <field>eav_entity_type.attribute_model</field>
                <handler class="\Migration\Handler\EavAttribute\ConvertModel"/>
            </transform>
            <transform>
                <field>eav_entity_type.entity_table</field>
                <handler class="\Migration\Handler\GetDestinationValue"/>
            </transform>
            <transform>
                <field>eav_entity_type.increment_model</field>
                <handler class="\Migration\Handler\EavAttribute\ConvertModel"/>
            </transform>
            <transform>
                <field>eav_entity_type.additional_attribute_table</field>
                <handler class="\Migration\Handler\GetDestinationValue">
                    <param name="setNullIfEmpty" value="true"/>
                </handler>
            </transform>
            <transform>
                <field>eav_entity_type.entity_attribute_collection</field>
                <handler class="\Migration\Handler\EavAttribute\ConvertModel"/>
            </transform>

            <transform>
                <field>eav_attribute_set.sort_order</field>
                <handler class="\Migration\Handler\SetValue">
                    <param name="value" value="100"/>
                </handler>
            </transform>
            <transform>
                <field>eav_attribute_set.attribute_set_name</field>
                <handler class="\Migration\Handler\AddPrefix">
                    <param name="prefix" value="Migration_"/>
                </handler>
            </transform>

            <transform>
                <field>eav_attribute_group.attribute_group_name</field>
                <handler class="\Migration\Handler\AddPrefix">
                    <param name="prefix" value="Migration_"/>
                </handler>
            </transform>
            <transform>
                <field>eav_attribute_group.default_id</field>
                <handler class="\Migration\Handler\SetValue">
                    <param name="value" value="0"/>
                </handler>
            </transform>
            <transform>
                <field>catalog_eav_attribute.apply_to</field>
                <handler class="\Migration\Handler\EavAttribute\ApplyTo"/>
            </transform>
            <ignore>
                <field>catalog_eav_attribute.is_configurable</field>
            </ignore>
        </field_rules>
    </source>
    <destination>
        <field_rules>
            <ignore>
                <field>catalog_eav_attribute.is_required_in_admin_store</field>
            </ignore>
            <ignore>
                <field>eav_attribute_group.attribute_group_code</field>
            </ignore>
            <ignore>
                <field>eav_attribute_group.tab_group_code</field>
            </ignore>

            <transform>
                <field>eav_attribute_group.attribute_group_code</field>
                <handler class="\Migration\Handler\EavAttributeGroup\SetGroupCode" />
            </transform>
            <transform>
                <field>eav_attribute_group.tab_group_code</field>
                <handler class="\Migration\Handler\SetValue">
                    <param name="value" value="basic"/>
                </handler>
            </transform>
        </field_rules>
    </destination>
</map>
