<?xml version="1.0" encoding="UTF-8"?>

<!--

 This file is part of the Sylius package.

 (c) Sylius Sp. z o.o.

 For the full copyright and license information, please view the LICENSE
 file that was distributed with this source code.

-->

<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
    <services>
        <defaults public="true" />

        <service id="sylius.promotion_coupon_duration_eligibility_checker"
                 class="Sylius\Component\Promotion\Checker\Eligibility\PromotionCouponDurationEligibilityChecker"
                 public="false">
            <tag name="sylius.promotion_coupon_eligibility_checker" />
        </service>
        <service id="sylius.promotion_coupon_usage_limit_eligibility_checker"
                 class="Sylius\Component\Promotion\Checker\Eligibility\PromotionCouponUsageLimitEligibilityChecker"
                 public="false">
            <tag name="sylius.promotion_coupon_eligibility_checker" />
        </service>
        <service id="sylius.promotion_coupon_eligibility_checker"
                 class="Sylius\Component\Promotion\Checker\Eligibility\CompositePromotionCouponEligibilityChecker">
            <argument type="collection" />
        </service>
        <service id="sylius.promotion_duration_eligibility_checker"
                 class="Sylius\Component\Promotion\Checker\Eligibility\PromotionDurationEligibilityChecker"
                 public="false">
            <tag name="sylius.promotion_eligibility_checker" />
        </service>
        <service id="sylius.promotion_usage_limit_eligibility_checker"
                 class="Sylius\Component\Promotion\Checker\Eligibility\PromotionUsageLimitEligibilityChecker"
                 public="false">
            <tag name="sylius.promotion_eligibility_checker" />
        </service>
        <service id="sylius.promotion_subject_coupon_eligibility_checker"
                 class="Sylius\Component\Promotion\Checker\Eligibility\PromotionSubjectCouponEligibilityChecker"
                 public="false">
            <argument type="service" id="sylius.promotion_coupon_eligibility_checker" />
            <tag name="sylius.promotion_eligibility_checker" />
        </service>
        <service id="sylius.promotion_rules_eligibility_checker"
                 class="Sylius\Component\Promotion\Checker\Eligibility\PromotionRulesEligibilityChecker"
                 public="false">
            <argument type="service" id="sylius.registry_promotion_rule_checker" />
            <tag name="sylius.promotion_eligibility_checker" />
        </service>
        <service id="sylius.promotion_eligibility_checker"
                 class="Sylius\Component\Promotion\Checker\Eligibility\CompositePromotionEligibilityChecker">
            <argument type="collection" />
        </service>
        <service id="sylius.promotion_archival_eligibility_checker"
                 class="Sylius\Component\Promotion\Checker\Eligibility\PromotionArchivalEligibilityChecker"
                 public="false">
            <tag name="sylius.promotion_eligibility_checker" />
        </service>
    </services>
</container>
