Add beta Documentation
This commit is contained in:
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"path":"NexusReader.Application/Queries/Reader/ViewModels.cs","purpose":"Defines application-level view models for the reader UI, including a polymorphic ContentBlock hierarchy (text and AI-trigger blocks) and a ReaderPageViewModel used by reader queries.","classification":{"role":"dto","layer":"application","confidence":0.9,"evidence":["DTO/view-model naming pattern","namespace NexusReader.Application.Queries.Reader","records named *ViewModel and ContentBlock used to carry UI/query data","JsonDerivedType attributes declare polymorphic JSON serialization for ContentBlock"]},"className":"","methods":[],"types":[{"name":"ContentBlock","kind":"model","line":7,"purpose":"Abstract base record for polymorphic content blocks shown on a reader page (polymorphic JSON root).","fields":[{"name":"Id","type":"string","required":true,"line":7,"description":"Identifier for the content block"}]},{"name":"TextSegmentBlock","kind":"model","line":8,"purpose":"Concrete ContentBlock carrying a text segment to render.","fields":[{"name":"Id","type":"string","required":true,"line":8,"description":"Inherited block identifier"},{"name":"Content","type":"string","required":true,"line":8,"description":"Text payload for the segment"}]},{"name":"AiActionTriggerBlock","kind":"model","line":9,"purpose":"Concrete ContentBlock representing an AI-driven action trigger with dialog and selectable options.","fields":[{"name":"Id","type":"string","required":true,"line":9,"description":"Inherited block identifier"},{"name":"Dialogue","type":"string","required":true,"line":9,"description":"Prompt or dialogue text presented to the user"},{"name":"ActionOptions","type":"List<string>","required":true,"line":9,"description":"List of selectable action identifiers or labels"}]},{"name":"ReaderPageViewModel","kind":"view-model","line":11,"purpose":"View model for a reader page, aggregating content blocks and chapter/eBook context used by queries and UI.","fields":[{"name":"Blocks","type":"List<ContentBlock>","required":true,"line":11,"description":"Ordered list of polymorphic content blocks to render on the page"},{"name":"CurrentChapterIndex","type":"int","required":true,"line":11,"description":"Zero-based index of the current chapter"},{"name":"TotalChapters","type":"int","required":true,"line":11,"description":"Total number of chapters in the eBook"},{"name":"ChapterTitle","type":"string","required":true,"line":11,"description":"Title of the current chapter"},{"name":"EbookId","type":"Guid","required":false,"line":11,"description":"Optional eBook identifier (defaults to Guid.Empty)"}]}],"serviceRegistrations":[],"startupActions":[],"dependencies":["System.Text.Json.Serialization"],"patterns":["Polymorphic DTO","View Model","Record Types"],"domainConcepts":["ContentBlock","ReaderPage","Ebook","Chapter","AI Action"],"keyDetails":"Uses JsonDerivedType attributes (lines 5-6) to register two discriminators: \"text\" -> TextSegmentBlock and \"trigger\" -> AiActionTriggerBlock for System.Text.Json polymorphic serialization. File contains only immutable record types (no methods).","orchestrationMethods":[],"typedContracts":[{"name":"ContentBlock","kind":"model","line":7,"fieldCount":1,"evidencePaths":["NexusReader.Application/Queries/Reader/ViewModels.cs"]},{"name":"TextSegmentBlock","kind":"model","line":8,"fieldCount":2,"evidencePaths":["NexusReader.Application/Queries/Reader/ViewModels.cs"]},{"name":"AiActionTriggerBlock","kind":"model","line":9,"fieldCount":3,"evidencePaths":["NexusReader.Application/Queries/Reader/ViewModels.cs"]},{"name":"ReaderPageViewModel","kind":"view-model","line":11,"fieldCount":5,"evidencePaths":["NexusReader.Application/Queries/Reader/ViewModels.cs"]}],"persistenceInteractions":[],"externalInteractions":[],"evidenceAnchors":[{"kind":"typed-contract","label":"ContentBlock","line":7,"summary":"model with 1 fields.","confidence":0.8,"evidencePaths":["NexusReader.Application/Queries/Reader/ViewModels.cs"]},{"kind":"typed-contract","label":"TextSegmentBlock","line":8,"summary":"model with 2 fields.","confidence":0.8,"evidencePaths":["NexusReader.Application/Queries/Reader/ViewModels.cs"]},{"kind":"typed-contract","label":"AiActionTriggerBlock","line":9,"summary":"model with 3 fields.","confidence":0.8,"evidencePaths":["NexusReader.Application/Queries/Reader/ViewModels.cs"]},{"kind":"typed-contract","label":"ReaderPageViewModel","line":11,"summary":"view-model with 5 fields.","confidence":0.8,"evidencePaths":["NexusReader.Application/Queries/Reader/ViewModels.cs"]}]}
|
||||
Reference in New Issue
Block a user