settingRepositoryFactory->createSettingRepository(); } public function createSettingsMetadataGateway(): SettingsMetadataGateway { return $this->settingsMetadataGateway ??= new SettingsMetadataGateway($this->createSettingRepository()); } public function createSettingsDefaultsGateway(): SettingsDefaultsGateway { return $this->settingsDefaultsGateway ??= new SettingsDefaultsGateway( $this->createSettingsMetadataGateway(), $this->createTenantRepository(), $this->createRoleRepository(), $this->createDepartmentRepository(), ); } public function createSettingsAppGateway(): SettingsAppGateway { return $this->settingsAppGateway ??= new SettingsAppGateway( $this->createSettingsMetadataGateway(), $this->createThemeConfigService(), ); } public function createSettingsApiPolicyGateway(): SettingsApiPolicyGateway { return $this->settingsApiPolicyGateway ??= new SettingsApiPolicyGateway($this->createSettingsMetadataGateway()); } public function createSettingsUserLifecycleGateway(): SettingsUserLifecycleGateway { return $this->settingsUserLifecycleGateway ??= new SettingsUserLifecycleGateway($this->createSettingsMetadataGateway()); } public function createSettingsSystemAuditGateway(): SettingsSystemAuditGateway { return $this->settingsSystemAuditGateway ??= new SettingsSystemAuditGateway($this->createSettingsMetadataGateway()); } public function createSettingsFrontendTelemetryGateway(): SettingsFrontendTelemetryGateway { return $this->settingsFrontendTelemetryGateway ??= new SettingsFrontendTelemetryGateway($this->createSettingsMetadataGateway()); } public function createSettingsMicrosoftGateway(): SettingsMicrosoftGateway { return $this->settingsMicrosoftGateway ??= new SettingsMicrosoftGateway( $this->createSettingsMetadataGateway(), $this->createSettingsCryptoGateway(), ); } public function createSettingsSessionGateway(): SettingsSessionGateway { return $this->settingsSessionGateway ??= new SettingsSessionGateway($this->createSettingsMetadataGateway()); } public function createSettingsSmtpGateway(): SettingsSmtpGateway { return $this->settingsSmtpGateway ??= new SettingsSmtpGateway($this->createSettingsMetadataGateway()); } public function createSettingCacheService(): SettingCacheService { return $this->settingCacheService ??= new SettingCacheService(); } public function createThemeConfigService(): ThemeConfigService { return $this->themeConfigService ??= new ThemeConfigService(); } public function createSettingsCryptoGateway(): SettingsCryptoGatewayInterface { return $this->settingsCryptoGateway ??= new SettingsCryptoGateway(); } private function createTenantRepository(): TenantRepositoryInterface { return $this->settingRepositoryFactory->createTenantRepository(); } private function createRoleRepository(): RoleRepositoryInterface { return $this->settingRepositoryFactory->createRoleRepository(); } private function createDepartmentRepository(): DepartmentRepositoryInterface { return $this->settingRepositoryFactory->createDepartmentRepository(); } }