2026-03-05 08:26:51 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace MintyPHP\Repository\Security;
|
|
|
|
|
|
2026-03-13 21:58:51 +01:00
|
|
|
/** Contract for sliding-window rate limit storage by scope and subject hash. */
|
2026-03-05 08:26:51 +01:00
|
|
|
interface RateLimitRepositoryInterface
|
|
|
|
|
{
|
|
|
|
|
public function findByScopeAndHash(string $scope, string $subjectHash): ?array;
|
|
|
|
|
|
|
|
|
|
public function create(
|
|
|
|
|
string $scope,
|
|
|
|
|
string $subjectHash,
|
|
|
|
|
int $hits,
|
|
|
|
|
string $windowStartedAt,
|
|
|
|
|
?string $blockedUntil
|
|
|
|
|
): bool;
|
|
|
|
|
|
|
|
|
|
public function updateStateById(
|
|
|
|
|
int $id,
|
|
|
|
|
int $hits,
|
|
|
|
|
string $windowStartedAt,
|
|
|
|
|
?string $blockedUntil
|
|
|
|
|
): bool;
|
|
|
|
|
|
|
|
|
|
public function deleteByScopeAndHash(string $scope, string $subjectHash): bool;
|
|
|
|
|
}
|