[
  {
    "fragmentId": "method:1sa6em1:up__fragment",
    "ownerFileId": "file:q6hq0x:20260429080302-addquizresults-cs",
    "ownerSymbolId": "method:1sa6em1:up",
    "ownerSymbolName": "Up",
    "entryNodeId": "method:1sa6em1:up__entry",
    "exitNodeIds": [
      "method:1sa6em1:up__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:1sa6em1:up__entry",
        "kind": "entry",
        "label": "Up entry",
        "line": 12,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.99,
        "detail": "Creates the QuizResults table with columns, primary key, foreign key to AspNetUsers (cascade) and an index on UserId."
      },
      {
        "id": "method:1sa6em1:up__action_14_create_table_14__linear",
        "kind": "statement",
        "label": "Creates QuizResults table",
        "line": 14,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7,
        "detail": "migrationBuilder.CreateTable(name: \"QuizResults\", columns: ..., constraints: ...)"
      },
      {
        "id": "method:1sa6em1:up__action_16_define_columns_16__linear",
        "kind": "statement",
        "label": "Defines columns for QuizResults",
        "line": 16,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7,
        "detail": "Id (Guid, not null), UserId (string, not null), Topic (string, not null), Score (int, not null), TotalQuestions (int, not null), CompletedDate (DateTime, not null)"
      },
      {
        "id": "method:1sa6em1:up__action_27_primary_key_27__linear",
        "kind": "statement",
        "label": "Sets PK on Id",
        "line": 27,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7,
        "detail": "table.PrimaryKey(\"PK_QuizResults\", x => x.Id)"
      },
      {
        "id": "method:1sa6em1:up__action_28_foreign_key_28__linear",
        "kind": "statement",
        "label": "Adds FK to AspNetUsers.UserId with cascade delete",
        "line": 28,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7,
        "detail": "FK_QuizResults_AspNetUsers_UserId -> principalTable: \"AspNetUsers\", principalColumn: \"Id\", onDelete: ReferentialAction.Cascade"
      },
      {
        "id": "method:1sa6em1:up__action_36_create_index_36__linear",
        "kind": "statement",
        "label": "Creates index on UserId",
        "line": 36,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7,
        "detail": "migrationBuilder.CreateIndex(name: \"IX_QuizResults_UserId\", table: \"QuizResults\", column: \"UserId\")"
      },
      {
        "id": "method:1sa6em1:up__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 40,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:1sa6em1:up__entry__method:1sa6em1:up__action_14_create_table_14__linear",
        "from": "method:1sa6em1:up__entry",
        "to": "method:1sa6em1:up__action_14_create_table_14__linear",
        "kind": "next",
        "line": 14,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sa6em1:up__action_14_create_table_14__linear__method:1sa6em1:up__action_16_define_columns_16__linear",
        "from": "method:1sa6em1:up__action_14_create_table_14__linear",
        "to": "method:1sa6em1:up__action_16_define_columns_16__linear",
        "kind": "next",
        "line": 16,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sa6em1:up__action_16_define_columns_16__linear__method:1sa6em1:up__action_27_primary_key_27__linear",
        "from": "method:1sa6em1:up__action_16_define_columns_16__linear",
        "to": "method:1sa6em1:up__action_27_primary_key_27__linear",
        "kind": "next",
        "line": 27,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sa6em1:up__action_27_primary_key_27__linear__method:1sa6em1:up__action_28_foreign_key_28__linear",
        "from": "method:1sa6em1:up__action_27_primary_key_27__linear",
        "to": "method:1sa6em1:up__action_28_foreign_key_28__linear",
        "kind": "next",
        "line": 28,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sa6em1:up__action_28_foreign_key_28__linear__method:1sa6em1:up__action_36_create_index_36__linear",
        "from": "method:1sa6em1:up__action_28_foreign_key_28__linear",
        "to": "method:1sa6em1:up__action_36_create_index_36__linear",
        "kind": "next",
        "line": 36,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sa6em1:up__action_36_create_index_36__linear__implicit_return",
        "from": "method:1sa6em1:up__action_36_create_index_36__linear",
        "to": "method:1sa6em1:up__implicit_return",
        "kind": "return",
        "line": 40,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.8799999999999999,
    "lineSpan": {
      "start": 12,
      "end": 40
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "line": 12,
        "summary": "Control-flow fragment extracted for method Up.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:1sgd810:down__fragment",
    "ownerFileId": "file:q6hq0x:20260429080302-addquizresults-cs",
    "ownerSymbolId": "method:1sgd810:down",
    "ownerSymbolName": "Down",
    "entryNodeId": "method:1sgd810:down__entry",
    "exitNodeIds": [
      "method:1sgd810:down__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:1sgd810:down__entry",
        "kind": "entry",
        "label": "Down entry",
        "line": 43,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.99,
        "detail": "Drops the QuizResults table to rollback the migration."
      },
      {
        "id": "method:1sgd810:down__action_45_drop_table_45__linear",
        "kind": "statement",
        "label": "Drops QuizResults table",
        "line": 45,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7,
        "detail": "migrationBuilder.DropTable(name: \"QuizResults\")"
      },
      {
        "id": "method:1sgd810:down__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 47,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:1sgd810:down__entry__method:1sgd810:down__action_45_drop_table_45__linear",
        "from": "method:1sgd810:down__entry",
        "to": "method:1sgd810:down__action_45_drop_table_45__linear",
        "kind": "next",
        "line": 45,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.7
      },
      {
        "id": "method:1sgd810:down__action_45_drop_table_45__linear__implicit_return",
        "from": "method:1sgd810:down__action_45_drop_table_45__linear",
        "to": "method:1sgd810:down__implicit_return",
        "kind": "return",
        "line": 47,
        "sourcePath": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "csharp",
    "confidence": 0.76,
    "lineSpan": {
      "start": 43,
      "end": 47
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.Data/Migrations/20260429080302_AddQuizResults.cs",
        "line": 43,
        "summary": "Control-flow fragment extracted for method Down.",
        "kind": "file-summary"
      }
    ]
  }
]