Files
afterwork/lib/data/models/event_model.dart
2024-11-17 23:00:18 +00:00

125 lines
4.4 KiB
Dart

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<dynamic> 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<String, dynamic> 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<dynamic> 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<String, dynamic> 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,
};
}
}