Files
TravelMate/lib/blocs/expense/expense_event.dart
Dayron 4edbd1cf34 feat: Add User and UserBalance models with serialization methods
feat: Implement BalanceRepository for group balance calculations

feat: Create ExpenseRepository for managing expenses

feat: Add services for handling expenses and storage operations

fix: Update import paths for models in repositories and services

refactor: Rename CountContent to AccountContent in HomePage

chore: Add StorageService for image upload and management
2025-10-21 16:02:58 +02:00

88 lines
1.7 KiB
Dart

import 'package:equatable/equatable.dart';
import '../../models/expense.dart';
import 'dart:io';
abstract class ExpenseEvent extends Equatable {
const ExpenseEvent();
@override
List<Object?> get props => [];
}
class LoadExpensesByGroup extends ExpenseEvent {
final String groupId;
const LoadExpensesByGroup(this.groupId);
@override
List<Object?> get props => [groupId];
}
class CreateExpense extends ExpenseEvent {
final Expense expense;
final File? receiptImage;
const CreateExpense({
required this.expense,
this.receiptImage,
});
@override
List<Object?> get props => [expense, receiptImage];
}
class UpdateExpense extends ExpenseEvent {
final Expense expense;
final File? newReceiptImage;
const UpdateExpense({
required this.expense,
this.newReceiptImage,
});
@override
List<Object?> get props => [expense, newReceiptImage];
}
class DeleteExpense extends ExpenseEvent {
final String expenseId;
const DeleteExpense(this.expenseId);
@override
List<Object?> get props => [expenseId];
}
class MarkSplitAsPaid extends ExpenseEvent {
final String expenseId;
final String userId;
const MarkSplitAsPaid({
required this.expenseId,
required this.userId,
});
@override
List<Object?> get props => [expenseId, userId];
}
class ArchiveExpense extends ExpenseEvent {
final String expenseId;
const ArchiveExpense(this.expenseId);
@override
List<Object?> get props => [expenseId];
}
// Événement privé pour les mises à jour du stream
class ExpensesUpdated extends ExpenseEvent {
final List<Expense> expenses;
final String? error;
const ExpensesUpdated(this.expenses, {this.error});
@override
List<Object?> get props => [expenses, error];
}