<?php
declare(strict_types=1);

namespace App\Core\Facades;

use App\Core\Contracts\RuleEngineInterface;
use App\Core\Facade;

/**
 * @method static mixed get(string $ruleCode, ?int $branchId = null, ?string $date = null)
 * @method static mixed getValue(string $ruleCode, string $key = 'value', ?int $branchId = null)
 * @method static array getAll(string $category, ?int $branchId = null)
 * @method static mixed getEffective(string $ruleCode, string $entityType, int $entityId, ?int $branchId = null)
 * @method static array require(string $ruleCode, ?int $branchId = null)
 * @method static mixed requireValue(string $ruleCode, string $key = 'value', ?int $branchId = null)
 */
final class Rules extends Facade
{
    protected static function getContainerKey(): string
    {
        return RuleEngineInterface::class;
    }
}
