Transforme la bibliographie en écran de travail D1 à D5

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
LIMONIER Mathieu
2026-08-20 13:42:46 +02:00
co-authored by Copilot
parent ddc60898da
commit 359f4f59c6
13 changed files with 1044 additions and 20 deletions
+9
View File
@@ -68,6 +68,12 @@ public record EnregistrementSouhait
public string? Note { get; set; }
}
/// <summary>Charge utile du masquage personnel d'une œuvre bibliographique.</summary>
public record MasquageBibliographie
{
public string Titre { get; set; } = string.Empty;
}
/// <summary>Formats d'export de la liste d'envies.</summary>
/// <remarks>
/// Les deux usages décrits dans IDEES.md ne demandent pas la même chose : « l'emporter en
@@ -116,6 +122,9 @@ public record OeuvreBibliographie
public int? SouhaitId { get; init; }
/// <summary>Vrai si l'appelant a explicitement masqué cette œuvre.</summary>
public bool Masquee { get; init; }
/// <summary>Ni possédé, ni déjà souhaité : ce qui reste à découvrir.</summary>
[JsonIgnore]
public bool ADecouvrir => !Possede && !Souhaite;
@@ -0,0 +1,26 @@
using MaBibli.Shared.Textes;
namespace MaBibli.Shared.Entites;
/// <summary>Une œuvre explicitement masquée par un utilisateur dans une bibliographie.</summary>
/// <remarks>
/// Le masquage est personnel : il exprime que cette œuvre n'est pas pertinente pour ce lecteur,
/// pas qu'elle ne l'est pour le foyer. La clé d'œuvre reste celle de la bibliographie BnF.
/// </remarks>
public class BibliographieMasquee
{
public int Id { get; set; }
public int AuteurId { get; set; }
public string Utilisateur { get; set; } = string.Empty;
public string TitreNormalise { get; set; } = string.Empty;
public static BibliographieMasquee Creer(int auteurId, string utilisateur, string titre) => new()
{
AuteurId = auteurId,
Utilisateur = utilisateur,
TitreNormalise = CleOeuvre.Cle(titre),
};
}