Add functionality to manage account members: implement add and remove member events, update account repository methods, and integrate with trip details for participant management.

This commit is contained in:
Van Leemput Dayron
2025-11-14 00:03:38 +01:00
parent 9101a94691
commit c322bc079a
5 changed files with 415 additions and 115 deletions

View File

@@ -40,6 +40,8 @@ class AccountBloc extends Bloc<AccountEvent, AccountState> {
on<_AccountsUpdated>(_onAccountsUpdated);
on<CreateAccount>(_onCreateAccount);
on<CreateAccountWithMembers>(_onCreateAccountWithMembers);
on<AddMemberToAccount>(_onAddMemberToAccount);
on<RemoveMemberFromAccount>(_onRemoveMemberFromAccount);
}
Future<void> _onLoadAccountsByUserId(
@@ -109,6 +111,34 @@ class AccountBloc extends Bloc<AccountEvent, AccountState> {
}
}
Future<void> _onAddMemberToAccount(
AddMemberToAccount event,
Emitter<AccountState> emit,
) async {
try {
emit(AccountLoading());
await _repository.addMemberToAccount(event.accountId, event.member);
emit(AccountOperationSuccess('Membre ajouté avec succès'));
} catch (e, stackTrace) {
_errorService.logError(e.toString(), stackTrace);
emit(AccountError('Erreur lors de l\'ajout du membre: ${e.toString()}'));
}
}
Future<void> _onRemoveMemberFromAccount(
RemoveMemberFromAccount event,
Emitter<AccountState> emit,
) async {
try {
emit(AccountLoading());
await _repository.removeMemberFromAccount(event.accountId, event.memberId);
emit(AccountOperationSuccess('Membre supprimé avec succès'));
} catch (e, stackTrace) {
_errorService.logError(e.toString(), stackTrace);
emit(AccountError('Erreur lors de la suppression du membre: ${e.toString()}'));
}
}
@override
Future<void> close() {
_accountsSubscription?.cancel();