userAccountService ??= new UserAccountService( $this->createUserReadRepository(), $this->createUserWriteRepository(), $this->createUserListQueryRepository(), $this->createUserAssignmentService(), $this->createUserPasswordService(), $this->createUserSettingsGateway(), $this->createUserScopeGateway(), $this->createUserDirectoryGateway(), $this->auditServicesFactory->createSystemAuditService(), $this->databaseSessionRepository ); } public function createUserAssignmentService(): UserAssignmentService { return $this->userAssignmentService ??= new UserAssignmentService( $this->createUserWriteRepository(), $this->createUserTenantRepository(), $this->createUserRoleRepository(), $this->createUserDepartmentRepository(), $this->createUserDirectoryGateway(), $this->createUserPermissionGateway(), $this->databaseSessionRepository ); } public function createUserTenantContextService(): UserTenantContextService { return $this->userTenantContextService ??= new UserTenantContextService( $this->createUserReadRepository(), $this->createUserWriteRepository(), $this->createUserTenantRepository(), $this->createUserScopeGateway(), $this->createUserDirectoryGateway() ); } public function createUserPasswordService(): UserPasswordService { return $this->userPasswordService ??= new UserPasswordService( $this->createUserPasswordPolicyService(), $this->createUserWriteRepository() ); } public function createUserAvatarService(): UserAvatarService { return $this->userAvatarService ??= new UserAvatarService(); } public function createUserSavedFilterService(): UserSavedFilterService { return $this->userSavedFilterService ??= new UserSavedFilterService( $this->createUserSavedFilterRepository() ); } public function createUserReadRepository(): UserReadRepositoryInterface { return $this->userRepositoryFactory->createUserReadRepository(); } public function createUserWriteRepository(): UserWriteRepositoryInterface { return $this->userRepositoryFactory->createUserWriteRepository(); } public function createUserListQueryRepository(): UserListQueryRepositoryInterface { return $this->userRepositoryFactory->createUserListQueryRepository(); } public function createUserSavedFilterRepository(): UserSavedFilterRepositoryInterface { return $this->userRepositoryFactory->createUserSavedFilterRepository(); } public function createUserTenantRepository(): UserTenantRepositoryInterface { return $this->userRepositoryFactory->createUserTenantRepository(); } public function createUserRoleRepository(): UserRoleRepositoryInterface { return $this->userRepositoryFactory->createUserRoleRepository(); } public function createUserDepartmentRepository(): UserDepartmentRepositoryInterface { return $this->userRepositoryFactory->createUserDepartmentRepository(); } public function createUserPasswordPolicyService(): UserPasswordPolicyService { return $this->userPasswordPolicyService ??= new UserPasswordPolicyService(); } public function createUserSettingsGateway(): UserSettingsGateway { return $this->userGatewayFactory->createUserSettingsGateway(); } public function createUserScopeGateway(): UserScopeGateway { return $this->userGatewayFactory->createUserScopeGateway(); } public function createUserDirectoryGateway(): UserDirectoryGateway { return $this->userGatewayFactory->createUserDirectoryGateway(); } public function createUserPermissionGateway(): UserPermissionGateway { return $this->userGatewayFactory->createUserPermissionGateway(); } public function createUserLifecycleService(): UserLifecycleService { return $this->userLifecycleService ??= new UserLifecycleService( $this->createUserReadRepository(), $this->createUserWriteRepository(), $this->createUserSettingsGateway(), $this->createUserLifecycleAuditService(), $this->databaseSessionRepository ); } public function createUserLifecycleRestoreService(): UserLifecycleRestoreService { return $this->userLifecycleRestoreService ??= new UserLifecycleRestoreService( $this->createUserReadRepository(), $this->createUserWriteRepository(), $this->createUserLifecycleAuditService(), $this->databaseSessionRepository ); } private function createUserLifecycleAuditService(): UserLifecycleAuditService { return $this->userLifecycleAuditService ??= $this->auditServicesFactory->createUserLifecycleAuditService(); } }