using AyCode.Services.Nav.Ekaer.Models;
using FruitBank.Common.Entities;
namespace FruitBank.Common.Services.Ekaer;
///
/// FruitBank domain → NAV EKÁER tradeCard leképezés. Egy bejövő -ből
/// EKÁER tradeCard műveleteket állít elő (dokumentumonként egyet).
///
///
/// A NAV-protokollt és az authentikációt NEM kezeli — az az AyCode.Services.Nav réteg
/// (NavReportServiceBase / EkaerManageService) felelőssége. A tényleges NAV-bejelentést
/// a szerver-oldali (nopCommerce plugin) service végzi, amely ezt a leképezőt használja. A leképezés
/// tisztázott pontjai és nyitott döntései a plugin docs/EKAER/README.md és EKAER_TODO.md fájljaiban.
///
public interface IShippingToEkaerMapper
{
///
/// Leképezi a minden ShippingDocument-jét egy-egy EKÁER tradeCard műveletre.
///
/// A bejövő szállítmány. A fuvarozó/jármű a Shipping szintjén, az eladó/tételek a dokumentum szintjén élnek.
/// A konfiguráció-függő adatok (destination cég, lerakodási hely, home country).
/// A tradeCard művelet típusa. Alapértelmezés: .
/// Dokumentumonként egy , a beérkezés sorrendjében indexelve.
IReadOnlyList MapShipping(Shipping shipping, EkaerMappingOptions options, OperationType operation = OperationType.Create);
}