Files
TravelMate/lib/blocs/group/group_event.dart

97 lines
2.0 KiB
Dart

import 'package:equatable/equatable.dart';
import '../../data/models/group.dart';
import '../../data/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];
}