<?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="Autogedal\PromoRules\Api\RuleConfigRepositoryInterface" type="Autogedal\PromoRules\Model\RuleConfigRepository"/>
    <preference for="Autogedal\PromoRules\Api\RuleUsageRepositoryInterface" type="Autogedal\PromoRules\Model\RuleUsageRepository"/>
    <preference for="Autogedal\PromoRules\Api\Data\RuleConfigInterface" type="Autogedal\PromoRules\Model\RuleConfig"/>
    <preference for="Autogedal\PromoRules\Api\Data\RuleUsageInterface" type="Autogedal\PromoRules\Model\RuleUsage"/>
    <type name="Magento\Framework\EntityManager\Operation\ExtensionPool">
        <arguments>
            <argument name="extensionActions" xsi:type="array">
                <item name="Magento\SalesRule\Api\Data\RuleInterface" xsi:type="array">
                    <item name="create" xsi:type="array">
                        <item name="create_autogedal_promo_rules" xsi:type="string">Autogedal\PromoRules\Model\SalesRule\SaveHandler</item>
                    </item>
                    <item name="update" xsi:type="array">
                        <item name="update_autogedal_promo_rules" xsi:type="string">Autogedal\PromoRules\Model\SalesRule\SaveHandler</item>
                    </item>
                </item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\SalesRule\Model\RuleRepository">
        <plugin name="autogedal_promo_rules_sales_rule_repository"
                type="Autogedal\PromoRules\Plugin\SalesRule\Model\RuleRepositoryPlugin"/>
    </type>
    <type name="Magento\SalesRule\Model\Utility">
        <plugin name="autogedal_promo_rules_sales_rule_utility"
                type="Autogedal\PromoRules\Plugin\SalesRule\Model\UtilityPlugin"/>
    </type>
    <type name="Magento\SalesRule\Model\RulesApplier">
        <plugin name="autogedal_promo_rules_sales_rule_rules_applier"
                type="Autogedal\PromoRules\Plugin\SalesRule\Model\RulesApplierPlugin"/>
    </type>
    <type name="Magento\Quote\Model\QuoteManagement">
        <plugin name="autogedal_promo_rules_quote_management"
                type="Autogedal\PromoRules\Plugin\Quote\QuoteManagementPlugin"/>
    </type>
    <type name="Magento\Sales\Model\Service\OrderService">
        <plugin name="autogedal_promo_rules_order_service"
                type="Autogedal\PromoRules\Plugin\Sales\Model\Service\OrderServicePlugin"/>
    </type>
</config>
