namespace MaBibli.Client.Composants;

/// <summary>
/// Ce qu'un coup de scanner a produit : le code du livre ou de la revue, et son add-on éventuel.
/// </summary>
/// <param name="Code">EAN-13 normalisé, seul code qui identifie l'ouvrage.</param>
/// <param name="Parution">
/// Contenu de l'add-on <b>EAN-2</b>, imprimé à côté du code principal sur les périodiques.
/// </param>
/// <remarks>
/// ⚠️ <b>L'EAN-2 est une indication, jamais une donnée acquise.</b> Il porte le numéro de
/// parution d'une revue — c'est sa raison d'être normative — mais rien n'a pu être vérifié sur
/// des magazines réels : la vérification demande un exemplaire devant la caméra. Il est donc
/// <b>proposé</b> à l'utilisateur dans un champ qu'il corrige, jamais enregistré tel quel.
/// <para>
/// L'add-on <b>EAN-5</b> n'est pas remonté : il porte un <i>prix</i>, et le confondre avec un
/// numéro créerait des numéros « 00595 » que personne ne comprendrait.
/// </para>
/// </remarks>
public readonly record struct CodeScanne(string Code, string? Parution);

/// <summary>Forme brute renvoyée par <c>scanner-camera.js</c>, avant validation de l'ISBN.</summary>
internal sealed record LectureCodeBarres(string? Code, string? Parution);
