namespace PlotLine.Models; public sealed class SubscriptionLevel { public int SubscriptionLevelID { get; set; } public string Name { get; set; } = string.Empty; public string DisplayName { get; set; } = string.Empty; public string? Description { get; set; } public int MaxBooks { get; set; } public int MaxChaptersPerBook { get; set; } public int MaxScenesPerBook { get; set; } public int MaxCharactersPerProject { get; set; } public int MaxStorageMB { get; set; } public int MaxCollaborators { get; set; } public bool IsActive { get; set; } public int SortOrder { get; set; } public DateTime CreatedDateUTC { get; set; } public DateTime ModifiedDateUTC { get; set; } } public class UserSubscription { public int UserSubscriptionID { get; set; } public int UserID { get; set; } public int SubscriptionLevelID { get; set; } public DateTime StartDateUTC { get; set; } public DateTime? EndDateUTC { get; set; } public bool IsActive { get; set; } public bool IsTrial { get; set; } public DateTime? TrialExpiryDateUTC { get; set; } public DateTime CreatedDateUTC { get; set; } public DateTime ModifiedDateUTC { get; set; } } public sealed class UserSubscriptionDetail : UserSubscription { public string Name { get; set; } = string.Empty; public string DisplayName { get; set; } = string.Empty; public string? Description { get; set; } public int MaxBooks { get; set; } public int MaxChaptersPerBook { get; set; } public int MaxScenesPerBook { get; set; } public int MaxCharactersPerProject { get; set; } public int MaxStorageMB { get; set; } public int MaxCollaborators { get; set; } public bool SubscriptionLevelIsActive { get; set; } public int SortOrder { get; set; } }