namespace MaBibli.Shared.Entites;

/// <summary>
/// Statut de lecture d'un livre <b>pour une personne donnée</b>.
/// </summary>
/// <remarks>
/// Décision actée dans CLAUDE.md : le livre est commun au foyer, sa lecture est personnelle.
/// Deux membres lisent le même exemplaire à des rythmes différents, et une colonne <c>Statut</c>
/// sur <see cref="Livre"/> les forcerait à partager un état unique — ce qui était le cas avant
/// cette refonte.
/// <para>
/// <b>Absence de ligne = non commencé.</b> On n'écrit rien à la création d'un livre : sur une
/// bibliothèque de foyer, la plupart des couples (livre, personne) n'ont aucun statut, et les
/// matérialiser tous multiplierait les lignes par le nombre de comptes pour n'exprimer qu'un vide.
/// </para>
/// <para>
/// Cette table est le patron de tout ce qui sera personnel plus tard — la liste d'envies évoquée
/// dans IDEES.md s'ajoutera de la même façon, sans toucher à <see cref="Livre"/>.
/// </para>
/// </remarks>
public class StatutLecture
{
    public int Id { get; set; }

    public int LivreId { get; set; }

    public Livre? Livre { get; set; }

    /// <summary>
    /// <c>YNH_USER</c> de la personne concernée. Contrairement à <see cref="Livre.AjoutePar"/>,
    /// ce champ <b>est</b> une frontière : on ne lit jamais le statut de quelqu'un d'autre.
    /// </summary>
    public string Utilisateur { get; set; } = string.Empty;

    public Statut Statut { get; set; }

    /// <summary>Dernière modification du statut, utile pour un futur « repris le… ».</summary>
    public DateTime DateMaj { get; set; }
}
