using System.ComponentModel.DataAnnotations;
using AyCode.Services.Nav.Ekaer.Models;
namespace AyCode.Services.Nav.Ekaer;
///
/// Egy EKÁER beküldési kísérlet eredménye: vagy validációs hibák (ekkor NEM ment ki kérés a NAV-nak),
/// vagy a NAV-válasz (sikeres beküldés).
///
public sealed class EkaerSubmitResult
{
private EkaerSubmitResult(bool isValid, IReadOnlyList validationErrors, ManageTradeCardsResponse? response)
{
IsValid = isValid;
ValidationErrors = validationErrors;
Response = response;
}
/// Igaz, ha a validáció hibátlan volt (és így a beküldés megtörtént).
public bool IsValid { get; }
/// A validációs hibák (üres, ha érvényes volt). Ha nem üres, a bejelentés NEM lett elküldve.
public IReadOnlyList ValidationErrors { get; }
/// A NAV-válasz, ha a beküldés megtörtént; egyébként null.
public ManageTradeCardsResponse? Response { get; }
/// Validációs hibák miatt elutasított beküldés (nem ment ki kérés a NAV-nak).
public static EkaerSubmitResult Invalid(IReadOnlyList validationErrors) => new(false, validationErrors, null);
/// Sikeresen elküldött beküldés, a NAV-válasszal.
public static EkaerSubmitResult Sent(ManageTradeCardsResponse response) => new(true, [], response);
}