<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\Customer\Model\Customer" type="Magento\Customer\Model\Backend\Customer" />
    <type name="Magento\Customer\Model\ResourceModel\Customer\Collection">
        <arguments>
            <argument name="modelName" xsi:type="string">Magento\Customer\Model\Backend\Customer</argument>
        </arguments>
    </type>
    <preference for="Magento\Framework\Session\SessionManagerInterface" type="Magento\Backend\Model\Session" />
    <type name="Magento\Ui\Model\Export\MetadataProvider">
        <arguments>
            <argument name="data" xsi:type="array">
                <item name="customer_listing" xsi:type="array">
                    <item name="created_at" xsi:type="string">created_at</item>
                    <item name="last_visit_at" xsi:type="string">last_visit_at</item>
                </item>
            </argument>
        </arguments>
    </type>
    <virtualType name="CustomerGirdFilterPool" 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\Customer\Ui\Component\Listing\FulltextFilter</item>
            </argument>
        </arguments>
    </virtualType>
    <virtualType name="CustomerGridCollectionReporting" type="Magento\Framework\View\Element\UiComponent\DataProvider\Reporting">
        <arguments>
            <argument name="filterPool" xsi:type="object">CustomerGirdFilterPool</argument>
        </arguments>
    </virtualType>
    <type name="Magento\Customer\Ui\Component\DataProvider">
        <arguments>
            <argument name="reporting" xsi:type="object">CustomerGridCollectionReporting</argument>
        </arguments>
    </type>
    <type name="Magento\Store\Model\Website">
        <plugin name="reindex_customer_grid_after_website_remove" type="Magento\Customer\Model\Plugin\CustomerGridIndexAfterWebsiteDelete" />
        <plugin name="deleteCustomerGroupExcludedWebsiteAfterWebsiteDelete" type="Magento\Customer\Model\Plugin\Website\DeleteCustomerGroupExcludedWebsite"/>
    </type>
</config>
