import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../core/api/api_client.dart'; import '../../core/cache/cached.dart'; import 'data/tax_api.dart'; final taxApiProvider = Provider((ref) => TaxApi(ref.watch(apiProvider).dio)); final taxYearProvider = StateProvider((ref) => DateTime.now().year); /// Optional account filter; null = all accounts. final taxAccountProvider = StateProvider((ref) => null); /// See `docs/ai/offline-cache.md`. final taxSummaryProvider = FutureProvider.autoDispose>((ref) async { return ref.watch(taxApiProvider).summary( year: ref.watch(taxYearProvider), accountId: ref.watch(taxAccountProvider), ); }); final taxLotsProvider = FutureProvider.autoDispose>>((ref) async { return ref.watch(taxApiProvider).lots( year: ref.watch(taxYearProvider), accountId: ref.watch(taxAccountProvider), ); }); void invalidateTaxProviders(WidgetRef ref) { ref.invalidate(taxSummaryProvider); ref.invalidate(taxLotsProvider); }