Files
jobtrackingapp/JobTrackerApi/Models/AccountPlans.cs
T

21 lines
845 B
C#

namespace JobTrackerApi.Models;
public sealed record AccountEntitlements(bool Ai, bool ProThemes, long StorageBytes, int MonthlyAiCalls, long MonthlyAiTokens);
public static class AccountPlans
{
public static bool IsPremiumSubscriptionStatus(string? status) =>
status is "active" or "trialing";
public static AccountEntitlements ForRoles(IList<string>? roles)
{
var premium = roles?.Contains("Premium", StringComparer.OrdinalIgnoreCase) == true
|| roles?.Contains("Admin", StringComparer.OrdinalIgnoreCase) == true;
return premium
? new AccountEntitlements(true, true, 5_000_000_000, 250, 1_000_000)
: new AccountEntitlements(false, false, 250_000_000, 0, 0);
}
public static string Name(AccountEntitlements entitlements) => entitlements.Ai ? "pro" : "free";
}