authSettingsGateway ??= new AuthSettingsGateway( $this->createSettingsMicrosoftGateway(), $this->createSettingsApiPolicyGateway(), $this->createSettingsDefaultsGateway(), $this->createSettingsAppGateway() ); } 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 createSettingsMicrosoftGateway(): SettingsMicrosoftGateway { return $this->settingsMicrosoftGateway ??= $this->settingServicesFactory->createSettingsMicrosoftGateway(); } private function createSettingsApiPolicyGateway(): SettingsApiPolicyGateway { return $this->settingsApiPolicyGateway ??= $this->settingServicesFactory->createSettingsApiPolicyGateway(); } private function createSettingsDefaultsGateway(): SettingsDefaultsGateway { return $this->settingsDefaultsGateway ??= $this->settingServicesFactory->createSettingsDefaultsGateway(); } private function createSettingsAppGateway(): SettingsAppGateway { return $this->settingsAppGateway ??= $this->settingServicesFactory->createSettingsAppGateway(); } }