Files
Mathieu LimonierandClaude Opus 5 6a6d745af4 MaBibli 1.0.0
Gestion de bibliothèque personnelle auto-hébergée : catalogue, prêts,
scan de code-barres, consultation hors-ligne.

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

34 lines
1.4 KiB
C#

namespace MaBibli.Shared.Dtos;
/// <summary>
/// Résultat complet d'un lookup ISBN : la liste des candidats trouvés par la cascade
/// BnF → OpenLibrary, plus de quoi expliquer à l'utilisateur ce qui s'est passé.
/// </summary>
public record ResultatLookupIsbn
{
/// <summary>ISBN normalisé tel que demandé (tirets et espaces retirés).</summary>
public required string IsbnDemande { get; init; }
/// <summary>ISBN-10 dérivé, si la conversion était possible (préfixe <c>978</c> uniquement).</summary>
public string? Isbn10 { get; init; }
/// <summary>
/// Tous les candidats trouvés, dans l'ordre de la cascade. Peut être vide.
/// La sélection revient à l'utilisateur.
/// </summary>
public required IReadOnlyList<CandidatLivre> Candidats { get; init; }
/// <summary>
/// Messages non bloquants : source injoignable, réponse illisible…
/// Une source en panne ne fait pas échouer la cascade, elle laisse une trace ici.
/// </summary>
public IReadOnlyList<string> Avertissements { get; init; } = [];
/// <summary>
/// Renseigné <b>uniquement</b> quand le code scanné s'est révélé être celui d'un périodique
/// (préfixe <c>977</c>). Dans ce cas <see cref="Candidats"/> est toujours vide : la cascade
/// ISBN n'a pas été lancée, elle ne pouvait pas aboutir.
/// </summary>
public PeriodiqueDetecte? Periodique { get; init; }
}