<?xml version="1.0"?>

<!--
  Copyright © 2019 Rokanthemes. All rights reserved.
-->

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Rokanthemes\StoreLocator\Api\StoreRepositoryInterface" type="Rokanthemes\StoreLocator\Model\StoreRepository" />
    <preference for="Rokanthemes\StoreLocator\Api\Data\StoreInterface" type="Rokanthemes\StoreLocator\Model\Store" />

    <virtualType name="StoreLocatorStoresGridFilterPool" 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>
    <virtualType name="StoreLocatorCategoriesGridFilterPool" 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>
    <virtualType name="StoreLocatorStoresGridDataProvider" type="Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider">
        <arguments>
            <argument name="collection" xsi:type="object" shared="false">Rokanthemes\StoreLocator\Model\ResourceModel\Store\Collection</argument>
            <argument name="filterPool" xsi:type="object" shared="false">StoreLocatorStoresGridFilterPool</argument>
        </arguments>
    </virtualType>

    <virtualType name="Rokanthemes\StoreLocator\Model\ResourceModel\Store\Grid\Collection" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
        <arguments>
            <argument name="mainTable" xsi:type="string">storelocator_store</argument>
            <argument name="resourceModel" xsi:type="string">Rokanthemes\StoreLocator\Model\ResourceModel\Store</argument>
        </arguments>
    </virtualType>

    <type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
        <arguments>
            <argument name="collections" xsi:type="array">
                <item name="rokanthemes_storelocator_stores_grid_data_source" xsi:type="string">Rokanthemes\StoreLocator\Model\ResourceModel\Store\Grid\Collection</item>
            </argument>
        </arguments>
    </type>
</config>