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['userId'] ?? '',
      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)
    };
  }
}
