42 lines
1.2 KiB
Dart
42 lines
1.2 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 nom,
|
|
required String prenoms,
|
|
required String email,
|
|
required String motDePasse,
|
|
}) : super(
|
|
userId: userId,
|
|
nom: nom,
|
|
prenoms: prenoms,
|
|
email: email,
|
|
motDePasse: motDePasse,
|
|
);
|
|
|
|
/// 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['id'] ?? '',
|
|
nom: json['nom'] ?? 'Inconnu',
|
|
prenoms: json['prenoms'] ?? 'Inconnu',
|
|
email: json['email'] ?? 'inconnu@example.com',
|
|
motDePasse: json['motDePasse'] ?? '',
|
|
);
|
|
}
|
|
|
|
/// Convertit le `UserModel` en JSON pour l'envoi vers l'API.
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': userId,
|
|
'nom': nom,
|
|
'prenoms': prenoms,
|
|
'email': email,
|
|
'motDePasse': motDePasse, // Mot de passe en clair (comme demandé temporairement)
|
|
};
|
|
}
|
|
}
|