Files
breadcrumb-the-shire/lib/Repository/Auth/ApiTokenRepositoryInterface.php
fs f4ce9f3378 docs: add class docblocks, business-rule comments, and transaction wrapper
- Add single-line class docblocks to all 59 repository classes and interfaces
  describing scope and responsibility
- Add multi-line docblocks to key services documenting business rules:
  AuthService (6-step login cascade), ImportService (3-phase CSV workflow),
  TenantScopeService (strict/permissive modes), PermissionService (RBAC
  resolution + two-tier caching), UserAccountService (atomicity + audit)
- Add transaction(callable) wrapper to DatabaseSessionRepository to DRY up
  begin/commit/rollback boilerplate

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 21:58:51 +01:00

46 lines
1.2 KiB
PHP

<?php
namespace MintyPHP\Repository\Auth;
/** Contract for API bearer token creation, lookup by selector or UUID, and revocation. */
interface ApiTokenRepositoryInterface
{
public function isUuid(string $value): bool;
public function create(
int $userId,
string $name,
string $selector,
string $tokenHash,
?int $tenantId,
?string $expiresAt,
?int $createdBy
): ?int;
public function findBySelector(string $selector): ?array;
public function find(int $id): ?array;
public function findByUuid(string $uuid): ?array;
public function findByUuidForUser(string $uuid, int $userId): ?array;
public function updateLastUsed(int $id, string $ip): bool;
public function revoke(int $id): bool;
public function revokeByUuidForUser(string $uuid, int $userId): bool;
public function revokeAllForUser(int $userId, ?int $tenantId = null): int;
public function revokeAllActiveByAdmin(): int;
public function listByUserId(int $userId, int $limit = 25): array;
public function countActiveForUser(int $userId): int;
public function countActiveForUserExcludingId(int $userId, int $excludeId): int;
public function countActive(): int;
}