Define reusable reference-document model (ExecPlan 2.2.6) - #48
Draft
leynos wants to merge 1 commit into
Draft
Conversation
- Added comprehensive ExecPlan document outlining roadmap item 2.2.6 - Defines reusable ReferenceDocument domain model with hexagonal boundaries - Details constraints, risks, interfaces, and staged implementation plan - Includes added Makefile target 'typecheck' for gate completeness - Provides architectural and testing strategies with acceptance criteria This lays groundwork for decoupled document modeling and API contracts as scoped. Co-authored-by: devboxerhub[bot] <devboxerhub[bot]@users.noreply.github.com>
Reviewer's GuideAdds an ExecPlan design document for roadmap item 2.2.6 that defines a reusable ReferenceDocument domain model and introduces a new ER diagram for planned ReferenceDocument domain modelerDiagram
ReferenceDocument {
uuid document_id
string external_key
string title
string kind
json metadata
datetime created_at
}
ReferenceDocumentRevision {
uuid revision_id
uuid document_id
int revision_number
text content
json content_metadata
datetime created_at
}
ReferenceBinding {
uuid binding_id
uuid revision_id
uuid series_id
string profile_kind
datetime bound_at
}
SeriesProfile {
uuid series_id
string profile_kind
}
ReferenceDocument ||--o{ ReferenceDocumentRevision : has
ReferenceDocumentRevision ||--o{ ReferenceBinding : selected_by
SeriesProfile ||--o{ ReferenceBinding : owns
Class diagram for planned repositories and domain entitiesclassDiagram
class ReferenceDocument {
+document_id
+external_key
+title
+kind
+metadata
+created_at
}
class ReferenceDocumentRevision {
+revision_id
+document_id
+revision_number
+content
+content_metadata
+created_at
}
class ReferenceBinding {
+binding_id
+revision_id
+series_id
+profile_kind
+bound_at
}
class ReferenceDocumentRepository {
<<interface>>
+create_document(command)
+get_document(document_id)
+add_revision(command)
+list_revisions(document_id)
}
class ReferenceBindingRepository {
<<interface>>
+bind_revision(command)
+get_binding(series_id, profile_kind)
}
class SqlAlchemyReferenceDocumentRepository {
+create_document(command)
+get_document(document_id)
+add_revision(command)
+list_revisions(document_id)
}
class SqlAlchemyReferenceBindingRepository {
+bind_revision(command)
+get_binding(series_id, profile_kind)
}
ReferenceDocumentRepository <|.. SqlAlchemyReferenceDocumentRepository
ReferenceBindingRepository <|.. SqlAlchemyReferenceBindingRepository
ReferenceDocumentRepository --> ReferenceDocument
ReferenceDocumentRepository --> ReferenceDocumentRevision
ReferenceBindingRepository --> ReferenceBinding
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Introduce ExecPlan for roadmap item 2.2.6 to define a reusable ReferenceDocument model with hexagonal-architecture boundaries. Adds a Makefile gate for static type checks and a design-focused planning document detailing entities, ports, and phased work.
Changes
Rationale
Plan of work (high level)
Acceptance criteria (high level)
Validation and testing
Notes & risks
Artifacts
◳ Generated by DevBoxer ◰
ℹ️ Tag @devboxerhub to ask questions and address PR feedback
📎 Task: https://www.devboxer.com/task/70ae7028-3ced-4255-8cf1-178102b86640
Summary by Sourcery
Define an execution plan for introducing a reusable, hexagonally-architected reference document model and add a type-checking quality gate to the build.
Build:
Documentation: