Files
mabibli/MaBibli.Shared/Dtos/PeriodiqueDetecte.cs
T
mathieuandClaude Opus 5 ca0a9dc18c Cataloguer les revues : une fiche, ses numéros à l'intérieur
Clôt la décision du premier lot, qui écartait les périodiques faute de
modèle. Douze numéros d'un magazine ne font plus douze fiches identiques.

Table à part, pour la troisième fois et pour le même motif que la liste
d'envies et les séries : logée dans Livres, une revue entrerait dans le
catalogue, ses compteurs, les doublons et les bibliographies, et il
faudrait écrire « et qui n'est pas une revue » à chaque lecture.

Un numéro est recensé, rien de plus — ni prêt ni statut, tous deux liés à
Livre par clé étrangère. Réversible.

« Créer ou retrouver » et non « créer » : scanner le numéro suivant du même
magazine retombe forcément sur la même revue. L'unicité de l'ISSN est un
index partiel, sans quoi les revues sans ISSN se bloqueraient entre elles.

Le flux 977 mène désormais à la fiche de la revue, et ne pré-remplit plus
le formulaire d'un livre.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 22:19:08 +02:00

36 lines
1.6 KiB
C#

namespace MaBibli.Shared.Dtos;
/// <summary>
/// Ce qu'on sait d'un code-barres qui s'est révélé être celui d'un <b>périodique</b>
/// (préfixe <c>977</c>) et non d'un livre.
/// </summary>
/// <remarks>
/// Cet objet <b>décrit un code-barres</b>, il ne catalogue rien : il dit à l'utilisateur ce
/// qu'il vient de scanner au lieu de lui répondre « aucun résultat » — ce qui l'enverrait
/// chercher un défaut là où il n'y en a pas.
/// <para>
/// Depuis le 2026-08-19, les revues ont leur modèle (<see cref="Entites.Revue"/>) : l'écran
/// enchaîne donc sur la fiche de la revue, où s'ajoute le numéro scanné. ⚠️ Le <b>numéro</b> ne
/// figure pas ici : les deux chiffres de parution du code-barres ne sont pas fiables, et
/// l'add-on EAN-2 qui le porterait vraiment n'a pas été vérifié sur un magazine réel.
/// </para>
/// </remarks>
public record PeriodiqueDetecte
{
/// <summary>ISSN déduit du code-barres, forme canonique à tiret (<c>2466-6718</c>).</summary>
public required string Issn { get; init; }
/// <summary>
/// Titre de la revue d'après la BnF, ou <c>null</c> si elle ne connaît pas cet ISSN
/// ou n'a pas répondu. Le distinguer d'un titre trouvé est ce qui permet de ne pas
/// affirmer un nom qu'on n'a pas.
/// </summary>
public string? Titre { get; init; }
/// <summary>Éditeur de la revue, quand la notice en porte un.</summary>
public string? Editeur { get; init; }
/// <summary>Année de début de publication de la revue (et non du numéro scanné).</summary>
public string? Annee { get; init; }
}