ce76046a29
- consolidate API ownership and remove dead vendor code - add Stripe billing, learning paths, and public CV hardening - add migration, recovery, security, audit, and browser gates
18 lines
790 B
C#
18 lines
790 B
C#
namespace JobTrackerApi.Models;
|
|
|
|
public sealed record AccountEntitlements(bool AdvancedAi, bool PremiumThemes, bool Automation, bool Analytics, 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) || roles.Contains("Admin", StringComparer.OrdinalIgnoreCase);
|
|
return premium
|
|
? new AccountEntitlements(true, true, true, true, 5_000_000_000, 250, 1_000_000)
|
|
: new AccountEntitlements(false, false, false, false, 250_000_000, 25, 100_000);
|
|
}
|
|
}
|