Files
breadcrumb-the-shire/lib/Service/Auth/AuthRepositoryFactory.php
2026-03-05 08:26:51 +01:00

65 lines
2.6 KiB
PHP

<?php
namespace MintyPHP\Service\Auth;
use MintyPHP\Repository\Auth\ApiTokenRepository;
use MintyPHP\Repository\Auth\ApiTokenRepositoryInterface;
use MintyPHP\Repository\Auth\EmailVerificationRepository;
use MintyPHP\Repository\Auth\EmailVerificationRepositoryInterface;
use MintyPHP\Repository\Auth\PasswordResetRepository;
use MintyPHP\Repository\Auth\PasswordResetRepositoryInterface;
use MintyPHP\Repository\Auth\RememberTokenRepository;
use MintyPHP\Repository\Auth\RememberTokenRepositoryInterface;
use MintyPHP\Repository\Tenant\TenantMicrosoftAuthRepository;
use MintyPHP\Repository\Tenant\TenantMicrosoftAuthRepositoryInterface;
use MintyPHP\Repository\Tenant\TenantRepository;
use MintyPHP\Repository\Tenant\TenantRepositoryInterface;
use MintyPHP\Repository\User\UserExternalIdentityRepository;
use MintyPHP\Repository\User\UserExternalIdentityRepositoryInterface;
class AuthRepositoryFactory
{
private ?ApiTokenRepository $apiTokenRepository = null;
private ?RememberTokenRepository $rememberTokenRepository = null;
private ?PasswordResetRepository $passwordResetRepository = null;
private ?EmailVerificationRepository $emailVerificationRepository = null;
private ?TenantRepository $tenantRepository = null;
private ?TenantMicrosoftAuthRepository $tenantMicrosoftAuthRepository = null;
private ?UserExternalIdentityRepository $userExternalIdentityRepository = null;
public function createApiTokenRepository(): ApiTokenRepositoryInterface
{
return $this->apiTokenRepository ??= new ApiTokenRepository();
}
public function createRememberTokenRepository(): RememberTokenRepositoryInterface
{
return $this->rememberTokenRepository ??= new RememberTokenRepository();
}
public function createPasswordResetRepository(): PasswordResetRepositoryInterface
{
return $this->passwordResetRepository ??= new PasswordResetRepository();
}
public function createEmailVerificationRepository(): EmailVerificationRepositoryInterface
{
return $this->emailVerificationRepository ??= new EmailVerificationRepository();
}
public function createTenantRepository(): TenantRepositoryInterface
{
return $this->tenantRepository ??= new TenantRepository();
}
public function createTenantMicrosoftAuthRepository(): TenantMicrosoftAuthRepositoryInterface
{
return $this->tenantMicrosoftAuthRepository ??= new TenantMicrosoftAuthRepository();
}
public function createUserExternalIdentityRepository(): UserExternalIdentityRepositoryInterface
{
return $this->userExternalIdentityRepository ??= new UserExternalIdentityRepository();
}
}