{"path":"NexusReader.Data/Migrations/20260506184227_UpdateSubscriptionPlanIsUnlimitedTokens.cs","purpose":"EF Core migration that adds an IsUnlimitedTokens column to the SubscriptionPlans table and adjusts seeded SubscriptionPlans data (AITokenLimit and StripeProductId) to reflect the new column; reversible via Down.","classification":{"role":"database-config","layer":"data","confidence":0.9,"evidence":["DTO/view-model naming pattern","class inherits from Migration (Microsoft.EntityFrameworkCore.Migrations)","namespace NexusReader.Data.Migrations and file path Data/Migrations","methods Up and Down perform schema and seed-data changes"]},"className":"UpdateSubscriptionPlanIsUnlimitedTokens","methods":[{"name":"Up","line":11,"endLine":47,"signature":"(migrationBuilder: MigrationBuilder) -> void","purpose":"Apply the migration: add IsUnlimitedTokens column to SubscriptionPlans and update seeded data for multiple plan rows.","calls":[],"actions":[{"id":"schema-change_13","kind":"mapping","label":"AddColumn IsUnlimitedTokens on SubscriptionPlans","line":13,"detail":"migrationBuilder.AddColumn<bool>(name: \"IsUnlimitedTokens\", table: \"SubscriptionPlans\", type: \"boolean\", nullable: false, defaultValue: false)","visibility":"detail-only","confidence":0.7},{"id":"data-seed_20","kind":"mapping","label":"Update seed row Id=1","line":20,"detail":"UpdateData on SubscriptionPlans Id=1: set AITokenLimit=5000, IsUnlimitedTokens=false, StripeProductId=\"prod_Free789\"","visibility":"detail-only","confidence":0.7},{"id":"data-seed_27","kind":"mapping","label":"Update seed row Id=2","line":27,"detail":"UpdateData on SubscriptionPlans Id=2: set IsUnlimitedTokens=false","visibility":"detail-only","confidence":0.7},{"id":"data-seed_34","kind":"mapping","label":"Update seed row Id=3","line":34,"detail":"UpdateData on SubscriptionPlans Id=3: set IsUnlimitedTokens=false","visibility":"detail-only","confidence":0.7},{"id":"data-seed_41","kind":"mapping","label":"Update seed row Id=4 (make unlimited)","line":41,"detail":"UpdateData on SubscriptionPlans Id=4: set AITokenLimit=1000000000, IsUnlimitedTokens=true","visibility":"detail-only","confidence":0.7}]},{"name":"Down","line":50,"endLine":69,"signature":"(migrationBuilder: MigrationBuilder) -> void","purpose":"Revert the migration: remove IsUnlimitedTokens column and restore previous seeded SubscriptionPlans values.","calls":[],"actions":[{"id":"schema-change_52","kind":"mapping","label":"DropColumn IsUnlimitedTokens on SubscriptionPlans","line":52,"detail":"migrationBuilder.DropColumn(name: \"IsUnlimitedTokens\", table: \"SubscriptionPlans\")","visibility":"detail-only","confidence":0.7},{"id":"data-seed_56","kind":"mapping","label":"Revert seed row Id=1","line":56,"detail":"UpdateData on SubscriptionPlans Id=1: set AITokenLimit=1000, StripeProductId=\"\"","visibility":"detail-only","confidence":0.7},{"id":"data-seed_63","kind":"mapping","label":"Revert seed row Id=4","line":63,"detail":"UpdateData on SubscriptionPlans Id=4: set AITokenLimit=500000","visibility":"detail-only","confidence":0.7}]}],"types":[{"name":"UpdateSubscriptionPlanIsUnlimitedTokens","kind":"model","line":8,"purpose":"EF Core Migration type that encapsulates schema and seed-data changes to SubscriptionPlans.","fields":[]}],"serviceRegistrations":[],"startupActions":[],"dependencies":[],"patterns":["Data Migration","Seed Data Update"],"domainConcepts":["SubscriptionPlan","AITokenLimit","IsUnlimitedTokens","StripeProductId"],"keyDetails":"Adds non-nullable boolean IsUnlimitedTokens (default false) and updates seeded plans: Id=1 -> smaller token limit and free product id, Id=4 -> very large token limit with IsUnlimitedTokens=true; Down reverses these changes.","orchestrationMethods":[],"typedContracts":[{"name":"UpdateSubscriptionPlanIsUnlimitedTokens","kind":"model","line":8,"fieldCount":0,"evidencePaths":["NexusReader.Data/Migrations/20260506184227_UpdateSubscriptionPlanIsUnlimitedTokens.cs"]}],"persistenceInteractions":[],"externalInteractions":[],"evidenceAnchors":[{"kind":"typed-contract","label":"UpdateSubscriptionPlanIsUnlimitedTokens","line":8,"summary":"model with 0 fields.","confidence":0.8,"evidencePaths":["NexusReader.Data/Migrations/20260506184227_UpdateSubscriptionPlanIsUnlimitedTokens.cs"]}],"cacheMetadata":{"schemaVersion":2,"analysisVersion":"2026-05-23.cache-v1","contentChecksum":"bbc94625095a587279de6ebedb4aedf518a34cdca763eb9b67a4b74f17a9dfae","sourceByteSize":2427,"analyzedAt":"2026-05-23T16:24:17.987Z","technology":"dotnet"}}