<?xml version="1.0"?>
<!--
/**
 * Copyright © MageWorx. All rights reserved.
 * See LICENSE.txt for license details.
 */
 -->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="sales_quote_address_save_before">
        <observer
                name="mageworx_dd_save_dd_info"
                instance="MageWorx\DeliveryDate\Observer\SaveDeliveryDateInformationInAddress"
                />
    </event>
    <!-- Transfer data to order address -->
    <event name="sales_order_address_save_after">
        <observer
                name="mageworx_dd_save_dd_info"
                instance="MageWorx\DeliveryDate\Observer\SaveDeliveryDateInformationInAddress"
                />
    </event>
    <event name="sales_model_service_quote_submit_before">
        <observer
                name="mageworx_dd_transfer_info_from_quote_addr_to_order_addr"
                instance="MageWorx\DeliveryDate\Observer\TransferInfoFromQuoteAddressToOrderAddress"
                />
    </event>
    <event name="checkout_type_multishipping_create_orders_single">
        <observer
                name="mageworx_dd_transfer_info_from_quote_addr_to_order_addr_multishipping"
                instance="MageWorx\DeliveryDate\Observer\TransferInfoFromQuoteAddressToOrderAddress"
                shared="false"
                />
    </event>
    <!-- Add Extension Attributes to the Order Address Collection -->
    <event name="sales_order_address_collection_load_before">
        <observer
                name="mageworx_dd_add_dd_info"
                instance="MageWorx\DeliveryDate\Observer\AddDeliveryDateInformationToOrderAddressCollection"
        />
    </event>
    <!-- Add Extension Attributes to the Quote Address collection -->
    <event name="sales_quote_address_collection_load_before">
        <observer
                name="mageworx_dd_load_extension_attributes"
                instance="MageWorx\DeliveryDate\Observer\AddExtensionAttributesToTheQuoteAddressCollection"
                />
    </event>
    <!--
    Validate is delivery date available (by restriction mode)
    @see \MageWorx\DeliveryDate\Model\Source\QuoteLimitationMode
    -->
    <event name="checkout_submit_before">
        <observer
            name="mageworx_dd_add_default_delivery_date"
            instance="MageWorx\DeliveryDate\Observer\AddDefaultDeliveryDate"
        />
        <observer
                name="mageworx_dd_validate_delivery_date_availability_in_queue"
                instance="MageWorx\DeliveryDate\Observer\ValidateDeliveryDateAvailability"
        />
    </event>
    <!-- Clear queue when order was canceled -->
    <event name="order_cancel_after">
        <observer
                name="mageworx_dd_remove_order_from_queue"
                instance="MageWorx\DeliveryDate\Observer\RemoveQueue"
        />
    </event>
    <!-- Add delivery info to the new order email -->
    <event name="email_order_set_template_vars_before">
        <observer name="add_delivery_info_to_email"
                  instance="MageWorx\DeliveryDate\Observer\Email\AddDeliveryInfoToOrderEmail" />
    </event>
    <!-- Add delivery info to the new invoice email -->
    <event name="email_invoice_set_template_vars_before">
        <observer name="add_delivery_info_to_email"
                  instance="MageWorx\DeliveryDate\Observer\Email\AddDeliveryInfoToOrderEmail" />
    </event>
    <!-- Add delivery info to the new shipment email -->
    <event name="email_shipment_set_template_vars_before">
        <observer name="add_delivery_info_to_email"
                  instance="MageWorx\DeliveryDate\Observer\Email\AddDeliveryInfoToOrderEmail" />
    </event>
</config>
