<?php

declare(strict_types=1);

namespace Autogedal\PromoRules\Api;

use Autogedal\PromoRules\Api\Data\RuleUsageInterface;

/**
 * Repository contract for promo-rule usage records.
 */
interface RuleUsageRepositoryInterface
{
    public function save(RuleUsageInterface $ruleUsage): RuleUsageInterface;

    public function getByRuleIdAndEmail(int $ruleId, string $normalizedEmail): RuleUsageInterface;

    public function delete(RuleUsageInterface $ruleUsage): bool;

    public function deleteById(int $usageId): bool;
}
