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
97 lines
2.0 KiB
Dart
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];
|
|
} |