<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
        <arguments>
            <argument name="collections" xsi:type="array">
                <item name="awb_retry_error_data_source" xsi:type="string">Autogedal\AwbRetry\Model\ResourceModel\Collection\ErrorLog\Grid\Collection</item>
            </argument>
        </arguments>
    </type>

    <type name="Magento\Framework\Console\CommandList">
        <arguments>
            <argument name="commands" xsi:type="array">
                <item name="autogedal_awb_retry_seed_failure" xsi:type="object">Autogedal\AwbRetry\Console\Command\SeedFailureCommand</item>
                <item name="autogedal_awb_retry_inject_transient_failure" xsi:type="object">Autogedal\AwbRetry\Console\Command\InjectTransientFailureCommand</item>
                <item name="autogedal_awb_retry_reconcile" xsi:type="object">Autogedal\AwbRetry\Console\Command\ReconcileCommand</item>
            </argument>
        </arguments>
    </type>

    <type name="Magento\Backend\Block\Widget\Button\Toolbar">
        <plugin name="autogedal_awb_retry_order_view_button" type="Autogedal\AwbRetry\Plugin\Adminhtml\OrderViewButtonPlugin" sortOrder="20"/>
    </type>

    <type name="Autogedal\AwbRetry\Model\ResourceModel\Collection\ErrorLog\Grid\Collection">
        <arguments>
            <argument name="mainTable" xsi:type="string">autogedal_awb_error_log</argument>
            <argument name="eventPrefix" xsi:type="string">awb_retry_error_grid_collection</argument>
            <argument name="eventObject" xsi:type="string">awb_retry_error_grid_collection</argument>
            <argument name="resourceModel" xsi:type="string">Autogedal\AwbRetry\Model\ResourceModel\ErrorLog</argument>
        </arguments>
    </type>

    <virtualType name="AutogedalAwbRetryGridFilterPool" 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="AwbRetryErrorLogGridDataProvider" type="Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider">
        <arguments>
            <argument name="collection" xsi:type="object" shared="false">Autogedal\AwbRetry\Model\ResourceModel\Collection\ErrorLog\Grid\Collection</argument>
            <argument name="filterPool" xsi:type="object" shared="false">AutogedalAwbRetryGridFilterPool</argument>
        </arguments>
    </virtualType>

    <type name="Eadesigndev\Urgent\Model\GenerateAwb">
        <plugin name="autogedal_awb_retry_urgent" type="Autogedal\AwbRetry\Plugin\CourierGenerateAwbRetryPlugin" sortOrder="10"/>
    </type>
    <type name="Eadesigndev\FanCourier\Model\GenerateAwb">
        <plugin name="autogedal_awb_retry_fan" type="Autogedal\AwbRetry\Plugin\CourierGenerateAwbRetryPlugin" sortOrder="10"/>
    </type>
    <type name="Eadesigndev\DPD\Model\GenerateAwb">
        <plugin name="autogedal_awb_retry_dpd" type="Autogedal\AwbRetry\Plugin\CourierGenerateAwbRetryPlugin" sortOrder="10"/>
    </type>
    <type name="Eadesigndev\GLS\Model\GenerateAwb">
        <plugin name="autogedal_awb_retry_gls" type="Autogedal\AwbRetry\Plugin\CourierGenerateAwbRetryPlugin" sortOrder="10"/>
    </type>
    <type name="Eadesigndev\DragonStar\Model\GenerateAwb">
        <plugin name="autogedal_awb_retry_dragon" type="Autogedal\AwbRetry\Plugin\CourierGenerateAwbRetryPlugin" sortOrder="10"/>
    </type>
    <type name="Eadesigndev\NemoExpress\Model\GenerateAwb">
        <plugin name="autogedal_awb_retry_nemo" type="Autogedal\AwbRetry\Plugin\CourierGenerateAwbRetryPlugin" sortOrder="10"/>
    </type>
    <type name="Eadesigndev\Sameday\Model\GenerateAwb">
        <plugin name="autogedal_awb_retry_sameday" type="Autogedal\AwbRetry\Plugin\CourierGenerateAwbRetryPlugin" sortOrder="10"/>
    </type>
    <type name="Leadlion\AutogedalOrderFlow\Model\Packeta\GenerateAwb">
        <plugin name="autogedal_awb_retry_packeta" type="Autogedal\AwbRetry\Plugin\CourierGenerateAwbRetryPlugin" sortOrder="10"/>
    </type>
</config>
