<?xml version="1.0"?>
<!--
/**
 * @author Amasty Team
 * @copyright Copyright (c) Amasty (https://www.amasty.com)
 * @package One Step Checkout Core for Magento 2
 */-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="payment_cart_collect_items_and_amounts">
        <observer name="amasty_checkout"
                  instance="Amasty\CheckoutCore\Observer\Payment\Model\Cart\CollectTotalsAndAmounts" />
    </event>
    <event name="sales_model_service_quote_submit_before">
        <observer name="Amasty_CheckoutCore::set_comment" instance="Amasty\CheckoutCore\Observer\QuoteSubmit\BeforeSubmitObserver"/>
    </event>
    <event name="sales_model_service_quote_submit_success">
        <observer name="Amasty_CheckoutCore::set_orderid" instance="Amasty\CheckoutCore\Observer\QuoteSubmit\AfterSubmitObserver"/>
        <observer name="Amasty_CheckoutCore::sales_model_service_quote_submit" instance="Amasty\CheckoutCore\Observer\Sales\Model\Service\Quote\Submit" />
    </event>
    <event name="customer_address_format">
        <observer name="Amasty_CheckoutCore::order_address_renderer" instance="Amasty\CheckoutCore\Observer\Order\RendererAddressFormat" />
    </event>
    <event name="sales_model_service_quote_submit_failure">
        <observer name="Amasty_CheckoutCore::sales_model_service_quote_submit" instance="Amasty\CheckoutCore\Observer\Sales\Model\Service\Quote\Submit" />
    </event>
    <event name="adminhtml_cache_flush_all">
        <observer name="Amasty_CheckoutCore::delete_bundle" instance="Amasty\CheckoutCore\Observer\AdminhtmlCacheFlushAll"/>
    </event>

    <!--  Process GDPR consent codes  -->
    <event name="sales_order_place_after">
        <observer name="Amasty_CheckoutCore::process_gdpr_consents" instance="Amasty\CheckoutCore\Observer\QuoteSubmit\ProcessGdprConsents" />
        <observer name="amasty_gdpr" disabled="true" />
    </event>

    <event name="amasty_orderattr_entity_attribute_save_before">
        <observer name="Amasty_CheckoutCore::amasty_orderattr_entity_attribute_save_before"
                  instance="Amasty\CheckoutCore\Observer\OrderAttribute\UpdateSortOrder" />
    </event>

    <event name="amasty_orderattr_entity_attribute_save_after">
        <observer name="amasty_orderattr_entity_attribute_save_after"
                  instance="Amasty\CheckoutCore\Observer\OrderAttribute\InvalidateCache" />
    </event>
    <event name="amasty_orderattr_entity_attribute_delete_after">
        <observer name="Amasty_CheckoutCore::amasty_orderattr_entity_attribute_delete_after"
                  instance="Amasty\CheckoutCore\Observer\OrderAttribute\InvalidateCache" />
    </event>

    <event name="amasty_customer_attributes_before_save">
        <observer name="Amasty_CheckoutCore::amasty_customer_attributes_before_save"
                  instance="Amasty\CheckoutCore\Observer\CustomerAttribute\UpdateSortOrder" />
    </event>

    <event name="customer_attributes_after_save">
        <observer name="Amasty_CheckoutCore::customer_attributes_after_save"
                  instance="Amasty\CheckoutCore\Observer\CustomerAttribute\InvalidateCache" />
    </event>
    <event name="customer_attributes_delete_after">
        <observer name="Amasty_CheckoutCore::customer_attributes_delete_after"
                  instance="Amasty\CheckoutCore\Observer\CustomerAttribute\InvalidateCache" />
    </event>
</config>
