namespace FKGees.Extensions;

internal static class DokExtensions
{
    internal static DecretsResult DecretKontr(this Dok doc)
    {
        var result = new DecretsResult
        {
            k_Nazwa = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 88)?.Tekst ?? string.Empty,
            k_Skrot = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 94)?.Tekst ?? string.Empty,
            k_Miejscowosc = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 91)?.Tekst ?? string.Empty,
            k_Ulica = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 89)?.Tekst ?? string.Empty,
            k_KodPocztowy = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 90)?.Tekst ?? string.Empty,
            k_Numer = doc.DokKontr?.Kontr.NrDomu ?? string.Empty,
            k_NIP = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 93)?.Tekst ?? string.Empty
        };
        return result;
    }
    
    internal static RegistersResult RegisterKontr(this Dok doc)
    {
        var result = new RegistersResult
        {
            k_Nazwa = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 88)?.Tekst ?? string.Empty,
            k_Skrot = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 94)?.Tekst ?? string.Empty,
            k_Miejscowosc = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 91)?.Tekst ?? string.Empty,
            k_Ulica = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 89)?.Tekst ?? string.Empty,
            k_KodPocztowy = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 90)?.Tekst ?? string.Empty,
            k_Numer = doc.DokKontr?.Kontr.NrDomu ?? string.Empty,
            k_NIP = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 93)?.Tekst ?? string.Empty
        };
        return result;
    }

    internal static RozbicieDok? Rozbicie(this Dok dok, short stawka)
    {
        var roz = dok.RozbicieDok.FirstOrDefault(x => x.Stawka == stawka);
        return roz;
    }

    internal static string TekstZaCo(this Dok dok)
    {
        return dok.TekstDok.FirstOrDefault(x => x.Znaczenie == 17)?.Tekst ?? string.Empty;
    }
    
    internal static string Tekst1(this Dok dok)
    {
        return dok.TekstDok.FirstOrDefault(x => x.Znaczenie == 71)?.Tekst ?? string.Empty;
    }
    
}