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