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