mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-06-25 12:34:08 +00:00
41 lines
999 B
Dart
41 lines
999 B
Dart
// ignore_for_file: constant_identifier_names
|
|
|
|
enum SubscriptionPlan {
|
|
Free,
|
|
Tester,
|
|
Family,
|
|
Pro,
|
|
Plus,
|
|
}
|
|
|
|
enum PremiumFeatures { RestoreFlames }
|
|
|
|
const Map<PremiumFeatures, List<SubscriptionPlan>> planPermissions = {
|
|
PremiumFeatures.RestoreFlames: [
|
|
SubscriptionPlan.Family,
|
|
SubscriptionPlan.Plus,
|
|
SubscriptionPlan.Tester,
|
|
SubscriptionPlan.Pro,
|
|
],
|
|
};
|
|
|
|
bool isUserAllowed(SubscriptionPlan plan, PremiumFeatures feature) {
|
|
final allowedPlans = planPermissions[feature] ?? [];
|
|
return allowedPlans.contains(plan);
|
|
}
|
|
|
|
bool isPayingUser(SubscriptionPlan plan) {
|
|
return plan == SubscriptionPlan.Family ||
|
|
plan == SubscriptionPlan.Pro ||
|
|
plan == SubscriptionPlan.Tester;
|
|
}
|
|
|
|
SubscriptionPlan planFromString(String value) {
|
|
final input = value.trim().toLowerCase();
|
|
for (final v in SubscriptionPlan.values) {
|
|
final name = v.name;
|
|
final compareName = name.toLowerCase();
|
|
if (compareName == input) return v;
|
|
}
|
|
return SubscriptionPlan.Free;
|
|
}
|