using System.ComponentModel.DataAnnotations;

namespace Webzine.Entity
{
    /// <summary>
    /// Classe représentant un artiste.
    /// Lien avec l'entité <see cref="Titre"/> : un artiste peut avoir plusieurs titres, mais un titre n'a qu'un seul artiste.
    /// </summary>
    public class Artiste
    {
        /// <summary>
        /// Identifiant unique de l'artiste.
        /// </summary>
        public int IdArtiste { get; set; }

        /// <summary>
        /// Nom de l'artiste. Doit être compris entre 2 et 50 caractères et est obligatoire.
        /// </summary>
        [Required]
        [MinLength(2)]
        [MaxLength(50)]
        [Display(Name = "Nom de l'artiste")]
        public string Nom { get; set; }

        /// <summary>
        /// Biographie de l'artiste, qui peut contenir une description de sa carrière, de son style musical, etc. Doit être compris entre 10 et 4000 caractères et est obligatoire.
        /// </summary>
        public string Biographie { get; set; }

        /// <summary>
        /// Liste des titres associés à cet artiste. Un artiste peut avoir plusieurs titres, mais un titre n'a qu'un seul artiste.
        /// </summary>
        public List<Titre> Titres { get; set; }
    }
}
