{"path":"NexusReader.Domain/Entities/SubscriptionPlan.cs","purpose":"Defines the domain entity SubscriptionPlan which models subscription tiers, pricing, and token/quota limits for the application.","classification":{"role":"entity","layer":"domain","confidence":0.9,"evidence":["Domain/entity pattern","Domain path heuristic","Class named SubscriptionPlan in NexusReader.Domain.Entities namespace","Contains data properties and data-annotation attributes (Key, Required, MaxLength) typical of a domain/EF entity"]},"className":"SubscriptionPlan","methods":[],"types":[{"name":"SubscriptionPlan","kind":"entity","line":5,"purpose":"Represents a subscription tier including identifiers, human name, token limits, pricing, and Stripe product mapping.","fields":[{"name":"FreeName","type":"string (const)","required":false,"line":7,"description":"Constant display name for the Free plan"},{"name":"BasicName","type":"string (const)","required":false,"line":8,"description":"Constant display name for the Basic plan"},{"name":"ProName","type":"string (const)","required":false,"line":9,"description":"Constant display name for the Pro plan"},{"name":"EnterpriseName","type":"string (const)","required":false,"line":10,"description":"Constant display name for the Enterprise plan"},{"name":"FreeId","type":"int (const)","required":false,"line":12,"description":"Constant numeric id for the Free plan"},{"name":"BasicId","type":"int (const)","required":false,"line":13,"description":"Constant numeric id for the Basic plan"},{"name":"ProId","type":"int (const)","required":false,"line":14,"description":"Constant numeric id for the Pro plan"},{"name":"EnterpriseId","type":"int (const)","required":false,"line":15,"description":"Constant numeric id for the Enterprise plan"},{"name":"Id","type":"int","required":true,"line":17,"description":"Primary key for the subscription plan (annotated with [Key])"},{"name":"PlanName","type":"string","required":true,"line":20,"description":"Human-readable plan name (Required, MaxLength 50)"},{"name":"AITokenLimit","type":"int","required":false,"line":24,"description":"Numeric limit of AI tokens allocated to this plan"},{"name":"IsUnlimitedTokens","type":"bool","required":false,"line":26,"description":"Flag indicating whether the plan has unlimited tokens"},{"name":"MonthlyPrice","type":"decimal","required":false,"line":28,"description":"Monthly price for the plan"},{"name":"StripeProductId","type":"string","required":false,"line":30,"description":"Stripe product identifier for billing integration (MaxLength 50)"}]}],"serviceRegistrations":[],"startupActions":[],"dependencies":[],"patterns":["Entity","DataAnnotations (EF Core)"],"domainConcepts":["SubscriptionPlan","Pricing","Quota/Token limits","Billing (Stripe mapping)"],"keyDetails":"Simple POCO entity used for persisting subscription tier metadata; includes constants for well-known plan names and IDs, token quota fields (limit + unlimited flag), monthly price, and Stripe product id for billing integration.","orchestrationMethods":[],"typedContracts":[{"name":"SubscriptionPlan","kind":"entity","line":5,"fieldCount":14,"evidencePaths":["NexusReader.Domain/Entities/SubscriptionPlan.cs"]}],"persistenceInteractions":[],"externalInteractions":[],"evidenceAnchors":[{"kind":"typed-contract","label":"SubscriptionPlan","line":5,"summary":"entity with 14 fields.","confidence":0.8,"evidencePaths":["NexusReader.Domain/Entities/SubscriptionPlan.cs"]}],"cacheMetadata":{"schemaVersion":2,"analysisVersion":"2026-05-23.cache-v1","contentChecksum":"7bbc9753c45b603eb7bd7496f1bdc07a53dfed27b3d6bcbd7365b5bf424efc7c","sourceByteSize":839,"analyzedAt":"2026-05-23T16:20:35.011Z","technology":"dotnet"}}