/// FA(3) simpleType aliases from `schemat_FA(3)_v1-0E.xsd`.
///
/// These aliases keep invoice-domain fields tied to schema terminology while
/// preserving current runtime representations in Rust.

/// Kody krajów członkowskich Unii Europejskiej, w tym kod dla obszaru Irlandii Północnej (TKodyKrajowUE).
pub type TKodyKrajowUE = String;

/// Słownik kodów walut (TKodWaluty).
///
/// Kod waluty wg ISO 4217.
pub type TKodWaluty = String;

/// Symbol wzoru formularza (TKodFormularza).
///
/// Wartość stała: "FA".
pub type TKodFormularza = String;

/// Wartość numeryczna 18 znaków max, w tym 2 znaki po przecinku (TKwotowy).
pub type TKwotowy = f64;

/// Wartość numeryczna 22 znaki max, w tym 8 znaków po przecinku (TKwotowy2).
pub type TKwotowy2 = f64;

/// Liczby naturalne większe od zera (TNaturalny).
pub type TNaturalny = u32;

/// Typ znakowy - ciąg znaków 1-256 (TZnakowy).
pub type TZnakowy = String;

/// Typ znakowy - ciąg znaków 1-2 (TZnakowy2).
pub type TZnakowy2 = String;

/// Typ znakowy - ciąg znaków 1-20 (TZnakowy20).
pub type TZnakowy20 = String;

/// Typ znakowy - ciąg znaków 1-50 (TZnakowy50).
pub type TZnakowy50 = String;

/// Typ znakowy - ciąg znaków 1-512 (TZnakowy512).
pub type TZnakowy512 = String;

/// Numer identyfikujący fakturę w Krajowym Systemie e-Faktur (TNumerKSeF).
pub type TNumerKSeF = String;

/// Typ wykorzystywany do określenia ilości (TIlosci).
///
/// Wartość numeryczna 22 znaki max, w tym 6 po przecinku.
pub type TIlosci = f64;

/// Data zdarzenia w okresie od 2016-07-01 do 2050-01-01 (TData).
pub type TData = String;

/// Data zdarzenia w okresie od 2006-01-01 do 2050-01-01 (TDataT).
pub type TDataT = String;

/// Data zdarzenia w okresie od 1990-01-01 do 2050-01-01 (TDataU).
pub type TDataU = String;

/// Data i czas zdarzenia w okresie od 01.10.2021T00:00:00Z do 01.01.2050T23:59:59Z (TDataCzas).
pub type TDataCzas = String;

/// Numer Identyfikacyjny VAT kontrahenta UE (TNrVatUE).
pub type TNrVatUE = String;

/// Identyfikator wewnętrzny z NIP (TNIPIdWew).
///
/// Pattern: `[1-9]((\d[1-9])|([1-9]\d))\d{7}-\d{5}`.
pub type TNIPIdWew = String;

/// Numer rachunku (TNrRB).
///
/// Pełny numer rachunku bankowego, 10-34 znaki.
pub type TNrRB = String;

/// Kod SWIFT (SWIFT_Type).
///
/// Pattern: `[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?`.
pub type SWIFTType = String;

/// Typy form płatności (TFormaPlatnosci).
///
/// Wartości: 1=Gotówka, 2=Karta, 3=Bon, 4=Czek, 5=Kredyt, 6=Przelew, 7=Mobilna.
pub type TFormaPlatnosci = String;

/// Typy ładunków (TLadunek).
///
/// Wartości: 1=Bańka, 2=Beczka, 3=Butla, 4=Karton, 5=Kanister, 6=Klatka,
/// 7=Kontener, 8=Kosz/koszyk, 9=Łubianka, 10=Opakowanie zbiorcze,
/// 11=Paczka, 12=Pakiet, 13=Paleta, 14=Pojemnik, 15-16=Pojemniki masowe,
/// 17=Pudełko, 18=Puszka, 19=Skrzynia, 20=Worek.
pub type TLadunek = u8;

/// Wartość procentowa z dokładnością do 6 miejsc po przecinku (TProcentowy).
///
/// Zakres: 0-100.
pub type TProcentowy = f64;

/// Typy rachunków własnych banku (TRachunekWlasnyBanku).
///
/// Wartości: 1=Rachunek banku/SKOK do rozliczeń wierzytelności,
/// 2=Rachunek banku/SKOK do pobrania należności, 3=Rachunek własny banku/SKOK.
pub type TRachunekWlasnyBanku = String;

/// Status podatnika (TStatusInfoPodatnika).
pub type TStatusInfoPodatnika = u8;

/// Rola podmiotu upoważnionego (TRolaPodmiotuUpowaznionego).
///
/// Wartości: 1=Organ egzekucyjny, 2=Komornik sądowy, 3=Przedstawiciel podatkowy.
pub type TRolaPodmiotuUpowaznionego = u8;

/// Rola podmiotu trzeciego (TRolaPodmiotu3).
///
/// Wartości: 1=Faktor, 2=Odbiorca, 3=Podmiot pierwotny, 4=Dodatkowy nabywca,
/// 5=Wystawca faktury, 6=Dokonujący płatności, 7=JST wystawca, 8=JST odbiorca,
/// 9=Członek grupy VAT wystawca, 10=Członek grupy VAT odbiorca, 11=Pracownik.
pub type TRolaPodmiotu3 = u8;

/// Numer telefonu (TNumerTelefonu).
///
/// Maksymalnie 16 znaków.
pub type TNumerTelefonu = String;

/// Typ skutku korekty w ewidencji dla podatku od towarów i usług (TTypKorekty).
pub type TTypKorekty = u8;

/// Stawka podatku (TStawkaPodatku).
///
/// Dopuszczalne wartości: 23, 22, 8, 7, 5, 0, zw (zwolniona), oo (odwrotne obciążenie), np (nie podlega).
pub type TStawkaPodatku = String;

/// Oznaczenia dotyczące procedur dla faktur (TOznaczenieProcedury).
///
/// Wartości: WSTO_EE, IED, TT_D, I_42, I_63, B_SPV, B_SPV_DOSTAWA, B_MPV_PROWIZJA.
pub type TOznaczenieProcedury = String;

/// Oznaczenia dotyczące procedur dla zamówień (TOznaczenieProceduryZ).
///
/// Wartości: WSTO_EE, IED, TT_D, B_SPV, B_SPV_DOSTAWA, B_MPV_PROWIZJA.
pub type TOznaczenieProceduryZ = String;

/// Oznaczenie dotyczące dostawy towarów i świadczenia usług (TGTU).
///
/// Wartości: GTU_01..GTU_13.
pub type TGTU = String;

/// Typ Globalnego Numeru Lokalizacyjnego (TGLN).
///
/// Pattern: `\d{13}`.
pub type TGLN = String;

/// Rodzaj transportu (TRodzajTransportu).
///
/// Wartości: 1=Morski, 2=Kolejowy, 3=Drogowy, 4=Lotniczy, 5=Przesyłka pocztowa,
/// 7=Stałe instalacje przesyłowe, 8=Żegluga śródlądowa.
pub type TRodzajTransportu = u8;

/// Rodzaj faktury (TRodzajFaktury).
///
/// Wartości: VAT=Faktura podstawowa, KOR=Faktura korygująca,
/// ZAL=Faktura zaliczkowa, ROZ=Faktura art.106f ust.3,
/// UPR=Faktura uproszczona art.106e ust.5 pkt 3,
/// KOR_ZAL=Korekta zaliczkowej, KOR_ROZ=Korekta ROZ.
pub type TRodzajFaktury = String;

/// Kod kraju (TKodKraju).
///
/// Dwuliterowy kod kraju wg ISO 3166.
pub type TKodKraju = String;
