namespace AudibleUtilities;
///
/// Stored Audible credentials are missing or invalid and interactive login is required.
/// Thrown instead of opening login UI when the caller disallows interactive login (e.g. auto-scan).
///
public sealed class AuthenticationRequiredException : Exception
{
///
/// A log-safe summary rather than the itself. Serilog.Exceptions reflects over every
/// public property of a logged exception, so holding the live account published its address - and would have
/// published its activation bytes - into logs people attach to public issue reports.
///
public AccountSummary? AccountInfo { get; }
public AuthenticationRequiredException(Account? account, string? message = null, Exception? innerException = null)
: base(message ?? "Audible authentication is required.", innerException)
=> AccountInfo = AccountSummary.From(account);
}