using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace MangaMap.Model
{
///
/// Représente un utilisateur de l'application de gestion de listes d'anime.
///
[DataContract]
public class Utilisateur : Personne
{
///
/// Obtient ou définit le nom de l'utilisateur.
///
[DataMember]
public string nom { get; private set; }
///
/// Obtient ou définit le prénom de l'utilisateur.
///
[DataMember]
public string prenom { get; private set; }
///
/// Obtient ou définit l'âge de l'utilisateur.
///
[DataMember]
public int age { get; private set; }
///
/// Obtient ou définit la liste des oeuvres en visionnage de l'utilisateur.
///
[DataMember]
public ObservableCollection ListeOeuvreEnVisionnage { get; set; }
///
/// Obtient ou définit la liste des oeuvres déjà vues par l'utilisateur.
///
[DataMember]
public ObservableCollection ListeOeuvreDejaVu { get; set; }
///
/// Obtient ou définit la liste des oeuvres à voir ultérieurement par l'utilisateur.
///
[DataMember]
public ObservableCollection ListeOeuvrePourPlusTard { get; set; }
///
/// Obtient ou définit la liste des oeuvres favorites de l'utilisateur.
///
[DataMember]
public ObservableCollection ListeOeuvreFavorites { get; set; }
///
/// Obtient ou définit le dictionnaire des notes et nombres associés par l'utilisateur.
///
[DataMember]
public Dictionary> notesNombres { get; set; }
///
/// Initialise une nouvelle instance de la classe Utilisateur avec les paramètres spécifiés.
///
/// L'adresse email de l'utilisateur.
/// Le pseudo de l'utilisateur.
/// Le mot de passe de l'utilisateur.
/// Le nom de l'utilisateur.
/// Le prénom de l'utilisateur.
/// L'âge de l'utilisateur.
public Utilisateur(string email, string pseudo, string mdp, string nom, string prenom, int age)
{
Email = email;
Pseudo = pseudo;
MotDePasse = mdp;
this.nom = nom;
this.prenom = prenom;
this.age = age;
ListeOeuvreEnVisionnage = new ObservableCollection();
ListeOeuvreDejaVu = new ObservableCollection();
ListeOeuvrePourPlusTard = new ObservableCollection();
ListeOeuvreFavorites = new ObservableCollection();
notesNombres = new Dictionary>();
}
///
/// Initialise une nouvelle instance par défaut de la classe Utilisateur.
///
public Utilisateur()
{
ListeOeuvreEnVisionnage = new ObservableCollection();
ListeOeuvreDejaVu = new ObservableCollection();
ListeOeuvrePourPlusTard = new ObservableCollection();
ListeOeuvreFavorites = new ObservableCollection();
notesNombres = new Dictionary>();
}
///
/// Supprime l'utilisateur en réinitialisant les propriétés nom, prénom et âge.
///
public void SupprimerUtilisateur()
{
this.nom = null;
this.prenom = null;
this.age = 0;
}
}
}