This commit is contained in:
2026-06-28 18:33:46 +03:00
parent 65ea30339d
commit 4727835402
22 changed files with 534 additions and 54 deletions
@@ -0,0 +1,6 @@
abstract class FeatureFlags {
bool get canEditCardColors;
bool get canEditCardHeight;
bool get canEditCardTextColor;
int get maxAccounts;
}
@@ -0,0 +1,12 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../providers/current_user_provider.dart';
import 'feature_flags.dart';
import 'free_feature_flags.dart';
import 'vip_feature_flags.dart';
final featureFlagsProvider = Provider<FeatureFlags>((ref) {
final user = ref.watch(currentUserProvider);
return user.isVip
? const VipFeatureFlags()
: const FreeFeatureFlags();
});
@@ -0,0 +1,17 @@
import 'feature_flags.dart';
class FreeFeatureFlags implements FeatureFlags {
const FreeFeatureFlags();
@override
bool get canEditCardColors => false;
@override
bool get canEditCardHeight => false;
@override
bool get canEditCardTextColor => false;
@override
int get maxAccounts => 3;
}
@@ -0,0 +1,17 @@
import 'feature_flags.dart';
class VipFeatureFlags implements FeatureFlags {
const VipFeatureFlags();
@override
bool get canEditCardColors => true;
@override
bool get canEditCardHeight => true;
@override
bool get canEditCardTextColor => true;
@override
int get maxAccounts => 8;
}