feat: Ajout du contrôleur Titre et des vues associées pour gérer les titres musicaux, y compris les détails, les styles, les likes et les commentaires #16 #18 #19 #20

This commit is contained in:
mirage
2026-03-05 10:29:49 +01:00
parent d13f6113df
commit a5757903ef
18 changed files with 583 additions and 71 deletions

View File

@@ -0,0 +1,19 @@
using System.ComponentModel.DataAnnotations;
namespace Webzine.WebApplication.ViewsModels.Titre;
public class TitreComment
{
[Required]
public int IdTitre { get; set; }
[Required]
[MinLength(2)]
[MaxLength(30)]
public string Auteur { get; set; }
[Required]
[MinLength(10)]
[MaxLength(1000)]
public string Contenu { get; set; }
}

View File

@@ -0,0 +1,26 @@
using Webzine.Entity;
namespace Webzine.WebApplication.ViewsModels.Titre;
public class TitreContent
{
public int IdTitre { get; set; }
public string Libelle { get; set; }
public string Chronique { get; set; }
public DateTime DateSortie { get; set; }
public int NbLikes { get; set; }
public string UrlJaquette { get; set; }
public string UrlEcoute { get; set; }
public string ArtisteNom { get; set; }
public List<Style> Styles { get; set; } = new();
public List<Commentaire> Commentaires { get; set; } = new();
}

View File

@@ -0,0 +1,7 @@
namespace Webzine.WebApplication.ViewsModels.Titre;
public class TitreDetail
{
public TitreContent Details { get; set; }
public TitreComment CommentForm { get; set; }
}

View File

@@ -0,0 +1,6 @@
namespace Webzine.WebApplication.ViewsModels.Titre;
public class TitreLike
{
public int IdTitre { get; set; }
}

View File

@@ -0,0 +1,8 @@
namespace Webzine.WebApplication.ViewsModels.Titre;
public class TitreStyle
{
public string? StyleName { get; set; }
public List<TitreStyleItem> Titres { get; set; } = new();
}

View File

@@ -0,0 +1,14 @@
namespace Webzine.WebApplication.ViewsModels.Titre;
public class TitreStyleItem
{
public int IdTitre { get; set; }
public string? Libelle { get; set; }
public string? ArtisteNom { get; set; }
public string? UrlJaquette { get; set; }
public int Duree { get; set; }
}