using AyCode.Core.Interfaces;
using AyCode.Entities;
using AyCode.Services.Nav.Ekaer.Models;

namespace AyCode.Services.Nav.Ekaer;

/// <summary>
/// A NAV-bejelentő saját cégadatai — általános (bármely bejelentő), a DI konfigurációból tölti.
/// A leképezés <see cref="ICompanyInfoBase"/>-ként kezeli, ugyanúgy, mint a beszállító <c>Partner</c>-t.
/// </summary>
public sealed class EkaerCompanyInfo : ICompanyInfoBase
{
    public string? Name { get; set; }
    public string? TaxId { get; set; }

    /// <summary>A bejelentő országkódja. A NAV EKÁER magyar rendszer → gyakorlatilag mindig <c>"HU"</c>.</summary>
    public string? CountryCode { get; set; } = "HU";

    public string? PostalCode { get; set; }
    public string? City { get; set; }
    public string? Street { get; set; }

    public string? FullAddress => this.ComposeFullAddress();

    /// <summary>A bejelentő saját telephelye (fizikai fel-/lerakodási hely): bejövőnél lerakodás, kimenőnél felrakodás.
    /// Magyar címnél a NAV a Name/VatNumber/Phone/Email-t is megköveteli.</summary>
    public LocationType? Site { get; set; }
}
