{
  "version": 1,
  "generatedAt": "2026-05-25T11:41:33.166Z",
  "fileId": "file:rfn6bc:ibillingservice-cs",
  "executableScope": true,
  "executableSymbolCount": 2,
  "fileNodeId": "file:rfn6bc:ibillingservice-cs",
  "symbolNodeIds": [
    "class:qlxnhj:ibillingservice",
    "method:1px2su2:handlesubscriptionupdatedasync",
    "method:16n7wyr:handlesubscriptiondeletedasync",
    "type:dvqqtf:ibillingservice"
  ],
  "containmentEdgeIds": [
    "edge:jmytvv:contains",
    "edge:1qd8jqp:contains",
    "edge:1jpzxvw:contains",
    "edge:fskvx0:defines-type"
  ],
  "relationshipEdgeIds": [
    "edge:jmytvv:contains",
    "edge:1qd8jqp:contains",
    "edge:1jpzxvw:contains",
    "edge:fskvx0:defines-type"
  ],
  "integrationEdgeIds": [],
  "controlFlowFragments": [
    {
      "fragmentId": "method:1px2su2:handlesubscriptionupdatedasync__fragment",
      "ownerFileId": "file:rfn6bc:ibillingservice-cs",
      "ownerSymbolId": "method:1px2su2:handlesubscriptionupdatedasync",
      "ownerSymbolName": "HandleSubscriptionUpdatedAsync",
      "entryNodeId": "method:1px2su2:handlesubscriptionupdatedasync__entry",
      "exitNodeIds": [
        "method:1px2su2:handlesubscriptionupdatedasync__implicit_return"
      ],
      "nodes": [
        {
          "id": "method:1px2su2:handlesubscriptionupdatedasync__entry",
          "kind": "entry",
          "label": "HandleSubscriptionUpdatedAsync entry",
          "line": 8,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "confidence": 0.99,
          "detail": "Contract for handling when a customer's subscription is created or updated (by Stripe or equivalent)."
        },
        {
          "id": "method:1px2su2:handlesubscriptionupdatedasync__action_8_abstract_definition_8__linear",
          "kind": "statement",
          "label": "declares handler contract",
          "line": 8,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "confidence": 0.7,
          "detail": "Interface method with no implementation; concrete services implement business behavior (e.g., persistence, notifications, mapping)."
        },
        {
          "id": "method:1px2su2:handlesubscriptionupdatedasync__implicit_return",
          "kind": "return",
          "label": "return",
          "line": 8,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "confidence": 0.72,
          "detail": "Implicit method exit inferred from method boundary."
        }
      ],
      "edges": [
        {
          "id": "method:1px2su2:handlesubscriptionupdatedasync__entry__method:1px2su2:handlesubscriptionupdatedasync__action_8_abstract_definition_8__linear",
          "from": "method:1px2su2:handlesubscriptionupdatedasync__entry",
          "to": "method:1px2su2:handlesubscriptionupdatedasync__action_8_abstract_definition_8__linear",
          "kind": "next",
          "line": 8,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1px2su2:handlesubscriptionupdatedasync__action_8_abstract_definition_8__linear__implicit_return",
          "from": "method:1px2su2:handlesubscriptionupdatedasync__action_8_abstract_definition_8__linear",
          "to": "method:1px2su2:handlesubscriptionupdatedasync__implicit_return",
          "kind": "return",
          "line": 8,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "confidence": 0.72
        }
      ],
      "jumpTargets": [],
      "exceptionTargets": [],
      "loopBackEdges": [],
      "mergeNodeIds": [],
      "language": "csharp",
      "confidence": 0.76,
      "lineSpan": {
        "start": 8,
        "end": 8
      },
      "unsupportedConstructs": [],
      "evidence": [
        {
          "path": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "line": 8,
          "summary": "Control-flow fragment extracted for method HandleSubscriptionUpdatedAsync.",
          "kind": "file-summary"
        }
      ]
    },
    {
      "fragmentId": "method:16n7wyr:handlesubscriptiondeletedasync__fragment",
      "ownerFileId": "file:rfn6bc:ibillingservice-cs",
      "ownerSymbolId": "method:16n7wyr:handlesubscriptiondeletedasync",
      "ownerSymbolName": "HandleSubscriptionDeletedAsync",
      "entryNodeId": "method:16n7wyr:handlesubscriptiondeletedasync__entry",
      "exitNodeIds": [
        "method:16n7wyr:handlesubscriptiondeletedasync__implicit_return"
      ],
      "nodes": [
        {
          "id": "method:16n7wyr:handlesubscriptiondeletedasync__entry",
          "kind": "entry",
          "label": "HandleSubscriptionDeletedAsync entry",
          "line": 9,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "confidence": 0.99,
          "detail": "Contract for handling when a customer's subscription is deleted (cleanup or downgrade actions)."
        },
        {
          "id": "method:16n7wyr:handlesubscriptiondeletedasync__action_9_abstract_definition_9__linear",
          "kind": "statement",
          "label": "declares handler contract",
          "line": 9,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "confidence": 0.7,
          "detail": "Interface method with no implementation; concrete services implement removal/fallback logic."
        },
        {
          "id": "method:16n7wyr:handlesubscriptiondeletedasync__implicit_return",
          "kind": "return",
          "label": "return",
          "line": 9,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "confidence": 0.72,
          "detail": "Implicit method exit inferred from method boundary."
        }
      ],
      "edges": [
        {
          "id": "method:16n7wyr:handlesubscriptiondeletedasync__entry__method:16n7wyr:handlesubscriptiondeletedasync__action_9_abstract_definition_9__linear",
          "from": "method:16n7wyr:handlesubscriptiondeletedasync__entry",
          "to": "method:16n7wyr:handlesubscriptiondeletedasync__action_9_abstract_definition_9__linear",
          "kind": "next",
          "line": 9,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:16n7wyr:handlesubscriptiondeletedasync__action_9_abstract_definition_9__linear__implicit_return",
          "from": "method:16n7wyr:handlesubscriptiondeletedasync__action_9_abstract_definition_9__linear",
          "to": "method:16n7wyr:handlesubscriptiondeletedasync__implicit_return",
          "kind": "return",
          "line": 9,
          "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "confidence": 0.72
        }
      ],
      "jumpTargets": [],
      "exceptionTargets": [],
      "loopBackEdges": [],
      "mergeNodeIds": [],
      "language": "csharp",
      "confidence": 0.76,
      "lineSpan": {
        "start": 9,
        "end": 9
      },
      "unsupportedConstructs": [],
      "evidence": [
        {
          "path": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
          "line": 9,
          "summary": "Control-flow fragment extracted for method HandleSubscriptionDeletedAsync.",
          "kind": "file-summary"
        }
      ]
    }
  ],
  "unresolvedJumps": [],
  "diagrams": [
    {
      "id": "file_rfn6bc_ibillingservice_cs_neighborhood_view",
      "purpose": "neighborhood-view",
      "title": "IBillingService Neighborhood",
      "required": true,
      "diagram": {
        "id": "file_rfn6bc_ibillingservice_cs_neighborhood_view",
        "kind": "dependency-map",
        "title": "IBillingService Neighborhood",
        "direction": "LR",
        "nodes": [
          {
            "id": "file_rfn6bc_ibillingservice_cs",
            "kind": "service",
            "label": "IBillingService",
            "shape": "rounded",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs"
          },
          {
            "id": "class_qlxnhj_ibillingservice",
            "kind": "service",
            "label": "IBillingService",
            "shape": "rounded",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs"
          },
          {
            "id": "method_1px2su2_handlesubscriptionupdatedasync",
            "kind": "method",
            "label": "HandleSubscriptionUpdatedAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
            "sourceLine": 8
          },
          {
            "id": "method_16n7wyr_handlesubscriptiondeletedasync",
            "kind": "method",
            "label": "HandleSubscriptionDeletedAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
            "sourceLine": 9
          },
          {
            "id": "type_dvqqtf_ibillingservice",
            "kind": "document",
            "label": "IBillingService",
            "shape": "doc",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
            "sourceLine": 6
          }
        ],
        "edges": [],
        "metadata": {
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Services/IBillingService.cs"
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart LR\n    class_qlxnhj_ibillingservice(\"IBillingService\")\n    file_rfn6bc_ibillingservice_cs(\"IBillingService\")\n    method_16n7wyr_handlesubscriptiondeletedasync[[\"HandleSubscriptionDeletedAsync()\"]]\n    method_1px2su2_handlesubscriptionupdatedasync[[\"HandleSubscriptionUpdatedAsync()\"]]\n    type_dvqqtf_ibillingservice[/\"IBillingService\"/]",
      "warnings": []
    },
    {
      "id": "file_rfn6bc_ibillingservice_cs_execution_view",
      "purpose": "execution-overview",
      "title": "IBillingService Execution Overview",
      "required": true,
      "diagram": {
        "id": "file_rfn6bc_ibillingservice_cs_execution_view",
        "kind": "method-flow",
        "title": "IBillingService Execution Overview",
        "direction": "TD",
        "nodes": [
          {
            "id": "class_qlxnhj_ibillingservice",
            "kind": "service",
            "label": "IBillingService",
            "shape": "rounded",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs"
          },
          {
            "id": "method_1px2su2_handlesubscriptionupdatedasync",
            "kind": "method",
            "label": "HandleSubscriptionUpdatedAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
            "sourceLine": 8
          },
          {
            "id": "method_16n7wyr_handlesubscriptiondeletedasync",
            "kind": "method",
            "label": "HandleSubscriptionDeletedAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
            "sourceLine": 9
          }
        ],
        "edges": [
          {
            "id": "class_qlxnhj_ibillingservice_contains_method_1px2su2_handlesubscriptionupdatedasync",
            "from": "class_qlxnhj_ibillingservice",
            "to": "method_1px2su2_handlesubscriptionupdatedasync",
            "semanticLabel": "contains executable method",
            "visibleLabel": "contains",
            "relation": "calls",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
            "sourceLine": 8
          },
          {
            "id": "class_qlxnhj_ibillingservice_contains_method_16n7wyr_handlesubscriptiondeletedasync",
            "from": "class_qlxnhj_ibillingservice",
            "to": "method_16n7wyr_handlesubscriptiondeletedasync",
            "semanticLabel": "contains executable method",
            "visibleLabel": "contains",
            "relation": "calls",
            "sourcePath": "NexusReader.Application/Abstractions/Services/IBillingService.cs",
            "sourceLine": 9
          }
        ],
        "metadata": {
          "evidencePaths": [
            "NexusReader.Application/Abstractions/Services/IBillingService.cs"
          ],
          "warnings": [
            "Execution overview includes unresolved targets. Use validation artifacts before treating the flow as complete."
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart TD\n    class_qlxnhj_ibillingservice(\"IBillingService\")\n    method_16n7wyr_handlesubscriptiondeletedasync[[\"HandleSubscriptionDeletedAsync()\"]]\n    method_1px2su2_handlesubscriptionupdatedasync[[\"HandleSubscriptionUpdatedAsync()\"]]\n    class_qlxnhj_ibillingservice -->|contains| method_16n7wyr_handlesubscriptiondeletedasync\n    class_qlxnhj_ibillingservice -->|contains| method_1px2su2_handlesubscriptionupdatedasync",
      "warnings": []
    }
  ],
  "renderHints": {
    "preferredSurface": "three-d",
    "defaultDiagramId": "file_rfn6bc_ibillingservice_cs_execution_view",
    "controlFlowDiagramIds": [],
    "defaultControlFlowDiagramIdsBySymbolId": {}
  }
}