{
  "version": 1,
  "generatedAt": "2026-05-25T11:41:33.166Z",
  "fileId": "file:13phiik:billingservice-cs",
  "executableScope": true,
  "executableSymbolCount": 2,
  "fileNodeId": "file:13phiik:billingservice-cs",
  "symbolNodeIds": [
    "class:11gdjq4:billingservice",
    "method:1ctlycb:handlesubscriptionupdatedasync",
    "method:174nry:handlesubscriptiondeletedasync"
  ],
  "containmentEdgeIds": [
    "edge:l0c9y:contains",
    "edge:1jjvxr3:contains",
    "edge:p9dycw:contains"
  ],
  "relationshipEdgeIds": [
    "edge:l0c9y:contains",
    "edge:1jjvxr3:contains",
    "edge:p9dycw:contains"
  ],
  "integrationEdgeIds": [],
  "controlFlowFragments": [
    {
      "fragmentId": "method:1ctlycb:handlesubscriptionupdatedasync__fragment",
      "ownerFileId": "file:13phiik:billingservice-cs",
      "ownerSymbolId": "method:1ctlycb:handlesubscriptionupdatedasync",
      "ownerSymbolName": "HandleSubscriptionUpdatedAsync",
      "entryNodeId": "method:1ctlycb:handlesubscriptionupdatedasync__entry",
      "exitNodeIds": [
        "method:1ctlycb:handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_77_return_77__return",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_82_handlesubscriptionupdatedasync_return_82_25__return"
      ],
      "nodes": [
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__entry",
          "kind": "entry",
          "label": "HandleSubscriptionUpdatedAsync entry",
          "line": 32,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.99,
          "detail": "Handle a Stripe subscription update: map Stripe product id to a local SubscriptionPlan, update the user's plan and AI token limit, and persist via UserManager."
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_34_try_catch_34__linear",
          "kind": "statement",
          "label": "Surrounds whole operation with try/catch",
          "line": 34,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "Catches Exception, logs error and returns Result.Fail with caused exception."
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try",
          "kind": "try",
          "label": "Begins protected execution",
          "line": 34,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84,
          "detail": "try"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 36,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81,
          "detail": "var user = await _userManager.FindByEmailAsync(customerEmail);"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear",
          "kind": "db-read",
          "label": "Reads repository or persistence state",
          "line": 36,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86,
          "detail": "var user = await _userManager.FindByEmailAsync(customerEmail);"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_external_read_36__linear",
          "kind": "statement",
          "label": "Load user by email",
          "line": 36,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "await _userManager.FindByEmailAsync(customerEmail) - returns NexusUser or null."
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__condition",
          "kind": "condition",
          "label": "user == null",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "Logs warning and returns Result.Fail when user missing."
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__true",
          "kind": "branch-true",
          "label": "log-warning",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__false",
          "kind": "branch-false",
          "label": "return-fail",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
          "kind": "statement",
          "label": "merge",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition",
          "kind": "condition",
          "label": "user == null",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78,
          "detail": "if (user == null)"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true",
          "kind": "branch-true",
          "label": "true",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false",
          "kind": "branch-false",
          "label": "false",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
          "kind": "statement",
          "label": "merge",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear",
          "kind": "statement",
          "label": "Logs runtime state",
          "line": 39,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92,
          "detail": "_logger.LogWarning(\"Attempted to update subscription for non-existent user: {Email}\", customerEmail);"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_39_log_39__linear",
          "kind": "statement",
          "label": "Informational and warning logs",
          "line": 39,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "Logs warning when user missing, warning on unknown product ID, error on update failure, and error on unexpected exceptions (various lines)."
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return",
          "kind": "return",
          "label": "Returns result",
          "line": 40,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "return Result.Fail($\"User {customerEmail} not found.\");"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_43_FreeName_static_property_",
          "kind": "call",
          "label": "FreeName (static property)",
          "line": 43,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.88,
          "detail": "read default Free plan name"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__condition",
          "kind": "condition",
          "label": "Map stripeProductId to target plan and token limit",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "If matches ProProductId => Pro (50k tokens); else if BasicProductId => Basic (10k); else if non-empty and not FreeProductId => log unrecognized and fallback to Free."
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__true",
          "kind": "branch-true",
          "label": "true",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__false",
          "kind": "branch-false",
          "label": "false",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__merge",
          "kind": "statement",
          "label": "merge",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition",
          "kind": "condition",
          "label": "stripeProductId == _stripeSettings.ProProductId",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78,
          "detail": "if (stripeProductId == _stripeSettings.ProProductId)"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true",
          "kind": "branch-true",
          "label": "true",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false",
          "kind": "branch-false",
          "label": "false",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
          "kind": "statement",
          "label": "merge",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_",
          "kind": "call",
          "label": "ProProductId/BasicProductId/FreeProductId (property access)",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.88,
          "detail": "compare incoming stripeProductId to configured product ids"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition",
          "kind": "condition",
          "label": "Falls back to alternate path",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84,
          "detail": "else if (stripeProductId == _stripeSettings.BasicProductId)"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true",
          "kind": "branch-true",
          "label": "fallback",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false",
          "kind": "branch-false",
          "label": "otherwise",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
          "kind": "statement",
          "label": "merge",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition",
          "kind": "condition",
          "label": "stripeProductId == _stripeSettings.BasicProductId",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78,
          "detail": "else if (stripeProductId == _stripeSettings.BasicProductId)"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true",
          "kind": "branch-true",
          "label": "true",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false",
          "kind": "branch-false",
          "label": "false",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
          "kind": "statement",
          "label": "merge",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition",
          "kind": "condition",
          "label": "Falls back to alternate path",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84,
          "detail": "else if (!string.IsNullOrEmpty(stripeProductId) && stripeProductId != _stripeSettings.FreeProductId)"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true",
          "kind": "branch-true",
          "label": "fallback",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false",
          "kind": "branch-false",
          "label": "otherwise",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
          "kind": "statement",
          "label": "merge",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition",
          "kind": "condition",
          "label": "!string.IsNullOrEmpty(stripeProductId) && stripeProductId != _stripeSettings.FreeProductId",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78,
          "detail": "else if (!string.IsNullOrEmpty(stripeProductId) && stripeProductId != _stripeSettings.FreeProductId)"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true",
          "kind": "branch-true",
          "label": "true",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false",
          "kind": "branch-false",
          "label": "false",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
          "kind": "statement",
          "label": "merge",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear",
          "kind": "statement",
          "label": "Logs runtime state",
          "line": 58,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92,
          "detail": "_logger.LogWarning(\"Unrecognized Stripe Product ID: {ProductId} for user {Email}. Falling back to Free tier.\", stripeProductId, customerEmail);"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 61,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81,
          "detail": "using var dbContext = await _dbContextFactory.CreateDbContextAsync();"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_61_db_read_61__linear",
          "kind": "statement",
          "label": "Read SubscriptionPlan entity",
          "line": 61,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "Creates DbContext and queries SubscriptionPlans for targetPlanName."
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 62,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81,
          "detail": "var plan = await dbContext.SubscriptionPlans.FirstOrDefaultAsync(p => p.PlanName == targetPlanName);"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync",
          "kind": "call",
          "label": "SubscriptionPlans.FirstOrDefaultAsync",
          "line": 62,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.88,
          "detail": "predicate p => p.PlanName == targetPlanName"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition",
          "kind": "condition",
          "label": "plan != null",
          "line": 63,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78,
          "detail": "if (plan != null)"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true",
          "kind": "branch-true",
          "label": "true",
          "line": 63,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false",
          "kind": "branch-false",
          "label": "false",
          "line": 63,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
          "kind": "statement",
          "label": "merge",
          "line": 63,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_65_persistence_write_65__linear",
          "kind": "statement",
          "label": "Apply plan and token limit to user object",
          "line": 65,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "user.SubscriptionPlanId = plan.Id; user.AITokenLimit = tokenLimit;"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 69,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81,
          "detail": "var result = await _userManager.UpdateAsync(user);"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_69_external_write_69__linear",
          "kind": "statement",
          "label": "Persist user changes",
          "line": 69,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "await _userManager.UpdateAsync(user) and check IdentityResult.Succeeded."
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__condition",
          "kind": "condition",
          "label": "Handle update failure",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "If update failed, logs error with result.Errors and returns Result.Fail with first error description."
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__true",
          "kind": "branch-true",
          "label": "true",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__false",
          "kind": "branch-false",
          "label": "false",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__merge",
          "kind": "statement",
          "label": "merge",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition",
          "kind": "condition",
          "label": "!result.Succeeded",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78,
          "detail": "if (!result.Succeeded)"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true",
          "kind": "branch-true",
          "label": "true",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false",
          "kind": "branch-false",
          "label": "false",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
          "kind": "statement",
          "label": "merge",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear",
          "kind": "statement",
          "label": "Logs runtime state",
          "line": 72,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92,
          "detail": "_logger.LogError(\"Failed to update user {Email} after subscription change: {Errors}\","
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear",
          "kind": "statement",
          "label": "Maps data or transforms shape",
          "line": 73,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.74,
          "detail": "customerEmail, string.Join(\", \", result.Errors.Select(e => e.Description)));"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return",
          "kind": "return",
          "label": "Returns result",
          "line": 74,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "return Result.Fail(result.Errors.Select(e => e.Description).FirstOrDefault() ?? \"Failed to update user profile.\");"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear",
          "kind": "db-read",
          "label": "Reads repository or persistence state",
          "line": 74,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86,
          "detail": "return Result.Fail(result.Errors.Select(e => e.Description).FirstOrDefault() ?? \"Failed to update user profile.\");"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear",
          "kind": "statement",
          "label": "Maps data or transforms shape",
          "line": 74,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.74,
          "detail": "return Result.Fail(result.Errors.Select(e => e.Description).FirstOrDefault() ?? \"Failed to update user profile.\");"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return",
          "kind": "return",
          "label": "Returns result",
          "line": 77,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "return Result.Ok();"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_77_return_77__return",
          "kind": "return",
          "label": "Return success",
          "line": 77,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "Returns Result.Ok() on success."
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch",
          "kind": "catch",
          "label": "catch Exception ex",
          "line": 79,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86,
          "detail": "catch (Exception ex)"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear",
          "kind": "statement",
          "label": "Logs runtime state",
          "line": 81,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92,
          "detail": "_logger.LogError(ex, \"Unexpected error during subscription update for {Email}\", customerEmail);"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_82_handlesubscriptionupdatedasync_return_82_25__return",
          "kind": "return",
          "label": "Returns result",
          "line": 82,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "return Result.Fail(new Error(\"Unexpected error during subscription update.\").CausedBy(ex));"
        }
      ],
      "edges": [
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__entry__method:1ctlycb:handlesubscriptionupdatedasync__action_34_try_catch_34__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__entry",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_34_try_catch_34__linear",
          "kind": "next",
          "line": 34,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_34_try_catch_34__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_34_try_catch_34__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try",
          "kind": "next",
          "line": 34,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try__method:1ctlycb:handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await",
          "kind": "next",
          "line": 36,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await__method:1ctlycb:handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear",
          "kind": "next",
          "line": 36,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_36_external_read_36__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_external_read_36__linear",
          "kind": "next",
          "line": 36,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_external_read_36__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_36_external_read_36__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__condition",
          "kind": "next",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__true",
          "kind": "condition-true",
          "label": "log-warning",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__false",
          "kind": "condition-false",
          "label": "return-fail",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__true__method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
          "kind": "next",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__false__method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
          "kind": "next",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__merge__method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition",
          "kind": "next",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true",
          "kind": "condition-true",
          "label": "true",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false",
          "kind": "condition-false",
          "label": "false",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true__method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
          "kind": "next",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false__method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
          "kind": "next",
          "line": 37,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge__method:1ctlycb:handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear",
          "kind": "next",
          "line": 39,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_39_log_39__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_39_log_39__linear",
          "kind": "next",
          "line": 39,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_39_log_39__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_39_log_39__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return",
          "kind": "return",
          "line": 40,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return__call_method:1ctlycb:handlesubscriptionupdatedasync__call_43_FreeName_static_property_",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__call_43_FreeName_static_property_",
          "kind": "call",
          "label": "read default Free plan name",
          "line": 43,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.88
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_43_FreeName_static_property___method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__call_43_FreeName_static_property_",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__condition",
          "kind": "next",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__true",
          "kind": "condition-true",
          "label": "true",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__false",
          "kind": "condition-false",
          "label": "false",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__true__method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__merge",
          "kind": "next",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__false__method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__merge",
          "kind": "next",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__merge__method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition",
          "kind": "next",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true",
          "kind": "condition-true",
          "label": "true",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false",
          "kind": "condition-false",
          "label": "false",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true__method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
          "kind": "next",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false__method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
          "kind": "next",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge__call_method:1ctlycb:handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_",
          "kind": "call",
          "label": "compare incoming stripeProductId to configured product ids",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.88
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access___method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition",
          "kind": "fallback",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true",
          "kind": "condition-true",
          "label": "fallback",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false",
          "kind": "condition-false",
          "label": "otherwise",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true__method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
          "kind": "next",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false__method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
          "kind": "next",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge__method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition",
          "kind": "next",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true",
          "kind": "condition-true",
          "label": "true",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false",
          "kind": "condition-false",
          "label": "false",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true__method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
          "kind": "next",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false__method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
          "kind": "next",
          "line": 51,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge__method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition",
          "kind": "fallback",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true",
          "kind": "condition-true",
          "label": "fallback",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false",
          "kind": "condition-false",
          "label": "otherwise",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true__method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
          "kind": "next",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false__method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
          "kind": "next",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge__method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition",
          "kind": "next",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true",
          "kind": "condition-true",
          "label": "true",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false",
          "kind": "condition-false",
          "label": "false",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true__method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
          "kind": "next",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false__method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
          "kind": "next",
          "line": 56,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge__method:1ctlycb:handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear",
          "kind": "next",
          "line": 58,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await",
          "kind": "next",
          "line": 61,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await__method:1ctlycb:handlesubscriptionupdatedasync__action_61_db_read_61__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_61_db_read_61__linear",
          "kind": "next",
          "line": 61,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_61_db_read_61__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_61_db_read_61__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await",
          "kind": "next",
          "line": 62,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await__call_method:1ctlycb:handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync",
          "kind": "call",
          "label": "predicate p => p.PlanName == targetPlanName",
          "line": 62,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.88
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync__method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition",
          "kind": "next",
          "line": 63,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true",
          "kind": "condition-true",
          "label": "true",
          "line": 63,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false",
          "kind": "condition-false",
          "label": "false",
          "line": 63,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true__method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
          "kind": "next",
          "line": 63,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false__method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
          "kind": "next",
          "line": 63,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge__method:1ctlycb:handlesubscriptionupdatedasync__action_65_persistence_write_65__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_65_persistence_write_65__linear",
          "kind": "next",
          "line": 65,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_65_persistence_write_65__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_65_persistence_write_65__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await",
          "kind": "next",
          "line": 69,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await__method:1ctlycb:handlesubscriptionupdatedasync__action_69_external_write_69__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_69_external_write_69__linear",
          "kind": "next",
          "line": 69,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_69_external_write_69__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_69_external_write_69__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__condition",
          "kind": "next",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__true",
          "kind": "condition-true",
          "label": "true",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__false",
          "kind": "condition-false",
          "label": "false",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__true__method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__merge",
          "kind": "next",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__false__method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__merge",
          "kind": "next",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__merge__method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition",
          "kind": "next",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true",
          "kind": "condition-true",
          "label": "true",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition__method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false",
          "kind": "condition-false",
          "label": "false",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true__method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
          "kind": "next",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false__method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
          "kind": "next",
          "line": 70,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge__method:1ctlycb:handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear",
          "kind": "next",
          "line": 72,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear",
          "kind": "next",
          "line": 73,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.74
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return",
          "kind": "return",
          "line": 74,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return__method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear",
          "kind": "next",
          "line": 74,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear",
          "kind": "next",
          "line": 74,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.74
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return",
          "kind": "return",
          "line": 77,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return__method:1ctlycb:handlesubscriptionupdatedasync__action_77_return_77__return",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_77_return_77__return",
          "kind": "return",
          "line": 77,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_77_return_77__return__method:1ctlycb:handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_77_return_77__return",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch",
          "kind": "exception",
          "line": 79,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch__method:1ctlycb:handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear",
          "kind": "next",
          "line": 81,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear__method:1ctlycb:handlesubscriptionupdatedasync__action_82_handlesubscriptionupdatedasync_return_82_25__return",
          "from": "method:1ctlycb:handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear",
          "to": "method:1ctlycb:handlesubscriptionupdatedasync__action_82_handlesubscriptionupdatedasync_return_82_25__return",
          "kind": "return",
          "line": 82,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        }
      ],
      "jumpTargets": [
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_43_FreeName_static_property___jump_NexusReader_Domain_Entities_SubscriptionPlan_FreeName_static_property_",
          "fromNodeId": "method:1ctlycb:handlesubscriptionupdatedasync__call_43_FreeName_static_property_",
          "kind": "call-target",
          "targetPath": "NexusReader.Domain.Entities/SubscriptionPlan",
          "targetHint": "FreeName (static property)",
          "line": 43,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "reason": "Call target FreeName (static property) in NexusReader.Domain.Entities/SubscriptionPlan could not be matched to an extracted method symbol.",
          "status": "unresolved"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access___jump_NexusReader_Infrastructure_Configuration_StripeSettings_ProProductId_BasicProductId_FreeProductId_property_access_",
          "fromNodeId": "method:1ctlycb:handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_",
          "kind": "call-target",
          "targetPath": "NexusReader.Infrastructure/Configuration/StripeSettings",
          "targetHint": "ProProductId/BasicProductId/FreeProductId (property access)",
          "line": 46,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "reason": "Call target ProProductId/BasicProductId/FreeProductId (property access) in NexusReader.Infrastructure/Configuration/StripeSettings could not be matched to an extracted method symbol.",
          "status": "unresolved"
        },
        {
          "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync__jump_NexusReader_Data_Persistence_AppDbContext_SubscriptionPlans_FirstOrDefaultAsync",
          "fromNodeId": "method:1ctlycb:handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync",
          "kind": "call-target",
          "targetPath": "NexusReader.Data.Persistence/AppDbContext",
          "targetHint": "SubscriptionPlans.FirstOrDefaultAsync",
          "line": 62,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "reason": "Call target SubscriptionPlans.FirstOrDefaultAsync in NexusReader.Data.Persistence/AppDbContext could not be matched to an extracted method symbol.",
          "status": "unresolved"
        }
      ],
      "exceptionTargets": [],
      "loopBackEdges": [],
      "mergeNodeIds": [
        "method:1ctlycb:handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_46_branch_46__merge",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_70_branch_70__merge",
        "method:1ctlycb:handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge"
      ],
      "language": "csharp",
      "confidence": 0.98,
      "lineSpan": {
        "start": 32,
        "end": 84
      },
      "unsupportedConstructs": [],
      "evidence": [
        {
          "path": "NexusReader.Infrastructure/Services/BillingService.cs",
          "line": 32,
          "summary": "Control-flow fragment extracted for method HandleSubscriptionUpdatedAsync.",
          "kind": "file-summary"
        }
      ]
    },
    {
      "fragmentId": "method:174nry:handlesubscriptiondeletedasync__fragment",
      "ownerFileId": "file:13phiik:billingservice-cs",
      "ownerSymbolId": "method:174nry:handlesubscriptiondeletedasync",
      "ownerSymbolName": "HandleSubscriptionDeletedAsync",
      "entryNodeId": "method:174nry:handlesubscriptiondeletedasync__entry",
      "exitNodeIds": [
        "method:174nry:handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return",
        "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return",
        "method:174nry:handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return",
        "method:174nry:handlesubscriptiondeletedasync__action_113_return_113__return",
        "method:174nry:handlesubscriptiondeletedasync__action_118_handlesubscriptiondeletedasync_return_118_19__return"
      ],
      "nodes": [
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__entry",
          "kind": "entry",
          "label": "HandleSubscriptionDeletedAsync entry",
          "line": 86,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.99,
          "detail": "Handle a Stripe subscription deletion: reset the user's subscription to the Free plan and restore its AI token limit, persisting via UserManager."
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_88_try_catch_88__linear",
          "kind": "statement",
          "label": "Surrounds operation with try/catch",
          "line": 88,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "Catches Exception, logs error and returns Result.Fail with caused exception."
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try",
          "kind": "try",
          "label": "Begins protected execution",
          "line": 88,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84,
          "detail": "try"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 90,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81,
          "detail": "var user = await _userManager.FindByEmailAsync(customerEmail);"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear",
          "kind": "db-read",
          "label": "Reads repository or persistence state",
          "line": 90,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86,
          "detail": "var user = await _userManager.FindByEmailAsync(customerEmail);"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_90_external_read_90__linear",
          "kind": "statement",
          "label": "Load user by email",
          "line": 90,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "await _userManager.FindByEmailAsync(customerEmail) and validate existence."
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__condition",
          "kind": "condition",
          "label": "user == null",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "Logs and returns Result.Fail when user missing."
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__true",
          "kind": "branch-true",
          "label": "log-warning",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__false",
          "kind": "branch-false",
          "label": "return-fail",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
          "kind": "statement",
          "label": "merge",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition",
          "kind": "condition",
          "label": "user == null",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78,
          "detail": "if (user == null)"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true",
          "kind": "branch-true",
          "label": "true",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false",
          "kind": "branch-false",
          "label": "false",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
          "kind": "statement",
          "label": "merge",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_93_log_93__linear",
          "kind": "statement",
          "label": "Warning and error logs",
          "line": 93,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "Logs warning when user missing, error on update failure, and error on unexpected exceptions (various lines)."
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear",
          "kind": "statement",
          "label": "Logs runtime state",
          "line": 93,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92,
          "detail": "_logger.LogWarning(\"Attempted to delete subscription for non-existent user: {Email}\", customerEmail);"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return",
          "kind": "return",
          "label": "Returns result",
          "line": 94,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "return Result.Fail($\"User {customerEmail} not found.\");"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 97,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81,
          "detail": "using var dbContext = await _dbContextFactory.CreateDbContextAsync();"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_97_db_read_97__linear",
          "kind": "statement",
          "label": "Fetch Free SubscriptionPlan",
          "line": 97,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "Creates DbContext and queries SubscriptionPlans for FreeName."
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 98,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81,
          "detail": "var freePlan = await dbContext.SubscriptionPlans.FirstOrDefaultAsync(p => p.PlanName == SubscriptionPlan.FreeName);"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__call_98_FreeName_static_property_",
          "kind": "call",
          "label": "FreeName (static property)",
          "line": 98,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.88,
          "detail": "read Free plan name to find DB record"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync",
          "kind": "call",
          "label": "SubscriptionPlans.FirstOrDefaultAsync",
          "line": 98,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.88,
          "detail": "predicate p => p.PlanName == SubscriptionPlan.FreeName"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition",
          "kind": "condition",
          "label": "freePlan != null",
          "line": 99,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78,
          "detail": "if (freePlan != null)"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true",
          "kind": "branch-true",
          "label": "true",
          "line": 99,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false",
          "kind": "branch-false",
          "label": "false",
          "line": 99,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
          "kind": "statement",
          "label": "merge",
          "line": 99,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_101_persistence_write_101__linear",
          "kind": "statement",
          "label": "Reset user's SubscriptionPlanId and AITokenLimit",
          "line": 101,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "user.SubscriptionPlanId = freePlan.Id; user.AITokenLimit = freePlan.AITokenLimit;"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 105,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81,
          "detail": "var result = await _userManager.UpdateAsync(user);"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_105_external_write_105__linear",
          "kind": "statement",
          "label": "Persist user changes",
          "line": 105,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "await _userManager.UpdateAsync(user) and check IdentityResult.Succeeded."
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__condition",
          "kind": "condition",
          "label": "Handle update failure",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "If update failed, logs error with result.Errors and returns Result.Fail with first error description."
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__true",
          "kind": "branch-true",
          "label": "true",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__false",
          "kind": "branch-false",
          "label": "false",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__merge",
          "kind": "statement",
          "label": "merge",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition",
          "kind": "condition",
          "label": "!result.Succeeded",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78,
          "detail": "if (!result.Succeeded)"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true",
          "kind": "branch-true",
          "label": "true",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false",
          "kind": "branch-false",
          "label": "false",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
          "kind": "statement",
          "label": "merge",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear",
          "kind": "statement",
          "label": "Logs runtime state",
          "line": 108,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92,
          "detail": "_logger.LogError(\"Failed to reset user {Email} to Free tier after subscription deletion: {Errors}\","
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear",
          "kind": "statement",
          "label": "Maps data or transforms shape",
          "line": 109,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.74,
          "detail": "customerEmail, string.Join(\", \", result.Errors.Select(e => e.Description)));"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return",
          "kind": "return",
          "label": "Returns result",
          "line": 110,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "return Result.Fail(result.Errors.Select(e => e.Description).FirstOrDefault() ?? \"Failed to reset user to free tier.\");"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear",
          "kind": "db-read",
          "label": "Reads repository or persistence state",
          "line": 110,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86,
          "detail": "return Result.Fail(result.Errors.Select(e => e.Description).FirstOrDefault() ?? \"Failed to reset user to free tier.\");"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear",
          "kind": "statement",
          "label": "Maps data or transforms shape",
          "line": 110,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.74,
          "detail": "return Result.Fail(result.Errors.Select(e => e.Description).FirstOrDefault() ?? \"Failed to reset user to free tier.\");"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return",
          "kind": "return",
          "label": "Returns result",
          "line": 113,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "return Result.Ok();"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_113_return_113__return",
          "kind": "return",
          "label": "Return success",
          "line": 113,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "Returns Result.Ok() on success."
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch",
          "kind": "catch",
          "label": "catch Exception ex",
          "line": 115,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86,
          "detail": "catch (Exception ex)"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear",
          "kind": "statement",
          "label": "Logs runtime state",
          "line": 117,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92,
          "detail": "_logger.LogError(ex, \"Unexpected error during subscription deletion for {Email}\", customerEmail);"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_118_handlesubscriptiondeletedasync_return_118_19__return",
          "kind": "return",
          "label": "Returns result",
          "line": 118,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7,
          "detail": "return Result.Fail(new Error(\"Unexpected error during subscription deletion.\").CausedBy(ex));"
        }
      ],
      "edges": [
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__entry__method:174nry:handlesubscriptiondeletedasync__action_88_try_catch_88__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__entry",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_88_try_catch_88__linear",
          "kind": "next",
          "line": 88,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_88_try_catch_88__linear__method:174nry:handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_88_try_catch_88__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try",
          "kind": "next",
          "line": 88,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.84
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try__method:174nry:handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await",
          "kind": "next",
          "line": 90,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await__method:174nry:handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear",
          "kind": "next",
          "line": 90,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear__method:174nry:handlesubscriptiondeletedasync__action_90_external_read_90__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_90_external_read_90__linear",
          "kind": "next",
          "line": 90,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_90_external_read_90__linear__method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__condition",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_90_external_read_90__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__condition",
          "kind": "next",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__condition__method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__true",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__condition",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__true",
          "kind": "condition-true",
          "label": "log-warning",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__condition__method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__false",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__condition",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__false",
          "kind": "condition-false",
          "label": "return-fail",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__true__method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__true",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
          "kind": "next",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__false__method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__false",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
          "kind": "next",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__merge__method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition",
          "kind": "next",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition__method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true",
          "kind": "condition-true",
          "label": "true",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition__method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false",
          "kind": "condition-false",
          "label": "false",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true__method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
          "kind": "next",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false__method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
          "kind": "next",
          "line": 91,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge__method:174nry:handlesubscriptiondeletedasync__action_93_log_93__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_93_log_93__linear",
          "kind": "next",
          "line": 93,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_93_log_93__linear__method:174nry:handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_93_log_93__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear",
          "kind": "next",
          "line": 93,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear__method:174nry:handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return",
          "kind": "return",
          "line": 94,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return__method:174nry:handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await",
          "kind": "next",
          "line": 97,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await__method:174nry:handlesubscriptiondeletedasync__action_97_db_read_97__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_97_db_read_97__linear",
          "kind": "next",
          "line": 97,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_97_db_read_97__linear__method:174nry:handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_97_db_read_97__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await",
          "kind": "next",
          "line": 98,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await__call_method:174nry:handlesubscriptiondeletedasync__call_98_FreeName_static_property_",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await",
          "to": "method:174nry:handlesubscriptiondeletedasync__call_98_FreeName_static_property_",
          "kind": "call",
          "label": "read Free plan name to find DB record",
          "line": 98,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.88
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__call_98_FreeName_static_property___call_method:174nry:handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync",
          "from": "method:174nry:handlesubscriptiondeletedasync__call_98_FreeName_static_property_",
          "to": "method:174nry:handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync",
          "kind": "call",
          "label": "predicate p => p.PlanName == SubscriptionPlan.FreeName",
          "line": 98,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.88
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync__method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition",
          "from": "method:174nry:handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition",
          "kind": "next",
          "line": 99,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition__method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true",
          "kind": "condition-true",
          "label": "true",
          "line": 99,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition__method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false",
          "kind": "condition-false",
          "label": "false",
          "line": 99,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true__method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
          "kind": "next",
          "line": 99,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false__method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
          "kind": "next",
          "line": 99,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge__method:174nry:handlesubscriptiondeletedasync__action_101_persistence_write_101__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_101_persistence_write_101__linear",
          "kind": "next",
          "line": 101,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_101_persistence_write_101__linear__method:174nry:handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_101_persistence_write_101__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await",
          "kind": "next",
          "line": 105,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.81
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await__method:174nry:handlesubscriptiondeletedasync__action_105_external_write_105__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_105_external_write_105__linear",
          "kind": "next",
          "line": 105,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_105_external_write_105__linear__method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__condition",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_105_external_write_105__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__condition",
          "kind": "next",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__condition__method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__true",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__condition",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__true",
          "kind": "condition-true",
          "label": "true",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__condition__method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__false",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__condition",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__false",
          "kind": "condition-false",
          "label": "false",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__true__method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__merge",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__true",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__merge",
          "kind": "next",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__false__method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__merge",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__false",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__merge",
          "kind": "next",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__merge__method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__merge",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition",
          "kind": "next",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition__method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true",
          "kind": "condition-true",
          "label": "true",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition__method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false",
          "kind": "condition-false",
          "label": "false",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true__method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
          "kind": "next",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false__method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
          "kind": "next",
          "line": 106,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.78
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge__method:174nry:handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear",
          "kind": "next",
          "line": 108,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear__method:174nry:handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear",
          "kind": "next",
          "line": 109,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.74
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear__method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return",
          "kind": "return",
          "line": 110,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return__method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear",
          "kind": "next",
          "line": 110,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear__method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear",
          "kind": "next",
          "line": 110,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.74
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear__method:174nry:handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return",
          "kind": "return",
          "line": 113,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return__method:174nry:handlesubscriptiondeletedasync__action_113_return_113__return",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_113_return_113__return",
          "kind": "return",
          "line": 113,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_113_return_113__return__method:174nry:handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_113_return_113__return",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch",
          "kind": "exception",
          "line": 115,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.86
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch__method:174nry:handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear",
          "kind": "next",
          "line": 117,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.92
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear__method:174nry:handlesubscriptiondeletedasync__action_118_handlesubscriptiondeletedasync_return_118_19__return",
          "from": "method:174nry:handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear",
          "to": "method:174nry:handlesubscriptiondeletedasync__action_118_handlesubscriptiondeletedasync_return_118_19__return",
          "kind": "return",
          "line": 118,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "confidence": 0.7
        }
      ],
      "jumpTargets": [
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__call_98_FreeName_static_property___jump_NexusReader_Domain_Entities_SubscriptionPlan_FreeName_static_property_",
          "fromNodeId": "method:174nry:handlesubscriptiondeletedasync__call_98_FreeName_static_property_",
          "kind": "call-target",
          "targetPath": "NexusReader.Domain.Entities/SubscriptionPlan",
          "targetHint": "FreeName (static property)",
          "line": 98,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "reason": "Call target FreeName (static property) in NexusReader.Domain.Entities/SubscriptionPlan could not be matched to an extracted method symbol.",
          "status": "unresolved"
        },
        {
          "id": "method:174nry:handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync__jump_NexusReader_Data_Persistence_AppDbContext_SubscriptionPlans_FirstOrDefaultAsync",
          "fromNodeId": "method:174nry:handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync",
          "kind": "call-target",
          "targetPath": "NexusReader.Data.Persistence/AppDbContext",
          "targetHint": "SubscriptionPlans.FirstOrDefaultAsync",
          "line": 98,
          "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
          "reason": "Call target SubscriptionPlans.FirstOrDefaultAsync in NexusReader.Data.Persistence/AppDbContext could not be matched to an extracted method symbol.",
          "status": "unresolved"
        }
      ],
      "exceptionTargets": [],
      "loopBackEdges": [],
      "mergeNodeIds": [
        "method:174nry:handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
        "method:174nry:handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
        "method:174nry:handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
        "method:174nry:handlesubscriptiondeletedasync__action_106_branch_106__merge",
        "method:174nry:handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge"
      ],
      "language": "csharp",
      "confidence": 0.98,
      "lineSpan": {
        "start": 86,
        "end": 120
      },
      "unsupportedConstructs": [],
      "evidence": [
        {
          "path": "NexusReader.Infrastructure/Services/BillingService.cs",
          "line": 86,
          "summary": "Control-flow fragment extracted for method HandleSubscriptionDeletedAsync.",
          "kind": "file-summary"
        }
      ]
    }
  ],
  "unresolvedJumps": [
    {
      "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_43_FreeName_static_property___jump_NexusReader_Domain_Entities_SubscriptionPlan_FreeName_static_property_",
      "fromNodeId": "method:1ctlycb:handlesubscriptionupdatedasync__call_43_FreeName_static_property_",
      "kind": "call-target",
      "targetPath": "NexusReader.Domain.Entities/SubscriptionPlan",
      "targetHint": "FreeName (static property)",
      "line": 43,
      "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
      "reason": "Call target FreeName (static property) in NexusReader.Domain.Entities/SubscriptionPlan could not be matched to an extracted method symbol.",
      "status": "unresolved"
    },
    {
      "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access___jump_NexusReader_Infrastructure_Configuration_StripeSettings_ProProductId_BasicProductId_FreeProductId_property_access_",
      "fromNodeId": "method:1ctlycb:handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_",
      "kind": "call-target",
      "targetPath": "NexusReader.Infrastructure/Configuration/StripeSettings",
      "targetHint": "ProProductId/BasicProductId/FreeProductId (property access)",
      "line": 46,
      "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
      "reason": "Call target ProProductId/BasicProductId/FreeProductId (property access) in NexusReader.Infrastructure/Configuration/StripeSettings could not be matched to an extracted method symbol.",
      "status": "unresolved"
    },
    {
      "id": "method:1ctlycb:handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync__jump_NexusReader_Data_Persistence_AppDbContext_SubscriptionPlans_FirstOrDefaultAsync",
      "fromNodeId": "method:1ctlycb:handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync",
      "kind": "call-target",
      "targetPath": "NexusReader.Data.Persistence/AppDbContext",
      "targetHint": "SubscriptionPlans.FirstOrDefaultAsync",
      "line": 62,
      "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
      "reason": "Call target SubscriptionPlans.FirstOrDefaultAsync in NexusReader.Data.Persistence/AppDbContext could not be matched to an extracted method symbol.",
      "status": "unresolved"
    },
    {
      "id": "method:174nry:handlesubscriptiondeletedasync__call_98_FreeName_static_property___jump_NexusReader_Domain_Entities_SubscriptionPlan_FreeName_static_property_",
      "fromNodeId": "method:174nry:handlesubscriptiondeletedasync__call_98_FreeName_static_property_",
      "kind": "call-target",
      "targetPath": "NexusReader.Domain.Entities/SubscriptionPlan",
      "targetHint": "FreeName (static property)",
      "line": 98,
      "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
      "reason": "Call target FreeName (static property) in NexusReader.Domain.Entities/SubscriptionPlan could not be matched to an extracted method symbol.",
      "status": "unresolved"
    },
    {
      "id": "method:174nry:handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync__jump_NexusReader_Data_Persistence_AppDbContext_SubscriptionPlans_FirstOrDefaultAsync",
      "fromNodeId": "method:174nry:handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync",
      "kind": "call-target",
      "targetPath": "NexusReader.Data.Persistence/AppDbContext",
      "targetHint": "SubscriptionPlans.FirstOrDefaultAsync",
      "line": 98,
      "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
      "reason": "Call target SubscriptionPlans.FirstOrDefaultAsync in NexusReader.Data.Persistence/AppDbContext could not be matched to an extracted method symbol.",
      "status": "unresolved"
    }
  ],
  "diagrams": [
    {
      "id": "file_13phiik_billingservice_cs_neighborhood_view",
      "purpose": "neighborhood-view",
      "title": "BillingService Neighborhood",
      "required": true,
      "diagram": {
        "id": "file_13phiik_billingservice_cs_neighborhood_view",
        "kind": "dependency-map",
        "title": "BillingService Neighborhood",
        "direction": "LR",
        "nodes": [
          {
            "id": "file_13phiik_billingservice_cs",
            "kind": "service",
            "label": "BillingService",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs"
          },
          {
            "id": "class_11gdjq4_billingservice",
            "kind": "service",
            "label": "BillingService",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs"
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync",
            "kind": "method",
            "label": "HandleSubscriptionUpdatedAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 32
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync",
            "kind": "method",
            "label": "HandleSubscriptionDeletedAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 86
          }
        ],
        "edges": [],
        "metadata": {
          "evidencePaths": [
            "NexusReader.Infrastructure/Services/BillingService.cs"
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart LR\n    class_11gdjq4_billingservice(\"BillingService\")\n    file_13phiik_billingservice_cs(\"BillingService\")\n    method_174nry_handlesubscriptiondeletedasync[[\"HandleSubscriptionDeletedAsync()\"]]\n    method_1ctlycb_handlesubscriptionupdatedasync[[\"HandleSubscriptionUpdatedAsync()\"]]",
      "warnings": []
    },
    {
      "id": "file_13phiik_billingservice_cs_execution_view",
      "purpose": "execution-overview",
      "title": "BillingService Execution Overview",
      "required": true,
      "diagram": {
        "id": "file_13phiik_billingservice_cs_execution_view",
        "kind": "method-flow",
        "title": "BillingService Execution Overview",
        "direction": "TD",
        "nodes": [
          {
            "id": "class_11gdjq4_billingservice",
            "kind": "service",
            "label": "BillingService",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs"
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync",
            "kind": "method",
            "label": "HandleSubscriptionUpdatedAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 32
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync",
            "kind": "method",
            "label": "HandleSubscriptionDeletedAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 86
          },
          {
            "id": "unresolved_unresolved_jsmstp_call_target",
            "kind": "prompt",
            "label": "Unresolved: FreeName (static property)",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 43
          },
          {
            "id": "unresolved_unresolved_y7wf8y_call_target",
            "kind": "prompt",
            "label": "Unresolved: ProProductId/BasicProductId/FreeProductId (property access)",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "unresolved_unresolved_1a2iojd_call_target",
            "kind": "prompt",
            "label": "Unresolved: SubscriptionPlans.FirstOrDefaultAsync",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 62
          },
          {
            "id": "unresolved_unresolved_1p70858_call_target",
            "kind": "prompt",
            "label": "Unresolved: FreeName (static property)",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 98
          },
          {
            "id": "unresolved_unresolved_1vyek1g_call_target",
            "kind": "prompt",
            "label": "Unresolved: SubscriptionPlans.FirstOrDefaultAsync",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 98
          },
          {
            "id": "unresolved_unresolved_rn7bsb_interaction_target",
            "kind": "prompt",
            "label": "Unresolved: var user = await _userManager.FindByEmailAsync(customerEmail);",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 36
          },
          {
            "id": "unresolved_unresolved_13nkcv8_interaction_target",
            "kind": "prompt",
            "label": "Unresolved: return Result.Fail(result.Errors.Select(e => e.Description).FirstOrDefault() ?? \\\"Failed to update user profile.\\\");",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 74
          },
          {
            "id": "unresolved_unresolved_1a3pyvg_interaction_target",
            "kind": "prompt",
            "label": "Unresolved: return Result.Fail(result.Errors.Select(e => e.Description).FirstOrDefault() ?? \\\"Failed to reset user to free tier.\\\");",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 110
          }
        ],
        "edges": [
          {
            "id": "class_11gdjq4_billingservice_contains_method_1ctlycb_handlesubscriptionupdatedasync",
            "from": "class_11gdjq4_billingservice",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync",
            "semanticLabel": "contains executable method",
            "visibleLabel": "contains",
            "relation": "calls",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 32
          },
          {
            "id": "class_11gdjq4_billingservice_contains_method_174nry_handlesubscriptiondeletedasync",
            "from": "class_11gdjq4_billingservice",
            "to": "method_174nry_handlesubscriptiondeletedasync",
            "semanticLabel": "contains executable method",
            "visibleLabel": "contains",
            "relation": "calls",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 86
          },
          {
            "id": "unresolved_jsmstp_call_target_edge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync",
            "to": "unresolved_unresolved_jsmstp_call_target",
            "semanticLabel": "Call target was discovered in the summary but could not be matched to an extracted method symbol.",
            "visibleLabel": "unresolved call",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 43
          },
          {
            "id": "unresolved_y7wf8y_call_target_edge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync",
            "to": "unresolved_unresolved_y7wf8y_call_target",
            "semanticLabel": "Call target was discovered in the summary but could not be matched to an extracted method symbol.",
            "visibleLabel": "unresolved call",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "unresolved_1a2iojd_call_target_edge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync",
            "to": "unresolved_unresolved_1a2iojd_call_target",
            "semanticLabel": "Call target was discovered in the summary but could not be matched to an extracted method symbol.",
            "visibleLabel": "unresolved call",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 62
          },
          {
            "id": "unresolved_1p70858_call_target_edge",
            "from": "method_174nry_handlesubscriptiondeletedasync",
            "to": "unresolved_unresolved_1p70858_call_target",
            "semanticLabel": "Call target was discovered in the summary but could not be matched to an extracted method symbol.",
            "visibleLabel": "unresolved call",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 98
          },
          {
            "id": "unresolved_1vyek1g_call_target_edge",
            "from": "method_174nry_handlesubscriptiondeletedasync",
            "to": "unresolved_unresolved_1vyek1g_call_target",
            "semanticLabel": "Call target was discovered in the summary but could not be matched to an extracted method symbol.",
            "visibleLabel": "unresolved call",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 98
          },
          {
            "id": "unresolved_rn7bsb_interaction_target_edge",
            "from": "class_11gdjq4_billingservice",
            "to": "unresolved_unresolved_rn7bsb_interaction_target",
            "semanticLabel": "Interaction was identified in the file summary but does not yet map to a stable V5 target node.",
            "visibleLabel": "unresolved interaction",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 36
          },
          {
            "id": "unresolved_13nkcv8_interaction_target_edge",
            "from": "class_11gdjq4_billingservice",
            "to": "unresolved_unresolved_13nkcv8_interaction_target",
            "semanticLabel": "Interaction was identified in the file summary but does not yet map to a stable V5 target node.",
            "visibleLabel": "unresolved interaction",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 74
          },
          {
            "id": "unresolved_rn7bsb_interaction_target_edge",
            "from": "class_11gdjq4_billingservice",
            "to": "unresolved_unresolved_rn7bsb_interaction_target",
            "semanticLabel": "Interaction was identified in the file summary but does not yet map to a stable V5 target node.",
            "visibleLabel": "unresolved interaction",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 90
          },
          {
            "id": "unresolved_1a3pyvg_interaction_target_edge",
            "from": "class_11gdjq4_billingservice",
            "to": "unresolved_unresolved_1a3pyvg_interaction_target",
            "semanticLabel": "Interaction was identified in the file summary but does not yet map to a stable V5 target node.",
            "visibleLabel": "unresolved interaction",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 110
          }
        ],
        "metadata": {
          "evidencePaths": [
            "NexusReader.Infrastructure/Services/BillingService.cs"
          ],
          "warnings": [
            "Execution overview includes unresolved targets. Use validation artifacts before treating the flow as complete."
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart TD\n    class_11gdjq4_billingservice(\"BillingService\")\n    method_174nry_handlesubscriptiondeletedasync[[\"HandleSubscriptionDeletedAsync()\"]]\n    method_1ctlycb_handlesubscriptionupdatedasync[[\"HandleSubscriptionUpdatedAsync()\"]]\n    unresolved_unresolved_13nkcv8_interaction_target{\"Unresolved: return Result.Fail(result.Errors.Select(e => e.Description).FirstOrDefault() ?? \\\\\"Failed to update user profile.\\\\\");\"}\n    unresolved_unresolved_1a2iojd_call_target{\"Unresolved: SubscriptionPlans.FirstOrDefaultAsync\"}\n    unresolved_unresolved_1a3pyvg_interaction_target{\"Unresolved: return Result.Fail(result.Errors.Select(e => e.Description).FirstOrDefault() ?? \\\\\"Failed to reset user to free tier.\\\\\");\"}\n    unresolved_unresolved_1p70858_call_target{\"Unresolved: FreeName (static property)\"}\n    unresolved_unresolved_1vyek1g_call_target{\"Unresolved: SubscriptionPlans.FirstOrDefaultAsync\"}\n    unresolved_unresolved_jsmstp_call_target{\"Unresolved: FreeName (static property)\"}\n    unresolved_unresolved_rn7bsb_interaction_target{\"Unresolved: var user = await _userManager.FindByEmailAsync(customerEmail);\"}\n    unresolved_unresolved_y7wf8y_call_target{\"Unresolved: ProProductId/BasicProductId/FreeProductId (property access)\"}\n    class_11gdjq4_billingservice -->|contains| method_174nry_handlesubscriptiondeletedasync\n    class_11gdjq4_billingservice -->|contains| method_1ctlycb_handlesubscriptionupdatedasync\n    class_11gdjq4_billingservice -->|unresolved interaction| unresolved_unresolved_13nkcv8_interaction_target\n    class_11gdjq4_billingservice -->|unresolved interaction| unresolved_unresolved_1a3pyvg_interaction_target\n    class_11gdjq4_billingservice -->|unresolved interaction| unresolved_unresolved_rn7bsb_interaction_target\n    class_11gdjq4_billingservice -->|unresolved interaction| unresolved_unresolved_rn7bsb_interaction_target\n    method_174nry_handlesubscriptiondeletedasync -->|unresolved call| unresolved_unresolved_1p70858_call_target\n    method_174nry_handlesubscriptiondeletedasync -->|unresolved call| unresolved_unresolved_1vyek1g_call_target\n    method_1ctlycb_handlesubscriptionupdatedasync -->|unresolved call| unresolved_unresolved_1a2iojd_call_target\n    method_1ctlycb_handlesubscriptionupdatedasync -->|unresolved call| unresolved_unresolved_jsmstp_call_target\n    method_1ctlycb_handlesubscriptionupdatedasync -->|unresolved call| unresolved_unresolved_y7wf8y_call_target",
      "warnings": []
    },
    {
      "id": "method_1ctlycb_handlesubscriptionupdatedasync__fragment_diagram",
      "purpose": "control-flow",
      "title": "HandleSubscriptionUpdatedAsync() Control Flow",
      "required": true,
      "diagram": {
        "id": "method_1ctlycb_handlesubscriptionupdatedasync__fragment_diagram",
        "kind": "control-flow",
        "title": "HandleSubscriptionUpdatedAsync() Control Flow",
        "direction": "TD",
        "nodes": [
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__entry",
            "kind": "step",
            "label": "HandleSubscriptionUpdatedAsync entry",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 32
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_34_try_catch_34__linear",
            "kind": "step",
            "label": "Surrounds whole operation with try/catch",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 34
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try",
            "kind": "step",
            "label": "Begins protected execution",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 34
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 36
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear",
            "kind": "dependency",
            "label": "Reads repository or persistence state",
            "shape": "cyl",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 36
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_external_read_36__linear",
            "kind": "step",
            "label": "Load user by email",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 36
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition",
            "kind": "step",
            "label": "user == null",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__true",
            "kind": "step",
            "label": "log-warning",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__false",
            "kind": "step",
            "label": "return-fail",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition",
            "kind": "step",
            "label": "user == null",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear",
            "kind": "step",
            "label": "Logs runtime state",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 39
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_39_log_39__linear",
            "kind": "step",
            "label": "Informational and warning logs",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 39
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return",
            "kind": "return",
            "label": "Returns result",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 40
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__call_43_FreeName_static_property_",
            "kind": "method",
            "label": "FreeName (static property)",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 43
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition",
            "kind": "step",
            "label": "Map stripeProductId to target plan and token limit",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition",
            "kind": "step",
            "label": "stripeProductId == _stripeSettings.ProProductId",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_",
            "kind": "method",
            "label": "ProProductId/BasicProductId/FreeProductId (property access)",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition",
            "kind": "step",
            "label": "Falls back to alternate path",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true",
            "kind": "step",
            "label": "fallback",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false",
            "kind": "step",
            "label": "otherwise",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition",
            "kind": "step",
            "label": "stripeProductId == _stripeSettings.BasicProductId",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition",
            "kind": "step",
            "label": "Falls back to alternate path",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true",
            "kind": "step",
            "label": "fallback",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false",
            "kind": "step",
            "label": "otherwise",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition",
            "kind": "step",
            "label": "!string.IsNullOrEmpty(stripeProductId) && stripeProductId != _stripeSettings.FreeProductId",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear",
            "kind": "step",
            "label": "Logs runtime state",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 58
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 61
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_61_db_read_61__linear",
            "kind": "step",
            "label": "Read SubscriptionPlan entity",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 61
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 62
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync",
            "kind": "method",
            "label": "SubscriptionPlans.FirstOrDefaultAsync",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 62
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition",
            "kind": "step",
            "label": "plan != null",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 63
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 63
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 63
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 63
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_65_persistence_write_65__linear",
            "kind": "step",
            "label": "Apply plan and token limit to user object",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 65
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 69
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_69_external_write_69__linear",
            "kind": "step",
            "label": "Persist user changes",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 69
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition",
            "kind": "step",
            "label": "Handle update failure",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition",
            "kind": "step",
            "label": "!result.Succeeded",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear",
            "kind": "step",
            "label": "Logs runtime state",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 72
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear",
            "kind": "step",
            "label": "Maps data or transforms shape",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 73
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return",
            "kind": "return",
            "label": "Returns result",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 74
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear",
            "kind": "dependency",
            "label": "Reads repository or persistence state",
            "shape": "cyl",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 74
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear",
            "kind": "step",
            "label": "Maps data or transforms shape",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 74
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return",
            "kind": "return",
            "label": "Returns result",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 77
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_77_return_77__return",
            "kind": "return",
            "label": "Return success",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 77
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch",
            "kind": "step",
            "label": "catch Exception ex",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 79
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear",
            "kind": "step",
            "label": "Logs runtime state",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 81
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_82_handlesubscriptionupdatedasync_return_82_25__return",
            "kind": "return",
            "label": "Returns result",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 82
          }
        ],
        "edges": [
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__entry__method_1ctlycb_handlesubscriptionupdatedasync__action_34_try_catch_34__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__entry",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_34_try_catch_34__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 34
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_34_try_catch_34__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_34_try_catch_34__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 34
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try__method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 36
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await__method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 36
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_36_external_read_36__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_external_read_36__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 36
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_external_read_36__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_36_external_read_36__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__true",
            "semanticLabel": "log-warning",
            "visibleLabel": "log-warning",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__false",
            "semanticLabel": "return-fail",
            "visibleLabel": "return-fail",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__true__method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__false__method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge__method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true__method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false__method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 37
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge__method_1ctlycb_handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 39
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_39_log_39__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_39_log_39__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 39
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_39_log_39__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_39_log_39__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 40
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return__call_method_1ctlycb_handlesubscriptionupdatedasync__call_43_FreeName_static_property_",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__call_43_FreeName_static_property_",
            "semanticLabel": "read default Free plan name",
            "visibleLabel": "read default Free plan name",
            "relation": "calls",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 43
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__call_43_FreeName_static_property___method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__call_43_FreeName_static_property_",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__true__method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__false__method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge__method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true__method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false__method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge__call_method_1ctlycb_handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_",
            "semanticLabel": "compare incoming stripeProductId to configured product ids",
            "visibleLabel": "compare incoming stripeProductId to configured product ids",
            "relation": "calls",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 46
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access___method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition",
            "semanticLabel": "fallback",
            "visibleLabel": "fallback",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true",
            "semanticLabel": "fallback",
            "visibleLabel": "fallback",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false",
            "semanticLabel": "otherwise",
            "visibleLabel": "otherwise",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true__method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false__method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge__method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true__method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false__method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 51
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge__method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition",
            "semanticLabel": "fallback",
            "visibleLabel": "fallback",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true",
            "semanticLabel": "fallback",
            "visibleLabel": "fallback",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false",
            "semanticLabel": "otherwise",
            "visibleLabel": "otherwise",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true__method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false__method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge__method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true__method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false__method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 56
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge__method_1ctlycb_handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 58
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 61
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await__method_1ctlycb_handlesubscriptionupdatedasync__action_61_db_read_61__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_61_db_read_61__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 61
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_61_db_read_61__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_61_db_read_61__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 62
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await__call_method_1ctlycb_handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync",
            "semanticLabel": "predicate p => p.PlanName == targetPlanName",
            "visibleLabel": "predicate p => p.PlanName == targetPlanName",
            "relation": "calls",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 62
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync__method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 63
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 63
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 63
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true__method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 63
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false__method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 63
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge__method_1ctlycb_handlesubscriptionupdatedasync__action_65_persistence_write_65__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_65_persistence_write_65__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 65
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_65_persistence_write_65__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_65_persistence_write_65__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 69
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await__method_1ctlycb_handlesubscriptionupdatedasync__action_69_external_write_69__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_69_external_write_69__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 69
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_69_external_write_69__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_69_external_write_69__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__true__method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__false__method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge__method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition__method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true__method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false__method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 70
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge__method_1ctlycb_handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 72
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 73
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 74
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return__method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 74
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 74
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 77
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return__method_1ctlycb_handlesubscriptionupdatedasync__action_77_return_77__return",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_77_return_77__return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 77
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_77_return_77__return__method_1ctlycb_handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_77_return_77__return",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch",
            "semanticLabel": "exception",
            "visibleLabel": "exception",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 79
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch__method_1ctlycb_handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 81
          },
          {
            "id": "method_1ctlycb_handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear__method_1ctlycb_handlesubscriptionupdatedasync__action_82_handlesubscriptionupdatedasync_return_82_25__return",
            "from": "method_1ctlycb_handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear",
            "to": "method_1ctlycb_handlesubscriptionupdatedasync__action_82_handlesubscriptionupdatedasync_return_82_25__return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 82
          }
        ],
        "metadata": {
          "evidencePaths": [
            "NexusReader.Infrastructure/Services/BillingService.cs"
          ],
          "warnings": [
            "Call target FreeName (static property) in NexusReader.Domain.Entities/SubscriptionPlan could not be matched to an extracted method symbol.",
            "Call target ProProductId/BasicProductId/FreeProductId (property access) in NexusReader.Infrastructure/Configuration/StripeSettings could not be matched to an extracted method symbol.",
            "Call target SubscriptionPlans.FirstOrDefaultAsync in NexusReader.Data.Persistence/AppDbContext could not be matched to an extracted method symbol."
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "---\nconfig:\n  flowchart:\n    defaultRenderer: \"elk\"\n---\nflowchart TD\n    method_1ctlycb_handlesubscriptionupdatedasync__call_43_FreeName_static_property_[[\"FreeName (static property)\"]]\n    method_1ctlycb_handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_[[\"ProProductId/BasicProductId/FreeProductId (property access)\"]]\n    method_1ctlycb_handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync[[\"SubscriptionPlans.FirstOrDefaultAsync\"]]\n    method_1ctlycb_handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try(\"Begins protected execution\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_34_try_catch_34__linear(\"Surrounds whole operation with try/catch\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_36_external_read_36__linear(\"Load user by email\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await[[\"Waits for async work\"]]\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition{\"user == null\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__false(\"return-fail\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__true(\"log-warning\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition{\"user == null\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false(\"false\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true(\"true\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear(\"Logs runtime state\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_39_log_39__linear(\"Informational and warning logs\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition{\"Map stripeProductId to target plan and token limit\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__false(\"false\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__true(\"true\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition{\"stripeProductId == _stripeSettings.ProProductId\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false(\"false\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true(\"true\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition{\"stripeProductId == _stripeSettings.BasicProductId\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false(\"false\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true(\"true\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition{\"Falls back to alternate path\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false(\"otherwise\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true(\"fallback\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition{\"!string.IsNullOrEmpty(stripeProductId) && stripeProductId != _stripeSettings.FreeProductId\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false(\"false\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true(\"true\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition{\"Falls back to alternate path\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false(\"otherwise\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true(\"fallback\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear(\"Logs runtime state\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_61_db_read_61__linear(\"Read SubscriptionPlan entity\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await[[\"Waits for async work\"]]\n    method_1ctlycb_handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await[[\"Waits for async work\"]]\n    method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition{\"plan != null\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false(\"false\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true(\"true\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_65_persistence_write_65__linear(\"Apply plan and token limit to user object\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_69_external_write_69__linear(\"Persist user changes\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await[[\"Waits for async work\"]]\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition{\"Handle update failure\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__false(\"false\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__true(\"true\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition{\"!result.Succeeded\"}\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false(\"false\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge(\"merge\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true(\"true\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear(\"Logs runtime state\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear(\"Maps data or transforms shape\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear(\"Maps data or transforms shape\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch(\"catch Exception ex\")\n    method_1ctlycb_handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear(\"Logs runtime state\")\n    method_1ctlycb_handlesubscriptionupdatedasync__entry([\"HandleSubscriptionUpdatedAsync entry\"])\n    method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear[(\"Reads repository or persistence state\")]\n    method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear[(\"Reads repository or persistence state\")]\n    method_1ctlycb_handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return([\"Returns result\"])\n    method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return([\"Returns result\"])\n    method_1ctlycb_handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return([\"Returns result\"])\n    method_1ctlycb_handlesubscriptionupdatedasync__action_77_return_77__return([\"Return success\"])\n    method_1ctlycb_handlesubscriptionupdatedasync__action_82_handlesubscriptionupdatedasync_return_82_25__return([\"Returns result\"])\n    method_1ctlycb_handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await\n    method_1ctlycb_handlesubscriptionupdatedasync__action_34_try_catch_34__linear -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_34_handlesubscriptionupdatedasync_try_34_0__try\n    method_1ctlycb_handlesubscriptionupdatedasync__action_36_external_read_36__linear -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_await_36_2__await -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_36_handlesubscriptionupdatedasync_repository_read_36_1__linear -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_36_external_read_36__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition -->|return-fail| method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__condition -->|log-warning| method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_37_guard_clause_37__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition -->|false| method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__condition -->|true| method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_37_handlesubscriptionupdatedasync_branch_37_3__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_39_handlesubscriptionupdatedasync_log_39_4__linear -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_39_log_39__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_39_log_39__linear -->|return| method_1ctlycb_handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return\n    method_1ctlycb_handlesubscriptionupdatedasync__action_40_handlesubscriptionupdatedasync_return_40_5__return -->|read default Free plan name| method_1ctlycb_handlesubscriptionupdatedasync__call_43_FreeName_static_property_\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition -->|false| method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition -->|true| method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition -->|false| method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__condition -->|true| method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge -->|compare incoming stripeProductId to configured product ids| method_1ctlycb_handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_\n    method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_46_handlesubscriptionupdatedasync_branch_46_6__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition -->|false| method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition -->|true| method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge -->|fallback| method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition -->|otherwise| method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition -->|fallback| method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_branch_51_7__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition -->|false| method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition -->|true| method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition -->|otherwise| method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__condition -->|fallback| method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_branch_56_9__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_56_handlesubscriptionupdatedasync_fallback_56_10__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_58_handlesubscriptionupdatedasync_log_58_11__linear -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await\n    method_1ctlycb_handlesubscriptionupdatedasync__action_61_db_read_61__linear -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await\n    method_1ctlycb_handlesubscriptionupdatedasync__action_61_handlesubscriptionupdatedasync_await_61_12__await -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_61_db_read_61__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_62_handlesubscriptionupdatedasync_await_62_13__await -->|predicate p => p.PlanName == targetPlanName| method_1ctlycb_handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync\n    method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition -->|false| method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition -->|true| method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_65_persistence_write_65__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_65_persistence_write_65__linear -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await\n    method_1ctlycb_handlesubscriptionupdatedasync__action_69_external_write_69__linear -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__action_69_handlesubscriptionupdatedasync_await_69_15__await -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_69_external_write_69__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition -->|false| method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__condition -->|true| method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_70_branch_70__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition -->|false| method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__condition -->|true| method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__false -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__true -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_70_handlesubscriptionupdatedasync_branch_70_16__merge\n    method_1ctlycb_handlesubscriptionupdatedasync__action_72_handlesubscriptionupdatedasync_log_72_17__linear -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_73_handlesubscriptionupdatedasync_mapping_73_18__linear -->|return| method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return\n    method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear -->|return| method_1ctlycb_handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return\n    method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_mapping_74_20__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_return_74_21__return -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_74_handlesubscriptionupdatedasync_repository_read_74_19__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_77_handlesubscriptionupdatedasync_return_77_22__return -->|return| method_1ctlycb_handlesubscriptionupdatedasync__action_77_return_77__return\n    method_1ctlycb_handlesubscriptionupdatedasync__action_77_return_77__return -->|exception| method_1ctlycb_handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch\n    method_1ctlycb_handlesubscriptionupdatedasync__action_79_handlesubscriptionupdatedasync_catch_79_23__catch -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear\n    method_1ctlycb_handlesubscriptionupdatedasync__action_81_handlesubscriptionupdatedasync_log_81_24__linear -->|return| method_1ctlycb_handlesubscriptionupdatedasync__action_82_handlesubscriptionupdatedasync_return_82_25__return\n    method_1ctlycb_handlesubscriptionupdatedasync__call_43_FreeName_static_property_ -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_46_branch_46__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__call_46_ProProductId_BasicProductId_FreeProductId_property_access_ -->|fallback| method_1ctlycb_handlesubscriptionupdatedasync__action_51_handlesubscriptionupdatedasync_fallback_51_8__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__call_62_SubscriptionPlans_FirstOrDefaultAsync -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_63_handlesubscriptionupdatedasync_branch_63_14__condition\n    method_1ctlycb_handlesubscriptionupdatedasync__entry -->|next| method_1ctlycb_handlesubscriptionupdatedasync__action_34_try_catch_34__linear",
      "warnings": [
        "diagram method_1ctlycb_handlesubscriptionupdatedasync__fragment_diagram exceeds preferred complexity thresholds (73 nodes, 83 edges)."
      ]
    },
    {
      "id": "method_174nry_handlesubscriptiondeletedasync__fragment_diagram",
      "purpose": "control-flow",
      "title": "HandleSubscriptionDeletedAsync() Control Flow",
      "required": true,
      "diagram": {
        "id": "method_174nry_handlesubscriptiondeletedasync__fragment_diagram",
        "kind": "control-flow",
        "title": "HandleSubscriptionDeletedAsync() Control Flow",
        "direction": "TD",
        "nodes": [
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__entry",
            "kind": "step",
            "label": "HandleSubscriptionDeletedAsync entry",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 86
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_88_try_catch_88__linear",
            "kind": "step",
            "label": "Surrounds operation with try/catch",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 88
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try",
            "kind": "step",
            "label": "Begins protected execution",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 88
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 90
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear",
            "kind": "dependency",
            "label": "Reads repository or persistence state",
            "shape": "cyl",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 90
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_90_external_read_90__linear",
            "kind": "step",
            "label": "Load user by email",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 90
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition",
            "kind": "step",
            "label": "user == null",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__true",
            "kind": "step",
            "label": "log-warning",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__false",
            "kind": "step",
            "label": "return-fail",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition",
            "kind": "step",
            "label": "user == null",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_93_log_93__linear",
            "kind": "step",
            "label": "Warning and error logs",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 93
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear",
            "kind": "step",
            "label": "Logs runtime state",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 93
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return",
            "kind": "return",
            "label": "Returns result",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 94
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 97
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_97_db_read_97__linear",
            "kind": "step",
            "label": "Fetch Free SubscriptionPlan",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 97
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 98
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__call_98_FreeName_static_property_",
            "kind": "method",
            "label": "FreeName (static property)",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 98
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync",
            "kind": "method",
            "label": "SubscriptionPlans.FirstOrDefaultAsync",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 98
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition",
            "kind": "step",
            "label": "freePlan != null",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 99
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 99
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 99
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 99
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_101_persistence_write_101__linear",
            "kind": "step",
            "label": "Reset user's SubscriptionPlanId and AITokenLimit",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 101
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 105
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_105_external_write_105__linear",
            "kind": "step",
            "label": "Persist user changes",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 105
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition",
            "kind": "step",
            "label": "Handle update failure",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition",
            "kind": "step",
            "label": "!result.Succeeded",
            "shape": "diamond",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear",
            "kind": "step",
            "label": "Logs runtime state",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 108
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear",
            "kind": "step",
            "label": "Maps data or transforms shape",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 109
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return",
            "kind": "return",
            "label": "Returns result",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 110
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear",
            "kind": "dependency",
            "label": "Reads repository or persistence state",
            "shape": "cyl",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 110
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear",
            "kind": "step",
            "label": "Maps data or transforms shape",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 110
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return",
            "kind": "return",
            "label": "Returns result",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 113
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_113_return_113__return",
            "kind": "return",
            "label": "Return success",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 113
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch",
            "kind": "step",
            "label": "catch Exception ex",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 115
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear",
            "kind": "step",
            "label": "Logs runtime state",
            "shape": "rounded",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 117
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_118_handlesubscriptiondeletedasync_return_118_19__return",
            "kind": "return",
            "label": "Returns result",
            "shape": "stadium",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 118
          }
        ],
        "edges": [
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__entry__method_174nry_handlesubscriptiondeletedasync__action_88_try_catch_88__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__entry",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_88_try_catch_88__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 88
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_88_try_catch_88__linear__method_174nry_handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_88_try_catch_88__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 88
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try__method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 90
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await__method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 90
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear__method_174nry_handlesubscriptiondeletedasync__action_90_external_read_90__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_90_external_read_90__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 90
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_90_external_read_90__linear__method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_90_external_read_90__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition__method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__true",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__true",
            "semanticLabel": "log-warning",
            "visibleLabel": "log-warning",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition__method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__false",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__false",
            "semanticLabel": "return-fail",
            "visibleLabel": "return-fail",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__true__method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__true",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__false__method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__false",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge__method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition__method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition__method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true__method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false__method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 91
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge__method_174nry_handlesubscriptiondeletedasync__action_93_log_93__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_93_log_93__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 93
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_93_log_93__linear__method_174nry_handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_93_log_93__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 93
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear__method_174nry_handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 94
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return__method_174nry_handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 97
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await__method_174nry_handlesubscriptiondeletedasync__action_97_db_read_97__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_97_db_read_97__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 97
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_97_db_read_97__linear__method_174nry_handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_97_db_read_97__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 98
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await__call_method_174nry_handlesubscriptiondeletedasync__call_98_FreeName_static_property_",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await",
            "to": "method_174nry_handlesubscriptiondeletedasync__call_98_FreeName_static_property_",
            "semanticLabel": "read Free plan name to find DB record",
            "visibleLabel": "read Free plan name to find DB record",
            "relation": "calls",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 98
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__call_98_FreeName_static_property___call_method_174nry_handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync",
            "from": "method_174nry_handlesubscriptiondeletedasync__call_98_FreeName_static_property_",
            "to": "method_174nry_handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync",
            "semanticLabel": "predicate p => p.PlanName == SubscriptionPlan.FreeName",
            "visibleLabel": "predicate p => p.PlanName == SubscriptionPlan.FreeName",
            "relation": "calls",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 98
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync__method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition",
            "from": "method_174nry_handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 99
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition__method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 99
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition__method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 99
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true__method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 99
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false__method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 99
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge__method_174nry_handlesubscriptiondeletedasync__action_101_persistence_write_101__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_101_persistence_write_101__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 101
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_101_persistence_write_101__linear__method_174nry_handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_101_persistence_write_101__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 105
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await__method_174nry_handlesubscriptiondeletedasync__action_105_external_write_105__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_105_external_write_105__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 105
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_105_external_write_105__linear__method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_105_external_write_105__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition__method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__true",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition__method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__false",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__true__method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__true",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__false__method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__false",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge__method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition__method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition__method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true__method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false__method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 106
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge__method_174nry_handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 108
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear__method_174nry_handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 109
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear__method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 110
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return__method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 110
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear__method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 110
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear__method_174nry_handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 113
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return__method_174nry_handlesubscriptiondeletedasync__action_113_return_113__return",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_113_return_113__return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 113
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_113_return_113__return__method_174nry_handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_113_return_113__return",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch",
            "semanticLabel": "exception",
            "visibleLabel": "exception",
            "relation": "transforms",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 115
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch__method_174nry_handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 117
          },
          {
            "id": "method_174nry_handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear__method_174nry_handlesubscriptiondeletedasync__action_118_handlesubscriptiondeletedasync_return_118_19__return",
            "from": "method_174nry_handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear",
            "to": "method_174nry_handlesubscriptiondeletedasync__action_118_handlesubscriptiondeletedasync_return_118_19__return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.Infrastructure/Services/BillingService.cs",
            "sourceLine": 118
          }
        ],
        "metadata": {
          "evidencePaths": [
            "NexusReader.Infrastructure/Services/BillingService.cs"
          ],
          "warnings": [
            "Call target FreeName (static property) in NexusReader.Domain.Entities/SubscriptionPlan could not be matched to an extracted method symbol.",
            "Call target SubscriptionPlans.FirstOrDefaultAsync in NexusReader.Data.Persistence/AppDbContext could not be matched to an extracted method symbol."
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "---\nconfig:\n  flowchart:\n    defaultRenderer: \"elk\"\n---\nflowchart TD\n    method_174nry_handlesubscriptiondeletedasync__call_98_FreeName_static_property_[[\"FreeName (static property)\"]]\n    method_174nry_handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync[[\"SubscriptionPlans.FirstOrDefaultAsync\"]]\n    method_174nry_handlesubscriptiondeletedasync__action_101_persistence_write_101__linear(\"Reset user's SubscriptionPlanId and AITokenLimit\")\n    method_174nry_handlesubscriptiondeletedasync__action_105_external_write_105__linear(\"Persist user changes\")\n    method_174nry_handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await[[\"Waits for async work\"]]\n    method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition{\"Handle update failure\"}\n    method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__false(\"false\")\n    method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge(\"merge\")\n    method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__true(\"true\")\n    method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition{\"!result.Succeeded\"}\n    method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false(\"false\")\n    method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge(\"merge\")\n    method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true(\"true\")\n    method_174nry_handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear(\"Logs runtime state\")\n    method_174nry_handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear(\"Maps data or transforms shape\")\n    method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear(\"Maps data or transforms shape\")\n    method_174nry_handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch(\"catch Exception ex\")\n    method_174nry_handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear(\"Logs runtime state\")\n    method_174nry_handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try(\"Begins protected execution\")\n    method_174nry_handlesubscriptiondeletedasync__action_88_try_catch_88__linear(\"Surrounds operation with try/catch\")\n    method_174nry_handlesubscriptiondeletedasync__action_90_external_read_90__linear(\"Load user by email\")\n    method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await[[\"Waits for async work\"]]\n    method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition{\"user == null\"}\n    method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__false(\"return-fail\")\n    method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge(\"merge\")\n    method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__true(\"log-warning\")\n    method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition{\"user == null\"}\n    method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false(\"false\")\n    method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge(\"merge\")\n    method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true(\"true\")\n    method_174nry_handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear(\"Logs runtime state\")\n    method_174nry_handlesubscriptiondeletedasync__action_93_log_93__linear(\"Warning and error logs\")\n    method_174nry_handlesubscriptiondeletedasync__action_97_db_read_97__linear(\"Fetch Free SubscriptionPlan\")\n    method_174nry_handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await[[\"Waits for async work\"]]\n    method_174nry_handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await[[\"Waits for async work\"]]\n    method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition{\"freePlan != null\"}\n    method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false(\"false\")\n    method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge(\"merge\")\n    method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true(\"true\")\n    method_174nry_handlesubscriptiondeletedasync__entry([\"HandleSubscriptionDeletedAsync entry\"])\n    method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear[(\"Reads repository or persistence state\")]\n    method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear[(\"Reads repository or persistence state\")]\n    method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return([\"Returns result\"])\n    method_174nry_handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return([\"Returns result\"])\n    method_174nry_handlesubscriptiondeletedasync__action_113_return_113__return([\"Return success\"])\n    method_174nry_handlesubscriptiondeletedasync__action_118_handlesubscriptiondeletedasync_return_118_19__return([\"Returns result\"])\n    method_174nry_handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return([\"Returns result\"])\n    method_174nry_handlesubscriptiondeletedasync__action_101_persistence_write_101__linear -->|next| method_174nry_handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await\n    method_174nry_handlesubscriptiondeletedasync__action_105_external_write_105__linear -->|next| method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition\n    method_174nry_handlesubscriptiondeletedasync__action_105_handlesubscriptiondeletedasync_await_105_9__await -->|next| method_174nry_handlesubscriptiondeletedasync__action_105_external_write_105__linear\n    method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition -->|false| method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__false\n    method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__condition -->|true| method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__true\n    method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__false -->|next| method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge\n    method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge -->|next| method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition\n    method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__true -->|next| method_174nry_handlesubscriptiondeletedasync__action_106_branch_106__merge\n    method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition -->|false| method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false\n    method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__condition -->|true| method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true\n    method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__false -->|next| method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge\n    method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge -->|next| method_174nry_handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear\n    method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__true -->|next| method_174nry_handlesubscriptiondeletedasync__action_106_handlesubscriptiondeletedasync_branch_106_10__merge\n    method_174nry_handlesubscriptiondeletedasync__action_108_handlesubscriptiondeletedasync_log_108_11__linear -->|next| method_174nry_handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear\n    method_174nry_handlesubscriptiondeletedasync__action_109_handlesubscriptiondeletedasync_mapping_109_12__linear -->|return| method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return\n    method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear -->|return| method_174nry_handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return\n    method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear -->|next| method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_mapping_110_14__linear\n    method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_return_110_15__return -->|next| method_174nry_handlesubscriptiondeletedasync__action_110_handlesubscriptiondeletedasync_repository_read_110_13__linear\n    method_174nry_handlesubscriptiondeletedasync__action_113_handlesubscriptiondeletedasync_return_113_16__return -->|return| method_174nry_handlesubscriptiondeletedasync__action_113_return_113__return\n    method_174nry_handlesubscriptiondeletedasync__action_113_return_113__return -->|exception| method_174nry_handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch\n    method_174nry_handlesubscriptiondeletedasync__action_115_handlesubscriptiondeletedasync_catch_115_17__catch -->|next| method_174nry_handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear\n    method_174nry_handlesubscriptiondeletedasync__action_117_handlesubscriptiondeletedasync_log_117_18__linear -->|return| method_174nry_handlesubscriptiondeletedasync__action_118_handlesubscriptiondeletedasync_return_118_19__return\n    method_174nry_handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try -->|next| method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await\n    method_174nry_handlesubscriptiondeletedasync__action_88_try_catch_88__linear -->|next| method_174nry_handlesubscriptiondeletedasync__action_88_handlesubscriptiondeletedasync_try_88_0__try\n    method_174nry_handlesubscriptiondeletedasync__action_90_external_read_90__linear -->|next| method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition\n    method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_await_90_2__await -->|next| method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear\n    method_174nry_handlesubscriptiondeletedasync__action_90_handlesubscriptiondeletedasync_repository_read_90_1__linear -->|next| method_174nry_handlesubscriptiondeletedasync__action_90_external_read_90__linear\n    method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition -->|return-fail| method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__false\n    method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__condition -->|log-warning| method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__true\n    method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__false -->|next| method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge\n    method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge -->|next| method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition\n    method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__true -->|next| method_174nry_handlesubscriptiondeletedasync__action_91_guard_clause_91__merge\n    method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition -->|false| method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false\n    method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__condition -->|true| method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true\n    method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__false -->|next| method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge\n    method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge -->|next| method_174nry_handlesubscriptiondeletedasync__action_93_log_93__linear\n    method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__true -->|next| method_174nry_handlesubscriptiondeletedasync__action_91_handlesubscriptiondeletedasync_branch_91_3__merge\n    method_174nry_handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear -->|return| method_174nry_handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return\n    method_174nry_handlesubscriptiondeletedasync__action_93_log_93__linear -->|next| method_174nry_handlesubscriptiondeletedasync__action_93_handlesubscriptiondeletedasync_log_93_4__linear\n    method_174nry_handlesubscriptiondeletedasync__action_94_handlesubscriptiondeletedasync_return_94_5__return -->|next| method_174nry_handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await\n    method_174nry_handlesubscriptiondeletedasync__action_97_db_read_97__linear -->|next| method_174nry_handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await\n    method_174nry_handlesubscriptiondeletedasync__action_97_handlesubscriptiondeletedasync_await_97_6__await -->|next| method_174nry_handlesubscriptiondeletedasync__action_97_db_read_97__linear\n    method_174nry_handlesubscriptiondeletedasync__action_98_handlesubscriptiondeletedasync_await_98_7__await -->|read Free plan name to find DB record| method_174nry_handlesubscriptiondeletedasync__call_98_FreeName_static_property_\n    method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition -->|false| method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false\n    method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition -->|true| method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true\n    method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__false -->|next| method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge\n    method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge -->|next| method_174nry_handlesubscriptiondeletedasync__action_101_persistence_write_101__linear\n    method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__true -->|next| method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__merge\n    method_174nry_handlesubscriptiondeletedasync__call_98_FreeName_static_property_ -->|predicate p => p.PlanName == SubscriptionPlan.FreeName| method_174nry_handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync\n    method_174nry_handlesubscriptiondeletedasync__call_98_SubscriptionPlans_FirstOrDefaultAsync -->|next| method_174nry_handlesubscriptiondeletedasync__action_99_handlesubscriptiondeletedasync_branch_99_8__condition\n    method_174nry_handlesubscriptiondeletedasync__entry -->|next| method_174nry_handlesubscriptiondeletedasync__action_88_try_catch_88__linear",
      "warnings": [
        "diagram method_174nry_handlesubscriptiondeletedasync__fragment_diagram exceeds preferred complexity thresholds (47 nodes, 51 edges)."
      ]
    }
  ],
  "renderHints": {
    "preferredSurface": "three-d",
    "defaultDiagramId": "file_13phiik_billingservice_cs_execution_view",
    "controlFlowDiagramIds": [
      "method_1ctlycb_handlesubscriptionupdatedasync__fragment_diagram",
      "method_174nry_handlesubscriptiondeletedasync__fragment_diagram"
    ],
    "defaultControlFlowDiagramIdsBySymbolId": {
      "method:1ctlycb:handlesubscriptionupdatedasync": "method_1ctlycb_handlesubscriptionupdatedasync__fragment_diagram",
      "method:174nry:handlesubscriptiondeletedasync": "method_174nry_handlesubscriptiondeletedasync__fragment_diagram"
    }
  }
}