33 lines
1.2 KiB
Dart
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();
|
|
});
|