[
  {
    "id": "class:zj074q:finalnormalizedsubscriptionarchitecture",
    "kind": "class",
    "fileId": "file:1xzhi6b:20260503175906-finalnormalizedsubscriptionarchit",
    "path": "NexusReader.Data/Migrations/20260503175906_FinalNormalizedSubscriptionArchitecture.Designer.cs",
    "canonicalName": "FinalNormalizedSubscriptionArchitecture",
    "shortLabel": "FinalNormalizedSubscriptionArchitecture",
    "longLabel": "FinalNormalizedSubscriptionArchitecture",
    "purpose": "EF Core migration designer that defines the target EF model for the AppDbContext: configures entities, relationships, indices, Postgres/vector extensions and includes seed data for subscription plans."
  },
  {
    "id": "method:tz9mq3:buildtargetmodel",
    "kind": "method",
    "fileId": "file:1xzhi6b:20260503175906-finalnormalizedsubscriptionarchit",
    "path": "NexusReader.Data/Migrations/20260503175906_FinalNormalizedSubscriptionArchitecture.Designer.cs",
    "line": 20,
    "canonicalName": "BuildTargetModel",
    "shortLabel": "BuildTargetModel()",
    "longLabel": "BuildTargetModel(modelBuilder: ModelBuilder) -> void",
    "signature": "(modelBuilder: ModelBuilder) -> void",
    "purpose": "Populates the EF Core ModelBuilder with entity types, columns, keys, indices, relationships, Postgres/vector extensions and seed data for this migration snapshot."
  },
  {
    "id": "type:hhlqtu:microsoft-aspnetcore-identity-identityrole",
    "kind": "type",
    "fileId": "file:1xzhi6b:20260503175906-finalnormalizedsubscriptionarchit",
    "path": "NexusReader.Data/Migrations/20260503175906_FinalNormalizedSubscriptionArchitecture.Designer.cs",
    "line": 30,
    "canonicalName": "Microsoft.AspNetCore.Identity.IdentityRole",
    "shortLabel": "Microsoft.AspNetCore.Identity.IdentityRole",
    "longLabel": "Microsoft.AspNetCore.Identity.IdentityRole (entity)",
    "purpose": "Identity role mapping configured in the EF model for AspNetRoles table"
  },
  {
    "id": "type:7ob3p3:nexusreader-domain-entities-ebook",
    "kind": "type",
    "fileId": "file:1xzhi6b:20260503175906-finalnormalizedsubscriptionarchit",
    "path": "NexusReader.Data/Migrations/20260503175906_FinalNormalizedSubscriptionArchitecture.Designer.cs",
    "line": 162,
    "canonicalName": "NexusReader.Domain.Entities.Ebook",
    "shortLabel": "NexusReader.Domain.Entities.Ebook",
    "longLabel": "NexusReader.Domain.Entities.Ebook (entity)",
    "purpose": "Domain entity configuration for ebooks table"
  },
  {
    "id": "type:13day2p:nexusreader-domain-entities-knowledgeunit",
    "kind": "type",
    "fileId": "file:1xzhi6b:20260503175906-finalnormalizedsubscriptionarchit",
    "path": "NexusReader.Data/Migrations/20260503175906_FinalNormalizedSubscriptionArchitecture.Designer.cs",
    "line": 209,
    "canonicalName": "NexusReader.Domain.Entities.KnowledgeUnit",
    "shortLabel": "NexusReader.Domain.Entities.KnowledgeUnit",
    "longLabel": "NexusReader.Domain.Entities.KnowledgeUnit (entity)",
    "purpose": "Vectorized knowledge unit used for semantic search and storage"
  },
  {
    "id": "type:9y8b30:nexusreader-domain-entities-knowledgeunitlink",
    "kind": "type",
    "fileId": "file:1xzhi6b:20260503175906-finalnormalizedsubscriptionarchit",
    "path": "NexusReader.Data/Migrations/20260503175906_FinalNormalizedSubscriptionArchitecture.Designer.cs",
    "line": 255,
    "canonicalName": "NexusReader.Domain.Entities.KnowledgeUnitLink",
    "shortLabel": "NexusReader.Domain.Entities.KnowledgeUnitLink",
    "longLabel": "NexusReader.Domain.Entities.KnowledgeUnitLink (entity)",
    "purpose": "Represents directional links between knowledge units"
  },
  {
    "id": "type:15ow7t1:nexusreader-domain-entities-nexususer",
    "kind": "type",
    "fileId": "file:1xzhi6b:20260503175906-finalnormalizedsubscriptionarchit",
    "path": "NexusReader.Data/Migrations/20260503175906_FinalNormalizedSubscriptionArchitecture.Designer.cs",
    "line": 287,
    "canonicalName": "NexusReader.Domain.Entities.NexusUser",
    "shortLabel": "NexusReader.Domain.Entities.NexusUser",
    "longLabel": "NexusReader.Domain.Entities.NexusUser (entity)",
    "purpose": "Application user mapped to AspNetUsers with subscription and tenant info"
  },
  {
    "id": "type:30kk08:nexusreader-domain-entities-semanticknowledgecac",
    "kind": "type",
    "fileId": "file:1xzhi6b:20260503175906-finalnormalizedsubscriptionarchit",
    "path": "NexusReader.Data/Migrations/20260503175906_FinalNormalizedSubscriptionArchitecture.Designer.cs",
    "line": 422,
    "canonicalName": "NexusReader.Domain.Entities.SemanticKnowledgeCache",
    "shortLabel": "NexusReader.Domain.Entities.SemanticKnowledgeCache",
    "longLabel": "NexusReader.Domain.Entities.SemanticKnowledgeCache (entity)",
    "purpose": "Cached semantic results with embedding vector and prompt/model metadata"
  },
  {
    "id": "type:14w07kf:nexusreader-domain-entities-subscriptionplan",
    "kind": "type",
    "fileId": "file:1xzhi6b:20260503175906-finalnormalizedsubscriptionarchit",
    "path": "NexusReader.Data/Migrations/20260503175906_FinalNormalizedSubscriptionArchitecture.Designer.cs",
    "line": 467,
    "canonicalName": "NexusReader.Domain.Entities.SubscriptionPlan",
    "shortLabel": "NexusReader.Domain.Entities.SubscriptionPlan",
    "longLabel": "NexusReader.Domain.Entities.SubscriptionPlan (entity)",
    "purpose": "Subscription plan catalog with token limits, price and Stripe product id; seeded by migration"
  },
  {
    "id": "type:6xl8d4:nexusreader-domain-entities-quizresult",
    "kind": "type",
    "fileId": "file:1xzhi6b:20260503175906-finalnormalizedsubscriptionarchit",
    "path": "NexusReader.Data/Migrations/20260503175906_FinalNormalizedSubscriptionArchitecture.Designer.cs",
    "line": 385,
    "canonicalName": "NexusReader.Domain.Entities.QuizResult",
    "shortLabel": "NexusReader.Domain.Entities.QuizResult",
    "longLabel": "NexusReader.Domain.Entities.QuizResult (entity)",
    "purpose": "User quiz result entries with score and topic"
  }
]