{
  "version": 1,
  "generatedAt": "2026-05-25T11:41:33.166Z",
  "fileId": "file:kwumax:20260510161155-addebookprogressandchapter-design",
  "executableScope": true,
  "executableSymbolCount": 1,
  "fileNodeId": "file:kwumax:20260510161155-addebookprogressandchapter-design",
  "symbolNodeIds": [
    "class:1eh84ev:addebookprogressandchapter",
    "method:145q8gt:buildtargetmodel",
    "type:q2ghu0:ebook-model-configured",
    "type:vznymy:knowledgeunit-model-configured",
    "type:12mtiix:knowledgeunitlink-model-configured",
    "type:1p6mlsn:nexususer-model-configured",
    "type:mrafiy:subscriptionplan-model-configured",
    "type:1w5eq5k:semanticknowledgecache-model-configured",
    "type:1d5hut9:author-model-configured",
    "type:xrqv0u:quizresult-model-configured"
  ],
  "containmentEdgeIds": [
    "edge:ed0u2r:contains",
    "edge:zaalft:contains",
    "edge:o7mvm6:defines-type",
    "edge:175u6l4:defines-type",
    "edge:snchk9:defines-type",
    "edge:1ay4jsc:defines-type",
    "edge:1gvfpkv:defines-type",
    "edge:9k4mw:defines-type",
    "edge:1oazj2m:defines-type",
    "edge:c5s619:defines-type"
  ],
  "relationshipEdgeIds": [
    "edge:ed0u2r:contains",
    "edge:zaalft:contains",
    "edge:o7mvm6:defines-type",
    "edge:175u6l4:defines-type",
    "edge:snchk9:defines-type",
    "edge:1ay4jsc:defines-type",
    "edge:1gvfpkv:defines-type",
    "edge:9k4mw:defines-type",
    "edge:1oazj2m:defines-type",
    "edge:c5s619:defines-type",
    "edge:1i0qm3a:imports"
  ],
  "integrationEdgeIds": [
    "edge:1i0qm3a:imports"
  ],
  "controlFlowFragments": [
    {
      "fragmentId": "method:145q8gt:buildtargetmodel__fragment",
      "ownerFileId": "file:kwumax:20260510161155-addebookprogressandchapter-design",
      "ownerSymbolId": "method:145q8gt:buildtargetmodel",
      "ownerSymbolName": "BuildTargetModel",
      "entryNodeId": "method:145q8gt:buildtargetmodel__entry",
      "exitNodeIds": [
        "method:145q8gt:buildtargetmodel__implicit_return"
      ],
      "nodes": [
        {
          "id": "method:145q8gt:buildtargetmodel__entry",
          "kind": "entry",
          "label": "BuildTargetModel entry",
          "line": 20,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.99,
          "detail": "Constructs the EF Core model: registers Postgres vector extension, identity and domain entities, their properties, relationships, indices and seed data for SubscriptionPlans."
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_23_annotation_23__linear",
          "kind": "statement",
          "label": "Set product and identifier annotations",
          "line": 23,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "modelBuilder.HasAnnotation(\"ProductVersion\",\"10.0.7\").HasAnnotation(\"Relational:MaxIdentifierLength\", 63)"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_27_external_extension_27__linear",
          "kind": "statement",
          "label": "Enable Postgres vector extension",
          "line": 27,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, \"vector\")"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_28_external_config_28__linear",
          "kind": "statement",
          "label": "Configure identity column behavior",
          "line": 28,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder)"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_30_entity_declaration_30__linear",
          "kind": "statement",
          "label": "Configure Identity and AspNet tables",
          "line": 30,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "Adds Identity role, user, claims, logins, tokens, roles mapping tables with keys and indices"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_47_indexing_47__linear",
          "kind": "statement",
          "label": "Indexes and unique constraints",
          "line": 47,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "Multiple HasIndex calls across entities (e.g., RoleNameIndex, UserNameIndex, TenantId indices, unique ContentHash)"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_162_entity_declaration_162__linear",
          "kind": "statement",
          "label": "Configure domain entities (Author, Ebook, KnowledgeUnit, KnowledgeUnitLink, NexusUser, QuizResult, SemanticKnowledgeCache, SubscriptionPlan)",
          "line": 162,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "Registers domain entities and their properties, columns, keys and indices"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_526_data_seed_526__linear",
          "kind": "statement",
          "label": "Seed SubscriptionPlans",
          "line": 526,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "b.HasData(...) inserts Free, Basic, Pro, Enterprise plans with explicit Ids and defaults"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_616_relationship_616__linear",
          "kind": "statement",
          "label": "Ebook -> Author and Ebook -> NexusUser foreign keys",
          "line": 616,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "HasOne Author (restrict), HasOne User (cascade)"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_635_relationship_635__linear",
          "kind": "statement",
          "label": "KnowledgeUnitLink -> KnowledgeUnit links (SourceUnit, TargetUnit)",
          "line": 635,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "Two HasOne relationships with cascade deletes"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_654_relationship_654__linear",
          "kind": "statement",
          "label": "NexusUser -> SubscriptionPlan FK",
          "line": 654,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "HasOne SubscriptionPlan (restrict)"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_676_navigation_setup_676__linear",
          "kind": "statement",
          "label": "Configure navigation properties",
          "line": 676,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7,
          "detail": "Adds Navigation for collections and related entities (Ebooks, IncomingLinks, OutgoingLinks, QuizResults)"
        },
        {
          "id": "method:145q8gt:buildtargetmodel__implicit_return",
          "kind": "return",
          "label": "return",
          "line": 695,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.72,
          "detail": "Implicit method exit inferred from method boundary."
        }
      ],
      "edges": [
        {
          "id": "method:145q8gt:buildtargetmodel__entry__method:145q8gt:buildtargetmodel__action_23_annotation_23__linear",
          "from": "method:145q8gt:buildtargetmodel__entry",
          "to": "method:145q8gt:buildtargetmodel__action_23_annotation_23__linear",
          "kind": "next",
          "line": 23,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_23_annotation_23__linear__method:145q8gt:buildtargetmodel__action_27_external_extension_27__linear",
          "from": "method:145q8gt:buildtargetmodel__action_23_annotation_23__linear",
          "to": "method:145q8gt:buildtargetmodel__action_27_external_extension_27__linear",
          "kind": "next",
          "line": 27,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_27_external_extension_27__linear__method:145q8gt:buildtargetmodel__action_28_external_config_28__linear",
          "from": "method:145q8gt:buildtargetmodel__action_27_external_extension_27__linear",
          "to": "method:145q8gt:buildtargetmodel__action_28_external_config_28__linear",
          "kind": "next",
          "line": 28,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_28_external_config_28__linear__method:145q8gt:buildtargetmodel__action_30_entity_declaration_30__linear",
          "from": "method:145q8gt:buildtargetmodel__action_28_external_config_28__linear",
          "to": "method:145q8gt:buildtargetmodel__action_30_entity_declaration_30__linear",
          "kind": "next",
          "line": 30,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_30_entity_declaration_30__linear__method:145q8gt:buildtargetmodel__action_47_indexing_47__linear",
          "from": "method:145q8gt:buildtargetmodel__action_30_entity_declaration_30__linear",
          "to": "method:145q8gt:buildtargetmodel__action_47_indexing_47__linear",
          "kind": "next",
          "line": 47,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_47_indexing_47__linear__method:145q8gt:buildtargetmodel__action_162_entity_declaration_162__linear",
          "from": "method:145q8gt:buildtargetmodel__action_47_indexing_47__linear",
          "to": "method:145q8gt:buildtargetmodel__action_162_entity_declaration_162__linear",
          "kind": "next",
          "line": 162,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_162_entity_declaration_162__linear__method:145q8gt:buildtargetmodel__action_526_data_seed_526__linear",
          "from": "method:145q8gt:buildtargetmodel__action_162_entity_declaration_162__linear",
          "to": "method:145q8gt:buildtargetmodel__action_526_data_seed_526__linear",
          "kind": "next",
          "line": 526,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_526_data_seed_526__linear__method:145q8gt:buildtargetmodel__action_616_relationship_616__linear",
          "from": "method:145q8gt:buildtargetmodel__action_526_data_seed_526__linear",
          "to": "method:145q8gt:buildtargetmodel__action_616_relationship_616__linear",
          "kind": "next",
          "line": 616,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_616_relationship_616__linear__method:145q8gt:buildtargetmodel__action_635_relationship_635__linear",
          "from": "method:145q8gt:buildtargetmodel__action_616_relationship_616__linear",
          "to": "method:145q8gt:buildtargetmodel__action_635_relationship_635__linear",
          "kind": "next",
          "line": 635,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_635_relationship_635__linear__method:145q8gt:buildtargetmodel__action_654_relationship_654__linear",
          "from": "method:145q8gt:buildtargetmodel__action_635_relationship_635__linear",
          "to": "method:145q8gt:buildtargetmodel__action_654_relationship_654__linear",
          "kind": "next",
          "line": 654,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_654_relationship_654__linear__method:145q8gt:buildtargetmodel__action_676_navigation_setup_676__linear",
          "from": "method:145q8gt:buildtargetmodel__action_654_relationship_654__linear",
          "to": "method:145q8gt:buildtargetmodel__action_676_navigation_setup_676__linear",
          "kind": "next",
          "line": 676,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.7
        },
        {
          "id": "method:145q8gt:buildtargetmodel__action_676_navigation_setup_676__linear__implicit_return",
          "from": "method:145q8gt:buildtargetmodel__action_676_navigation_setup_676__linear",
          "to": "method:145q8gt:buildtargetmodel__implicit_return",
          "kind": "return",
          "line": 695,
          "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "confidence": 0.72
        }
      ],
      "jumpTargets": [],
      "exceptionTargets": [],
      "loopBackEdges": [],
      "mergeNodeIds": [],
      "language": "csharp",
      "confidence": 0.98,
      "lineSpan": {
        "start": 20,
        "end": 695
      },
      "unsupportedConstructs": [],
      "evidence": [
        {
          "path": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
          "line": 20,
          "summary": "Control-flow fragment extracted for method BuildTargetModel.",
          "kind": "file-summary"
        }
      ]
    }
  ],
  "unresolvedJumps": [],
  "diagrams": [
    {
      "id": "file_kwumax_20260510161155_addebookprogressandchapter_design_neighborhood_view",
      "purpose": "neighborhood-view",
      "title": "20260510161155_AddEbookProgressAndChapter.Designer Neighborhood",
      "required": true,
      "diagram": {
        "id": "file_kwumax_20260510161155_addebookprogressandchapter_design_neighborhood_view",
        "kind": "dependency-map",
        "title": "20260510161155_AddEbookProgressAndChapter.Designer Neighborhood",
        "direction": "LR",
        "nodes": [
          {
            "id": "file_kwumax_20260510161155_addebookprogressandchapter_design",
            "kind": "service",
            "label": "20260510161155_AddEbookProgressAndChapter.Designer",
            "shape": "rounded",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs"
          },
          {
            "id": "class_1eh84ev_addebookprogressandchapter",
            "kind": "service",
            "label": "AddEbookProgressAndChapter",
            "shape": "rounded",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs"
          },
          {
            "id": "method_145q8gt_buildtargetmodel",
            "kind": "method",
            "label": "BuildTargetModel()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 20
          },
          {
            "id": "type_q2ghu0_ebook_model_configured",
            "kind": "document",
            "label": "Ebook (model configured)",
            "shape": "doc",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 180
          },
          {
            "id": "type_vznymy_knowledgeunit_model_configured",
            "kind": "document",
            "label": "KnowledgeUnit (model configured)",
            "shape": "doc",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 234
          },
          {
            "id": "type_12mtiix_knowledgeunitlink_model_configured",
            "kind": "document",
            "label": "KnowledgeUnitLink (model configured)",
            "shape": "doc",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 280
          },
          {
            "id": "type_1p6mlsn_nexususer_model_configured",
            "kind": "document",
            "label": "NexusUser (model configured)",
            "shape": "doc",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 312
          },
          {
            "id": "type_mrafiy_subscriptionplan_model_configured",
            "kind": "document",
            "label": "SubscriptionPlan (model configured)",
            "shape": "doc",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 492
          },
          {
            "id": "type_1w5eq5k_semanticknowledgecache_model_configured",
            "kind": "document",
            "label": "SemanticKnowledgeCache (model configured)",
            "shape": "doc",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 447
          },
          {
            "id": "type_1d5hut9_author_model_configured",
            "kind": "document",
            "label": "Author (model configured)",
            "shape": "doc",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 162
          },
          {
            "id": "type_xrqv0u_quizresult_model_configured",
            "kind": "document",
            "label": "QuizResult (model configured)",
            "shape": "doc",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 410
          },
          {
            "id": "file_1pacvtg_appdbcontext_cs",
            "kind": "dependency",
            "label": "AppDbContext",
            "shape": "doc",
            "sourcePath": "NexusReader.Data/Persistence/AppDbContext.cs"
          }
        ],
        "edges": [
          {
            "id": "edge_1i0qm3a_imports",
            "from": "file_kwumax_20260510161155_addebookprogressandchapter_design",
            "to": "file_1pacvtg_appdbcontext_cs",
            "semanticLabel": "AppDbContext",
            "visibleLabel": "AppDbContext",
            "relation": "uses",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs"
          }
        ],
        "metadata": {
          "evidencePaths": [
            "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs"
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart LR\n    class_1eh84ev_addebookprogressandchapter(\"AddEbookProgressAndChapter\")\n    file_kwumax_20260510161155_addebookprogressandchapter_design(\"20260510161155_AddEbookProgressAndChapter.Designer\")\n    method_145q8gt_buildtargetmodel[[\"BuildTargetModel()\"]]\n    file_1pacvtg_appdbcontext_cs[/\"AppDbContext\"/]\n    type_12mtiix_knowledgeunitlink_model_configured[/\"KnowledgeUnitLink (model configured)\"/]\n    type_1d5hut9_author_model_configured[/\"Author (model configured)\"/]\n    type_1p6mlsn_nexususer_model_configured[/\"NexusUser (model configured)\"/]\n    type_1w5eq5k_semanticknowledgecache_model_configured[/\"SemanticKnowledgeCache (model configured)\"/]\n    type_mrafiy_subscriptionplan_model_configured[/\"SubscriptionPlan (model configured)\"/]\n    type_q2ghu0_ebook_model_configured[/\"Ebook (model configured)\"/]\n    type_vznymy_knowledgeunit_model_configured[/\"KnowledgeUnit (model configured)\"/]\n    type_xrqv0u_quizresult_model_configured[/\"QuizResult (model configured)\"/]\n    file_kwumax_20260510161155_addebookprogressandchapter_design -->|AppDbContext| file_1pacvtg_appdbcontext_cs",
      "warnings": []
    },
    {
      "id": "file_kwumax_20260510161155_addebookprogressandchapter_design_execution_view",
      "purpose": "execution-overview",
      "title": "20260510161155_AddEbookProgressAndChapter.Designer Execution Overview",
      "required": true,
      "diagram": {
        "id": "file_kwumax_20260510161155_addebookprogressandchapter_design_execution_view",
        "kind": "method-flow",
        "title": "20260510161155_AddEbookProgressAndChapter.Designer Execution Overview",
        "direction": "TD",
        "nodes": [
          {
            "id": "class_1eh84ev_addebookprogressandchapter",
            "kind": "service",
            "label": "AddEbookProgressAndChapter",
            "shape": "rounded",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs"
          },
          {
            "id": "method_145q8gt_buildtargetmodel",
            "kind": "method",
            "label": "BuildTargetModel()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 20
          }
        ],
        "edges": [
          {
            "id": "class_1eh84ev_addebookprogressandchapter_contains_method_145q8gt_buildtargetmodel",
            "from": "class_1eh84ev_addebookprogressandchapter",
            "to": "method_145q8gt_buildtargetmodel",
            "semanticLabel": "contains executable method",
            "visibleLabel": "contains",
            "relation": "calls",
            "sourcePath": "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs",
            "sourceLine": 20
          }
        ],
        "metadata": {
          "evidencePaths": [
            "NexusReader.Data/Migrations/20260510161155_AddEbookProgressAndChapter.Designer.cs"
          ],
          "warnings": [
            "Execution overview includes unresolved targets. Use validation artifacts before treating the flow as complete."
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart TD\n    class_1eh84ev_addebookprogressandchapter(\"AddEbookProgressAndChapter\")\n    method_145q8gt_buildtargetmodel[[\"BuildTargetModel()\"]]\n    class_1eh84ev_addebookprogressandchapter -->|contains| method_145q8gt_buildtargetmodel",
      "warnings": []
    }
  ],
  "renderHints": {
    "preferredSurface": "three-d",
    "defaultDiagramId": "file_kwumax_20260510161155_addebookprogressandchapter_design_execution_view",
    "controlFlowDiagramIds": [],
    "defaultControlFlowDiagramIdsBySymbolId": {}
  }
}