Distinguer scénario, dessin et couleurs sur chaque livre
Le rôle vit sur le LIEN livre-auteur, jamais sur l'auteur : le même auteur scénarise un album et dessine le suivant, et il ne doit pas exister en deux fiches pour autant — ce que l'index unique sur la clé de regroupement interdit de toute façon. Les rôles se retrouvent par clé d'auteur résolue et non par position : ResoudreAsync écarte les noms vides et fusionne les variantes, donc sa liste peut être plus courte que la saisie. Piège traité : le champ des noms reconstruit la liste à chaque frappe. Decouper reprend les rôles connus en rapprochant sur la forme normalisée, sans quoi corriger une faute de frappe les effacerait tous. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,15 @@ public class LivreAuteur
|
||||
|
||||
/// <summary>Rang de l'auteur sur la couverture, à partir de 0.</summary>
|
||||
public int Position { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Rôle sur <b>ce livre</b> : scénario, dessin, couleurs. Voir <see cref="RoleAuteur"/>.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Il est porté par le lien et non par l'auteur : le même dessinateur peut avoir scénarisé
|
||||
/// un autre album, et il ne doit pas pour autant exister en deux fiches.
|
||||
/// </remarks>
|
||||
public RoleAuteur Role { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
namespace MaBibli.Shared.Entites;
|
||||
|
||||
/// <summary>
|
||||
/// Rôle d'un auteur <b>sur un livre donné</b>, et non une propriété de la personne.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Le même auteur scénarise un album et dessine le suivant : le rôle vit donc sur le lien
|
||||
/// <see cref="LivreAuteur"/>, jamais sur <see cref="Auteur"/>. C'est ce qui permet aussi de
|
||||
/// garder <b>une seule fiche</b> par personne, à laquelle tous ses livres se rattachent.
|
||||
/// <para>
|
||||
/// ⚠️ <see cref="NonPrecise"/> est la valeur par défaut, et ne veut pas dire « auteur du
|
||||
/// texte » : la quasi-totalité des livres n'a qu'un signataire dont le rôle ne se pose pas.
|
||||
/// Même règle que <see cref="TypeDocument"/> — l'interface n'affiche que ce qui a été choisi.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// Liste volontairement courte : le besoin remonté est la <b>bande dessinée</b>, où l'on veut
|
||||
/// savoir qui écrit et qui dessine. Une valeur s'ajoute sans migration, la renommer une fois
|
||||
/// posée sur des centaines de liens, non.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
public enum RoleAuteur
|
||||
{
|
||||
/// <summary>Aucun rôle particulier — le cas de l'immense majorité des livres.</summary>
|
||||
NonPrecise = 0,
|
||||
|
||||
Scenario = 1,
|
||||
|
||||
Dessin = 2,
|
||||
|
||||
/// <summary>Mise en couleurs : un troisième nom figure souvent sur un album.</summary>
|
||||
Couleurs = 3,
|
||||
}
|
||||
Reference in New Issue
Block a user