using MaBibli.Shared.Dtos; using MaBibli.Shared.Entites; namespace MaBibli.Client.Composants; /// /// Saisie du panneau « Modifier en lot » (fiche série). /// /// /// ⚠️ Chaque champ porte sa propre case Modifier… : sans elle, la valeur par défaut d'un /// champ (« NonPrecise », « Physique »…) est déjà une vraie valeur, et l'appliquer à tous les /// livres sélectionnés écraserait un champ qu'on ne voulait pas toucher. Seuls les champs cochés /// sont envoyés ; les autres livres restent inchangés sur les champs non cochés (CLAUDE.md, /// invariant 10 : on n'affiche — et n'applique — que ce qui a été choisi). /// public sealed class SaisieLot { public bool ModifierType { get; set; } public TypeDocument TypeDocument { get; set; } public bool ModifierThemes { get; set; } public List Themes { get; set; } = []; public bool ModifierAuteurs { get; set; } public List Auteurs { get; set; } = []; public bool ModifierFormat { get; set; } public Format Format { get; set; } public bool ModifierEditeur { get; set; } public string? Editeur { get; set; } /// /// Statut de lecture de l'appelant, comme partout ailleurs : appliquer un statut en /// lot pose la lecture de la personne qui agit, jamais celle d'un tiers. /// public bool ModifierStatut { get; set; } public Statut? Statut { get; set; } public bool AucunChamp => !ModifierType && !ModifierThemes && !ModifierAuteurs && !ModifierFormat && !ModifierEditeur && !ModifierStatut; }