import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:travel_mate/data/models/group.dart'; class GroupService { final FirebaseFirestore _firestore = FirebaseFirestore.instance; Stream> getGroupsStream() { return _firestore.collection('groups').snapshots().map((snapshot) { return snapshot.docs.map((doc) { return Group.fromMap(doc.data(), doc.id); }).toList(); }); } Future createGroup(Group group) async { try { await _firestore.collection('groups').add(group.toMap()); return true; } catch (e) { print('Erreur lors de la création du groupe: $e'); return false; } } Future updateGroup(Group group) async { try { await _firestore.collection('groups').doc(group.id).update(group.toMap()); return true; } catch (e) { print('Erreur lors de la mise à jour du groupe: $e'); return false; } } Future deleteGroup(String groupId) async { try { await _firestore.collection('groups').doc(groupId).delete(); return true; } catch (e) { print('Erreur lors de la suppression du groupe: $e'); return false; } } // Stream pour obtenir les groupes d'un utilisateur spécifique Stream> getGroupsStreamByUser(String userId) { return _firestore .collection('groups') .where('members', arrayContains: userId) .snapshots() .map((snapshot) { print('Groupes trouvés pour l\'utilisateur $userId: ${snapshot.docs.length}'); return snapshot.docs.map((doc) { final group = Group.fromMap(doc.data(), doc.id); print('Groupe: ${group.name}, Membres: ${group.members.length}'); return group; }).toList(); }); } Future removeMemberFromGroup(String groupId, String memberId) async { // TODO: Implémenter la suppression d'un membre d'un groupe } Future addMemberToGroup(String groupId, String memberId) async { // TODO: Implémenter l'ajout d'un membre à un groupe } }