first commit

This commit is contained in:
2026-02-07 15:57:09 +07:00
commit 157096f164
1153 changed files with 415766 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../model/transaction_model.dart';
import '../repo/transaction_repo.dart';
final transactionRepoProvider = Provider<TransactionRepo>((ref) {
return TransactionRepo();
});
// final filteredTransactionProvider = FutureProvider.family<TransactionModel, TransactionFilteredModel>(
// (ref, filter) async {
// final repo = ref.read(transactionRepoProvider);
//
// return repo.fetchTransactionList(
// duration: filter.duration,
// fromDate: filter.fromDate,
// toDate: filter.toDate,
// platform: filter.transactionType == 'all_transaction' ? null : filter.transactionType,
// partyId: filter.party == 'all_parties' ? null : int.tryParse(filter.party!),
// );
// },
// );
class TransactionFilteredModel {
final String duration;
final String? fromDate;
final String? toDate;
final String? transactionType;
final String? party;
const TransactionFilteredModel({
required this.duration,
this.fromDate,
this.toDate,
this.transactionType,
this.party,
});
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is TransactionFilteredModel &&
runtimeType == other.runtimeType &&
duration == other.duration &&
fromDate == other.fromDate &&
toDate == other.toDate &&
transactionType == other.transactionType &&
party == other.party;
@override
int get hashCode =>
duration.hashCode ^ fromDate.hashCode ^ toDate.hashCode ^ transactionType.hashCode ^ party.hashCode;
}
final filteredTransactionProvider = FutureProvider.autoDispose.family<TransactionModel, TransactionFilteredModel>(
(ref, filter) async {
final repo = ref.read(transactionRepoProvider);
// Convert party string to int if it's not "all_parties"
int? partyId;
if (filter.party != null && filter.party!.isNotEmpty && filter.party != 'all_parties') {
partyId = int.tryParse(filter.party!);
}
return repo.fetchTransactionList(
duration: filter.duration,
fromDate: filter.fromDate,
toDate: filter.toDate,
platform: filter.transactionType,
partyId: partyId,
);
},
);