feat: Implement group management with BLoC pattern; add GroupBloc, GroupRepository, and related models
NOT FUNCTIONNAL
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../data/models/group.dart';
|
||||
import '../../data/models/group_member.dart';
|
||||
|
||||
abstract class GroupEvent extends Equatable {
|
||||
const GroupEvent();
|
||||
@@ -8,64 +9,89 @@ abstract class GroupEvent extends Equatable {
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class GroupLoadRequested extends GroupEvent {
|
||||
// NOUVEAU : Charger les groupes par userId
|
||||
class LoadGroupsByUserId extends GroupEvent {
|
||||
final String userId;
|
||||
|
||||
const GroupLoadRequested({required this.userId});
|
||||
const LoadGroupsByUserId(this.userId);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [userId];
|
||||
}
|
||||
|
||||
class GroupCreateRequested extends GroupEvent {
|
||||
// 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 GroupCreateRequested({required this.group});
|
||||
const CreateGroup(this.group);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [group];
|
||||
}
|
||||
|
||||
class GroupUpdateRequested extends GroupEvent {
|
||||
// Créer un groupe avec ses membres
|
||||
class CreateGroupWithMembers extends GroupEvent {
|
||||
final Group group;
|
||||
final List<GroupMember> members;
|
||||
|
||||
const GroupUpdateRequested({required this.group});
|
||||
const CreateGroupWithMembers({
|
||||
required this.group,
|
||||
required this.members,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [group];
|
||||
List<Object?> get props => [group, members];
|
||||
}
|
||||
|
||||
class GroupDeleteRequested extends GroupEvent {
|
||||
// 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 groupId;
|
||||
|
||||
const GroupDeleteRequested({required this.groupId});
|
||||
const DeleteGroup(this.groupId);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [groupId];
|
||||
}
|
||||
|
||||
class GroupMemberAddRequested extends GroupEvent {
|
||||
final String groupId;
|
||||
final String memberId;
|
||||
|
||||
const GroupMemberAddRequested({
|
||||
required this.groupId,
|
||||
required this.memberId,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [groupId, memberId];
|
||||
}
|
||||
|
||||
class GroupMemberRemoveRequested extends GroupEvent {
|
||||
final String groupId;
|
||||
final String memberId;
|
||||
|
||||
const GroupMemberRemoveRequested({
|
||||
required this.groupId,
|
||||
required this.memberId,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [groupId, memberId];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user