authSettingsGateway ??= new AuthSettingsGateway($this->createSettingGateway()); } public function createAuthScopeGateway(): AuthScopeGateway { return $this->authScopeGateway ??= new AuthScopeGateway($this->tenantScopeService); } public function createAuthPermissionGateway(): AuthPermissionGateway { return $this->authPermissionGateway ??= new AuthPermissionGateway($this->createPermissionGateway()); } public function createAuthTenantGateway(): AuthTenantGateway { return $this->authTenantGateway ??= new AuthTenantGateway( $this->authRepositoryFactory->createTenantRepository() ); } public function createAuthCryptoGateway(): AuthCryptoGateway { return $this->authCryptoGateway ??= new AuthCryptoGateway(); } public function createAuthTenantSsoGateway(TenantSsoService $tenantSsoService): AuthTenantSsoGateway { return $this->authTenantSsoGateway ??= new AuthTenantSsoGateway($tenantSsoService); } public function createAuthSavedFilterGateway(): AuthSavedFilterGateway { return $this->authSavedFilterGateway ??= new AuthSavedFilterGateway( $this->userServicesFactory->createUserSavedFilterService() ); } public function createAuthAvatarGateway(): AuthAvatarGateway { return $this->authAvatarGateway ??= new AuthAvatarGateway( $this->userServicesFactory->createUserAvatarService() ); } public function createAuthExternalIdentityGateway(): AuthExternalIdentityGateway { return $this->authExternalIdentityGateway ??= new AuthExternalIdentityGateway( $this->authRepositoryFactory->createUserExternalIdentityRepository() ); } private function createPermissionGateway(): PermissionGateway { return $this->permissionGateway ??= $this->accessServicesFactory->createPermissionGateway(); } private function createSettingGateway(): SettingGateway { return $this->settingGateway ??= $this->settingServicesFactory->createSettingGateway(); } }