namespace AyCode.Services.Nav;

/// <summary>
/// NAV adatszolgáltatás hibája — HTTP-szintű hiba, vagy a válasz funcCode != OK eredménye.
/// </summary>
public class NavReportException : Exception
{
    /// <summary>A NAV válasz funkciókódja (OK/WARNING/ERROR), ha értelmezhető volt.</summary>
    public string? FuncCode { get; }

    /// <summary>A NAV válasz reasonCode-ja, ha volt.</summary>
    public string? ReasonCode { get; }

    /// <summary>A HTTP státuszkód, ha a hiba transport-szintű volt.</summary>
    public int? HttpStatusCode { get; }

    public NavReportException(
        string message,
        string? funcCode = null,
        string? reasonCode = null,
        int? httpStatusCode = null,
        Exception? innerException = null)
        : base(message, innerException)
    {
        FuncCode = funcCode;
        ReasonCode = reasonCode;
        HttpStatusCode = httpStatusCode;
    }
}
