import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../api/budget_api.dart'; import '../models/budget.dart'; /// 当月预算(后端只提供当月数据)。 /// /// 做成 AsyncNotifier 而不是 FutureProvider,是为了能直接调用 /// [BudgetNotifier.setMonthBudget] 修改预算并拿到后端返回的最新值。 class BudgetNotifier extends AsyncNotifier { @override Future build() => ref.watch(budgetApiProvider).getBudget(); /// 设置/修改当月预算(立即生效,可随时修改) Future setMonthBudget(double amount) async { final updated = await ref.read(budgetApiProvider).setCurrentBudget(amount); state = AsyncData(updated); } } final budgetProvider = AsyncNotifierProvider(BudgetNotifier.new);