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),
    };
}
