Ajoute les thèmes communs sur les fiches de livres

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
LIMONIER Mathieu
2026-08-20 14:38:19 +02:00
co-authored by Copilot
parent e28d5bce32
commit c2d408afc6
17 changed files with 992 additions and 8 deletions
+6
View File
@@ -56,6 +56,12 @@ public class Livre
/// <summary>Auteurs du livre, ordonnés par <see cref="LivreAuteur.Position"/>.</summary>
public List<LivreAuteur> Auteurs { get; set; } = [];
/// <summary>
/// Thèmes du livre. Ils décrivent l'œuvre et sont donc communs au foyer, contrairement aux
/// statuts de lecture et aux envies.
/// </summary>
public List<LivreTheme> Themes { get; set; } = [];
/// <summary>
/// Statuts de lecture, <b>un par personne</b> et seulement pour celles qui en ont posé un.
/// </summary>
+33
View File
@@ -0,0 +1,33 @@
using MaBibli.Shared.Textes;
namespace MaBibli.Shared.Entites;
/// <summary>Étiquette thématique commune au catalogue.</summary>
public class Theme
{
public int Id { get; set; }
public string Nom { get; set; } = string.Empty;
public string NomNormalise { get; set; } = string.Empty;
public List<LivreTheme> Livres { get; set; } = [];
public void RecalculerFormes()
{
Nom = Nom.Trim();
NomNormalise = NormalisationTexte.Normaliser(Nom);
}
}
/// <summary>Lien entre un livre et une étiquette thématique.</summary>
public class LivreTheme
{
public int LivreId { get; set; }
public Livre? Livre { get; set; }
public int ThemeId { get; set; }
public Theme? Theme { get; set; }
}