50 lines
1.6 KiB
C#
50 lines
1.6 KiB
C#
using MaBibli.Shared.Dtos;
|
|
using MaBibli.Shared.Entites;
|
|
|
|
namespace MaBibli.Client.Composants;
|
|
|
|
/// <summary>
|
|
/// Saisie du panneau « Modifier en lot » (fiche série).
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// ⚠️ Chaque champ porte sa propre case <c>Modifier…</c> : 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).
|
|
/// </remarks>
|
|
public sealed class SaisieLot
|
|
{
|
|
public bool ModifierType { get; set; }
|
|
|
|
public TypeDocument TypeDocument { get; set; }
|
|
|
|
public bool ModifierThemes { get; set; }
|
|
|
|
public List<string> Themes { get; set; } = [];
|
|
|
|
public bool ModifierAuteurs { get; set; }
|
|
|
|
public List<AuteurSaisi> Auteurs { get; set; } = [];
|
|
|
|
public bool ModifierFormat { get; set; }
|
|
|
|
public Format Format { get; set; }
|
|
|
|
public bool ModifierEditeur { get; set; }
|
|
|
|
public string? Editeur { get; set; }
|
|
|
|
/// <summary>
|
|
/// Statut de lecture <b>de l'appelant</b>, comme partout ailleurs : appliquer un statut en
|
|
/// lot pose la lecture de la personne qui agit, jamais celle d'un tiers.
|
|
/// </summary>
|
|
public bool ModifierStatut { get; set; }
|
|
|
|
public Statut? Statut { get; set; }
|
|
|
|
public bool AucunChamp =>
|
|
!ModifierType && !ModifierThemes && !ModifierAuteurs
|
|
&& !ModifierFormat && !ModifierEditeur && !ModifierStatut;
|
|
}
|