using System.ComponentModel.DataAnnotations;
using AyCode.Services.Nav.Ekaer.Models;
namespace AyCode.Services.Nav.Ekaer;
///
/// Az EKÁER tradeCard műveletek beküldés-előtti ellenőrzése. A NAV-séma (a generált modellek
/// -jai: Required / pattern / hossz) ÉS az XSD-n felüli üzleti szabályok
/// (pl. a vonó jármű kötelező) ellenőrzése. Minden hibát összegyűjt — nem az elsőnél áll meg.
///
///
/// Általános NAV/EKÁER réteg — nem ismer projekt-specifikus (pl. FruitBank) típust, csak a generált modelleket.
/// A hívó (pl. a szerver-oldali EKÁER-service) a beküldés ELŐTT hívja: ha a visszaadott lista nem üres,
/// a bejelentés NEM küldhető. A NAV-validációs szabályok kivonata: Nav/docs/EKAER_VALIDATION.md.
///
public interface IEkaerTradeCardValidator
{
/// Egyetlen művelet ellenőrzése. Üres lista = érvényes.
IReadOnlyList Validate(TradeCardOperationType operation);
/// Több művelet ellenőrzése; a hibák a művelet indexével prefixelve. Üres lista = mind érvényes.
IReadOnlyList Validate(IEnumerable operations);
}