import 'package:equatable/equatable.dart'; import '../../models/group.dart'; import '../../models/group_member.dart'; abstract class GroupEvent extends Equatable { const GroupEvent(); @override List get props => []; } // NOUVEAU : Charger les groupes par userId class LoadGroupsByUserId extends GroupEvent { final String userId; const LoadGroupsByUserId(this.userId); @override List 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 get props => [tripId]; } // Créer un groupe simple class CreateGroup extends GroupEvent { final Group group; const CreateGroup(this.group); @override List get props => [group]; } // Créer un groupe avec ses membres class CreateGroupWithMembers extends GroupEvent { final Group group; final List members; const CreateGroupWithMembers({ required this.group, required this.members, }); @override List 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 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 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 get props => [groupId, group]; } // Supprimer un groupe class DeleteGroup extends GroupEvent { final String tripId; const DeleteGroup(this.tripId); @override List get props => [tripId]; }