<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Dotdigitalgroup\Email\Model\Contact" type="Dotdigitalgroup\Sms\Model\SmsContact" />
    <preference for="Dotdigitalgroup\Sms\Api\SmsOrderRepositoryInterface" type="Dotdigitalgroup\Sms\Model\SmsOrderRepository" />
    <preference for="Dotdigitalgroup\Sms\Api\Data\SmsOrderInterface" type="Dotdigitalgroup\Sms\Model\SmsOrder" />
    <type name="Magento\Shipping\Controller\Adminhtml\Order\Shipment\Save">
        <plugin name="ddg_new_shipment_plugin" type="Dotdigitalgroup\Sms\Plugin\Order\Shipment\NewShipmentPlugin" sortOrder="1"/>
    </type>
    <type name="Magento\Shipping\Controller\Adminhtml\Order\Shipment\AddTrack">
        <plugin name="ddg_update_shipment_plugin" type="Dotdigitalgroup\Sms\Plugin\Order\Shipment\ShipmentUpdatePlugin" sortOrder="3"/>
    </type>
    <type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
        <arguments>
            <argument name="collections" xsi:type="array">
                <item name="sms_report_grid_data_source" xsi:type="string">Dotdigitalgroup\Sms\Ui\Model\ResourceModel\SmsOrder\Collection</item>
            </argument>
        </arguments>
    </type>
    <type name="Dotdigitalgroup\Email\Model\Cron\Cleaner">
        <plugin name="ddg_sms_cron_cleaner_plugin" type="Dotdigitalgroup\Sms\Plugin\CronCleanerPlugin"/>
    </type>
    <type name="Dotdigitalgroup\Email\Model\Integration\IntegrationSetup">
        <plugin name="ddg_sms_integration_setup_plugin" type="Dotdigitalgroup\Sms\Plugin\IntegrationSetupPlugin"/>
    </type>
    <type name="Dotdigitalgroup\Email\Console\Command\Provider\TaskProvider">
        <plugin name="ddg_sms_task_provider_plugin" type="Dotdigitalgroup\Sms\Plugin\TaskProviderPlugin"/>
    </type>
    <type name="Dotdigitalgroup\Email\Model\Sync\Integration\DotdigitalConfig">
        <plugin name="ddg_sms_config_provider_plugin" type="Dotdigitalgroup\Sms\Plugin\ConfigProviderPlugin"/>
    </type>
    <type name="Magento\Checkout\Block\Checkout\LayoutProcessor">
        <plugin name="ddg_sms_international_telephone_layout_processor_plugin" type="Dotdigitalgroup\Sms\Plugin\Block\Checkout\LayoutProcessor"/>
    </type>
    <type name="Magento\Checkout\Model\ShippingInformationManagement">
        <plugin name="ddg_sms_shipping__plugin" type="Dotdigitalgroup\Sms\Plugin\Checkout\ShippingInformationManagementPlugin"/>
    </type>
    <type name="Magento\Newsletter\Controller\Manage\Index">
        <plugin name="dd_sms_newsletter_plugin" type="Dotdigitalgroup\Sms\Plugin\Customer\Account\NewsletterManageIndexPlugin"/>
    </type>
    <type name="Dotdigitalgroup\Email\Controller\Customer\Newsletter">
        <plugin name="dd_sms_newsletter_controller_plugin"
                type="Dotdigitalgroup\Sms\Plugin\Customer\Account\NewsletterControllerPlugin"/>
    </type>
    <type name="Dotdigitalgroup\Email\Console\Command\Provider\SyncProvider">
        <plugin name="ddg_sms_sync_provider_plugin"
                type="Dotdigitalgroup\Sms\Plugin\SyncProviderPlugin"/>
    </type>
    <type name="Dotdigitalgroup\Email\Model\Sync\Importer\ImporterQueueManager">
        <plugin name="dd_sms_importer_queue_manager_plugin" type="Dotdigitalgroup\Sms\Plugin\Importer\ImporterQueueManagerPlugin"/>
    </type>
    <type name="Dotdigitalgroup\Email\Model\Sync\Importer\ImporterProgressHandler">
        <plugin name="dd_sms_importer_progress_handler_plugin" type="Dotdigitalgroup\Sms\Plugin\Importer\ImporterProgressHandlerPlugin"/>
    </type>
    <type name="Dotdigitalgroup\Email\Model\Contact\ContactUpdaterPool">
        <arguments>
            <argument name="updaters" xsi:type="array">
                <item name="smsSubscriberUnsubscriber" xsi:type="object">Dotdigitalgroup\Sms\Model\SmsSubscriber\Unsubscriber</item>
                <item name="smsSubscriberResubscriber" xsi:type="object">Dotdigitalgroup\Sms\Model\SmsSubscriber\Resubscriber</item>
            </argument>
        </arguments>
    </type>
    <type name="Dotdigitalgroup\Email\Setup\Install\DataMigrationHelper">
        <plugin name="dd_sms_data_migration_helper_plugin" type="Dotdigitalgroup\Sms\Plugin\Setup\Install\DataMigrationHelper"/>
    </type>
    <type name="Dotdigitalgroup\Email\Setup\Install\DataMigrationTypeProvider">
        <plugin name="dd_sms_data_migration_type_provider_plugin" type="Dotdigitalgroup\Sms\Plugin\Setup\Install\DataMigrationTypeProvider"/>
    </type>
    <type name="Dotdigitalgroup\Sms\Model\Message\Text\Compiler">
        <arguments>
            <argument name="resolvers" xsi:type="array">
                <item name="1" xsi:type="object">Dotdigitalgroup\Sms\Model\Message\Variable\OrderDataResolver</item>
                <item name="2" xsi:type="object">Dotdigitalgroup\Sms\Model\Message\Variable\OrderDataResolver</item>
                <item name="3" xsi:type="object">Dotdigitalgroup\Sms\Model\Message\Variable\OrderDataResolver</item>
                <item name="4" xsi:type="object">Dotdigitalgroup\Sms\Model\Message\Variable\OrderDataResolver</item>
                <item name="5" xsi:type="object">Dotdigitalgroup\Sms\Model\Message\Variable\OrderDataResolver</item>
                <item name="6" xsi:type="object">Dotdigitalgroup\Sms\Model\Message\Variable\Resolver</item>
                <item name="7" xsi:type="object">Dotdigitalgroup\Sms\Model\Message\Variable\Resolver</item>
            </argument>
        </arguments>
    </type>
</config>
