using Webzine.Entity;

namespace Webzine.WebApplication.ViewModels.Titre;

/// <summary>
/// Contient les détails d'un titre, ainsi que les commentaires associés.
/// </summary>
public class TitreContent
{
    /// <summary>
    /// Définit l'identifiant du titre.
    /// </summary>
    public int IdTitre { get; set; }

    /// <summary>
    /// Définit le titre du titre.
    /// </summary>
    public string Libelle { get; set; }

    /// <summary>
    /// Définit la chronique du titre.
    /// </summary>
    public string Chronique { get; set; }

    /// <summary>
    /// Définit la date de sortie du titre.
    /// </summary>
    public DateTime DateSortie { get; set; }

    /// <summary>
    /// Définit le nombre de likes du titre.
    /// </summary>
    public int NbLikes { get; set; }

    /// <summary>
    /// Définit l'url de la jaquette de l'album associé au titre.
    /// </summary>
    public string UrlJaquette { get; set; }

    /// <summary>
    /// Définit l'url d'écoute du titre.
    /// </summary>
    public string UrlEcoute { get; set; }

    /// <summary>
    /// Définit le nom de l'artiste associé au titre.
    /// </summary>
    public string ArtisteNom { get; set; }

    /// <summary>
    /// Définit le nom de l'album associé au titre.
    /// </summary>
    public List<Style> Styles { get; set; } = new();

    /// <summary>
    /// Définit la liste des commentaires associés au titre.
    /// </summary>
    public List<Commentaire> Commentaires { get; set; } = new();
}