46 lines
1.4 KiB
Dart
46 lines
1.4 KiB
Dart
import '../../domain/entities/user.dart';
|
|
|
|
/// Modèle représentant l'utilisateur dans l'application AfterWork.
|
|
/// Ce modèle est utilisé pour la conversion JSON et l'interaction avec l'API.
|
|
class UserModel extends User {
|
|
UserModel({
|
|
required String userId,
|
|
required String userLastName,
|
|
required String userFirstName,
|
|
required String email,
|
|
required String motDePasse,
|
|
required String profileImageUrl,
|
|
}) : super(
|
|
userId: userId,
|
|
userLastName: userLastName,
|
|
userFirstName: userFirstName,
|
|
email: email,
|
|
motDePasse: motDePasse,
|
|
profileImageUrl: profileImageUrl,
|
|
);
|
|
|
|
/// Factory pour créer un `UserModel` à partir d'un JSON reçu depuis l'API.
|
|
factory UserModel.fromJson(Map<String, dynamic> json) {
|
|
return UserModel(
|
|
userId: json['userId'] ?? '',
|
|
userLastName: json['nom'] ?? 'Inconnu',
|
|
userFirstName: json['prenoms'] ?? 'Inconnu',
|
|
email: json['email'] ?? 'inconnu@example.com',
|
|
motDePasse: json['motDePasse'] ?? '',
|
|
profileImageUrl: json['profileImageUrl'] ?? '',
|
|
);
|
|
}
|
|
|
|
/// Convertit le `UserModel` en JSON pour l'envoi vers l'API.
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': userId,
|
|
'nom': userLastName,
|
|
'prenoms': userFirstName,
|
|
'email': email,
|
|
'motDePasse': motDePasse, // Mot de passe en clair (comme demandé temporairement)
|
|
'profileImageUrl':profileImageUrl,
|
|
};
|
|
}
|
|
}
|