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; } }