Skip to content

Conversation

@Arlodotexe
Copy link
Member

Introduced several significant improvements around repos that handle the lifecycle of root event stream handlers.

  • Introduced ProjectRepository, PublisherRepository, and UserRepository classes to manage project, publisher, and user entities with parameterized creation.
  • Removed all remaining required values from roaming records and forwent the option to include them on ESH creation.
    • This follows a recent investigation that determined the current repo/ESH implementations cannot effectively handle contextual or dynamic default roaming states without a subset of the tooling required for a checkpoint mechanism.
    • Instead, for now each new EHS instance should use common default values and any non-default values should be applied via event stream entries.
  • Implemented newly refactored NomadKuboRepository base class(Release 0.16.0 Arlodotexe/OwlCore.Nomad.Kubo#10)
  • Repositories now properly support multi-instantiation ((NomadKuboRepository should support multiple instantiation Arlodotexe/OwlCore.Nomad.Kubo#9)
  • Added RepositoryContainer class to handle interdependencies between constructed repositories.
  • Use records with named properties instead of a tuple for entity/role lists to correct "Item1" and "Item2" property names in IPLD.

…the lifecycle of root event stream handlers.

- Introduced ProjectRepository, PublisherRepository, and UserRepository classes to manage project, publisher, and user entities with parameterized creation.
- Removed all remaining required values from roaming records and forwent the option to include them on ESH creation.
   - This follows a recent investigation that determined the current repo/ESH implementations cannot effectively handle contextual or dynamic default roaming states without a subset of the tooling required for a checkpoint mechanism.
   - Instead, for now each new EHS instance should use common default values and any non-default values should be applied via event stream entries.
- Implemented newly refactored NomadKuboRepository base class(Arlodotexe/OwlCore.Nomad.Kubo#10)
- Repositories now properly support multi-instantiation ((Arlodotexe/OwlCore.Nomad.Kubo#9)
- Added RepositoryContainer class to handle interdependencies between constructed repositories.
- Use records with named properties instead of a tuple for entity/role lists to correct "Item1" and "Item2" property names in IPLD.
@Arlodotexe Arlodotexe requested a review from Copilot May 15, 2025 01:44
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR refactors various repository classes to leverage the new INomadKuboRepositoryBase interface and replaces tuple-based collections with strongly typed record collections for improved clarity and type safety.

  • Updated repository methods and property types for project, publisher, and user entities
  • Replaced tuple usages in role collections with record types
  • Adjusted using directives and default property assignments across data model classes

Reviewed Changes

Copilot reviewed 35 out of 35 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/Nomad/ReadOnlyProjectCollection.cs Updated repository type for project dependencies
src/Nomad/ReadOnlyProject.cs Changed repository types for project and publisher dependencies
src/Nomad/PublisherRepository.cs Refactored publisher repository with record-based collections
src/Nomad/ProjectRepository.cs Refactored project repository and updated key name generation
src/Nomad/ModifiableUserRoleCollection.cs Replaced tuple additions with record instantiations
src/Nomad/ModifiablePublisherRoleCollection.cs Updated publisher role collection with record types
src/Nomad/ModifiablePublisherCollection.cs Updated repository reference type for publisher collection
src/Nomad/ModifiablePublisher.cs Changed repository types for publisher dependency
src/Nomad/ModifiableProjectRoleCollection.cs Refactored project role collection with record types
src/Nomad/ModifiableProjectCollection.cs Updated repository reference type for project collection
src/Nomad/ModifiableProject.cs Updated repository dependencies and property types
src/Nomad/ModifiableEntity.cs Removed unused using directive
src/Models/User.cs, Publisher.cs, Project.cs Default property assignments replacing required modifier
src/Models/IUserRoleCollection.cs, IPublisherRoleCollection.cs, IProjectRoleCollection.cs Updated tuple-based collections to record-based collections
src/Models/IImages.cs Removed unused using directive

@Arlodotexe Arlodotexe merged commit 66c38b7 into main May 15, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants