This commit is contained in:
2026-06-29 20:43:13 +03:00
parent 19db4fe688
commit 64a3f4e34e
24 changed files with 1154 additions and 152 deletions
+10 -12
View File
@@ -1,29 +1,27 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../features/dashboard/provider.dart';
import '../models/user_model.dart';
import '../services/premium_manager.dart';
import 'billing_provider.dart';
class CurrentUserNotifier extends Notifier<UserModel> {
static const _key = 'user_plan';
@override
UserModel build() {
final prefs = ref.watch(sharedPreferencesProvider);
final planName = prefs.getString(_key);
final plan = UserPlan.values.firstWhere(
(e) => e.name == planName,
orElse: () => UserPlan.free,
);
return UserModel(plan: plan);
final billing = ref.watch(billingServiceProvider);
final manager = PremiumManager(prefs, billing);
return UserModel(plan: manager.currentPlan);
}
Future<void> setPlan(UserPlan plan) async {
final prefs = ref.read(sharedPreferencesProvider);
state = UserModel(plan: plan);
await prefs.setString(_key, plan.name);
}
Future<void> toggleVip() async {
await setPlan(state.isVip ? UserPlan.free : UserPlan.vip);
Future<void> refreshFromPremium() async {
final prefs = ref.read(sharedPreferencesProvider);
final billing = ref.read(billingServiceProvider);
final manager = PremiumManager(prefs, billing);
state = UserModel(plan: manager.currentPlan);
}
}