<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="EthanYehuda\CronjobManager\Api\ScheduleManagementInterface" type="EthanYehuda\CronjobManager\Model\ScheduleManagement" />
    <preference for="EthanYehuda\CronjobManager\Api\ScheduleManagementAdapterInterface" type="EthanYehuda\CronjobManager\Model\ScheduleManagementAdapter" />
    <preference for="EthanYehuda\CronjobManager\Api\ScheduleRepositoryInterface" type="EthanYehuda\CronjobManager\Model\ScheduleRepository" />
    <preference for="EthanYehuda\CronjobManager\Api\ScheduleRepositoryAdapterInterface" type="EthanYehuda\CronjobManager\Model\ScheduleRepositoryAdapter" />
    <preference for="EthanYehuda\CronjobManager\Api\Data\ScheduleSearchResultsInterface" type="Magento\Framework\Api\SearchResults" />
    <preference for="EthanYehuda\CronjobManager\Api\Data\ScheduleInterface" type="EthanYehuda\CronjobManager\Model\Data\Schedule" />
    <preference for="EthanYehuda\CronjobManager\Model\ClockInterface" type="EthanYehuda\CronjobManager\Model\SystemClock" />
    <preference for="EthanYehuda\CronjobManager\Model\ErrorNotificationInterface" type="EthanYehuda\CronjobManager\Model\ErrorNotificationEmail" />
    <virtualType name="Magento\Cron\Model\ResourceModel\Schedule\Virtual\Collection" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
        <arguments>
            <argument name="mainTable" xsi:type="string">cron_schedule</argument>
            <argument name="resourceModel" xsi:type="string">Magento\Cron\Model\ResourceModel\Schedule</argument>
        </arguments>
    </virtualType>
    <type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
        <arguments>
            <argument name="collections" xsi:type="array">
                <item name="cronjobmanager_manage_grid_data_source" xsi:type="string">Magento\Cron\Model\ResourceModel\Schedule\Virtual\Collection</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\Framework\Console\CommandList">
        <arguments>
            <argument name="commands" xsi:type="array">
                <item name="ethanyehuda_cronjobmanager_command_showjobs" xsi:type="object">EthanYehuda\CronjobManager\Console\Command\Showjobs</item>
                <item name="ethanyehuda_cronjobmanager_command_runjob" xsi:type="object">EthanYehuda\CronjobManager\Console\Command\Runjob</item>
                <item name="ethanyehuda_cronjobmanager_command_killjob" xsi:type="object">EthanYehuda\CronjobManager\Console\Command\KillJob</item>
            </argument>
        </arguments>
    </type>
</config>
