PlotDirector/PlotLine/Models/SubscriptionModels.cs
2026-06-07 10:13:16 +01:00

49 lines
1.8 KiB
C#

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; }
}