class EventModel { final String id; final String title; final String description; final String startDate; final String location; final String category; final String link; final String? imageUrl; final String creatorEmail; final String creatorFirstName; // Prénom du créateur final String creatorLastName; // Nom du créateur final String profileImageUrl; final List participants; String status; final int reactionsCount; final int commentsCount; final int sharesCount; EventModel({ required this.id, required this.title, required this.description, required this.startDate, required this.location, required this.category, required this.link, this.imageUrl, required this.creatorEmail, required this.creatorFirstName, required this.creatorLastName, required this.profileImageUrl, required this.participants, required this.status, required this.reactionsCount, required this.commentsCount, required this.sharesCount, }); factory EventModel.fromJson(Map json) { print('[LOG] Création de l\'EventModel depuis JSON'); // Utiliser les valeurs par défaut si une clé est absente final String id = json['id'] ?? 'ID Inconnu'; final String title = json['title'] ?? 'Titre Inconnu'; final String description = json['description'] ?? 'Description Inconnue'; final String startDate = json['startDate'] ?? 'Date de début Inconnue'; final String location = json['location'] ?? 'Localisation Inconnue'; final String category = json['category'] ?? 'Catégorie Inconnue'; final String link = json['link'] ?? 'Lien Inconnu'; final String? imageUrl = json['imageUrl']; final String creatorEmail = json['creatorEmail'] ?? 'Email Inconnu'; final String creatorFirstName = json['creatorFirstName']; // Ajout du prénom final String creatorLastName = json['creatorLastName']; // Ajout du nom final String profileImageUrl = json['profileImageUrl']; // Ajout du nom final List participants = json['participants'] ?? []; String status = json['status'] ?? 'ouvert'; final int reactionsCount = json['reactionsCount'] ?? 0; final int commentsCount = json['commentsCount'] ?? 0; final int sharesCount = json['sharesCount'] ?? 0; print('[LOG] Champs extraits depuis JSON :'); print(' - ID: $id'); print(' - Titre: $title'); print(' - Description: $description'); print(' - Date de début: $startDate'); print(' - Localisation: $location'); print(' - Catégorie: $category'); print(' - Lien: $link'); print(' - URL de l\'image: ${imageUrl ?? "Aucune"}'); print(' - Email du créateur: $creatorEmail'); print(' - Prénom du créateur: $creatorFirstName'); print(' - Nom du créateur: $creatorLastName'); print(' - Image de profile du créateur: $profileImageUrl'); print(' - Participants: ${participants.length} participants'); print(' - Statut: $status'); print(' - Nombre de réactions: $reactionsCount'); print(' - Nombre de commentaires: $commentsCount'); print(' - Nombre de partages: $sharesCount'); return EventModel( id: id, title: title, description: description, startDate: startDate, location: location, category: category, link: link, imageUrl: imageUrl, creatorEmail: creatorEmail, creatorFirstName: creatorFirstName, // Ajout du prénom creatorLastName: creatorLastName, // Ajout du nom profileImageUrl: profileImageUrl, participants: participants, status: status, reactionsCount: reactionsCount, commentsCount: commentsCount, sharesCount: sharesCount, ); } Map toJson() { print('[LOG] Conversion de EventModel en JSON'); return { 'id': id, 'title': title, 'description': description, 'startDate': startDate, 'location': location, 'category': category, 'link': link, 'imageUrl': imageUrl, 'creatorEmail': creatorEmail, 'creatorFirstName': creatorFirstName, // Ajout du prénom 'creatorLastName': creatorLastName, // Ajout du nom 'profileImageUrl': profileImageUrl, 'participants': participants, 'status': status, 'reactionsCount': reactionsCount, 'commentsCount': commentsCount, 'sharesCount': sharesCount, }; } }