33 lines
1.2 KiB
Dart

import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../models/fee.dart';
import '../repositories/fee_repository.dart';
import 'auth_provider.dart';
final feeRepositoryProvider = Provider<FeeRepository>((ref) {
final apiClient = ref.watch(apiClientProvider);
return FeeRepository(apiClient: apiClient);
});
final feeStatusFilterProvider = StateProvider.autoDispose<String?>((ref) => null);
final feeSummaryProvider = FutureProvider.autoDispose<FeeSummary>((ref) async {
final repository = ref.watch(feeRepositoryProvider);
return await repository.getFeeSummary();
});
final feeInvoicesProvider = FutureProvider.autoDispose<FeeInvoicesPageResult>((ref) async {
final repository = ref.watch(feeRepositoryProvider);
final status = ref.watch(feeStatusFilterProvider);
return await repository.getInvoices(status: status);
});
final feeInvoiceDetailProvider = FutureProvider.autoDispose.family<FeeInvoice, int>((ref, id) async {
final repository = ref.watch(feeRepositoryProvider);
return await repository.getInvoiceDetail(id);
});
final feePaymentsProvider = FutureProvider.autoDispose<FeePaymentsPageResult>((ref) async {
final repository = ref.watch(feeRepositoryProvider);
return await repository.getPayments();
});