Files
TravelMate/lib/blocs/count/count_state.dart
Dayron ce754c1e6c feat: Add expense management features with tabs for expenses, balances, and settlements
- Implemented ExpensesTab to display a list of expenses with details.
- Created GroupExpensesPage to manage group expenses with a tabbed interface.
- Added SettlementsTab to show optimized settlements between users.
- Developed data models for Expense and Balance, including necessary methods for serialization.
- Introduced CountRepository for Firestore interactions related to expenses.
- Added CountService to handle business logic for expenses and settlements.
- Integrated image picker for receipt uploads.
- Updated main.dart to include CountBloc and CountRepository.
- Enhanced pubspec.yaml with new dependencies for image picking and Firebase storage.

Not Tested yet
2025-10-20 19:22:57 +02:00

43 lines
982 B
Dart

import 'package:equatable/equatable.dart';
import '../../data/models/expense.dart';
import '../../data/models/balance.dart';
abstract class CountState extends Equatable {
const CountState();
@override
List<Object?> get props => [];
}
class CountInitial extends CountState {}
class CountLoading extends CountState {}
class ExpensesLoaded extends CountState {
final String groupId;
final List<Expense> expenses;
final List<Balance> balances;
final List<Settlement> settlements;
final Map<ExpenseCurrency, double> exchangeRates;
const ExpensesLoaded({
required this.groupId,
required this.expenses,
required this.balances,
required this.settlements,
required this.exchangeRates,
});
@override
List<Object?> get props => [groupId, expenses, balances, settlements, exchangeRates];
}
class CountError extends CountState {
final String message;
const CountError(this.message);
@override
List<Object?> get props => [message];
}