Files
TravelMate/lib/blocs/group/group_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

97 lines
2.0 KiB
Dart

import 'package:equatable/equatable.dart';
import '../../models/group.dart';
import '../../models/group_member.dart';
abstract class GroupEvent extends Equatable {
const GroupEvent();
@override
List<Object?> get props => [];
}
// NOUVEAU : Charger les groupes par userId
class LoadGroupsByUserId extends GroupEvent {
final String userId;
const LoadGroupsByUserId(this.userId);
@override
List<Object?> get props => [userId];
}
// Charger les groupes d'un voyage (conservé pour compatibilité)
class LoadGroupsByTrip extends GroupEvent {
final String tripId;
const LoadGroupsByTrip(this.tripId);
@override
List<Object?> get props => [tripId];
}
// Créer un groupe simple
class CreateGroup extends GroupEvent {
final Group group;
const CreateGroup(this.group);
@override
List<Object?> get props => [group];
}
// Créer un groupe avec ses membres
class CreateGroupWithMembers extends GroupEvent {
final Group group;
final List<GroupMember> members;
const CreateGroupWithMembers({
required this.group,
required this.members,
});
@override
List<Object?> get props => [group, members];
}
// Ajouter un membre
class AddMemberToGroup extends GroupEvent {
final String groupId;
final GroupMember member;
const AddMemberToGroup(this.groupId, this.member);
@override
List<Object?> get props => [groupId, member];
}
// Supprimer un membre
class RemoveMemberFromGroup extends GroupEvent {
final String groupId;
final String userId;
const RemoveMemberFromGroup(this.groupId, this.userId);
@override
List<Object?> get props => [groupId, userId];
}
// Mettre à jour un groupe
class UpdateGroup extends GroupEvent {
final String groupId;
final Group group;
const UpdateGroup(this.groupId, this.group);
@override
List<Object?> get props => [groupId, group];
}
// Supprimer un groupe
class DeleteGroup extends GroupEvent {
final String tripId;
const DeleteGroup(this.tripId);
@override
List<Object?> get props => [tripId];
}