pub mod draft_data;
pub mod export_filters;
pub mod invoice;
pub mod xls_row;

// Draft & export types.
pub use draft_data::InvoiceDraftData;
pub use export_filters::ExportFilters;
pub use xls_row::InvoiceXlsRow;

// Invoice types — single source of truth.
pub use invoice::adnotacje::{
    Adnotacje, NoweSrodkiTransportu, NowySrodekTransportu, PMarzy, Zwolnienie,
};
pub use invoice::common::{
    DaneIdentyfikacyjnePodmiot1, DaneIdentyfikacyjnePodmiot2, DaneIdentyfikacyjnePodmiot3,
    DaneKontaktowe, PartyInput, Podmiot3Input, TAdres,
};
pub use invoice::correction::{
    CorrectionData, DaneFaKorygowanej, OkresFaKorygowanej, Podmiot1K, Podmiot2K,
};
pub use invoice::invoice::Invoice;
pub use invoice::kind_enum::InvoiceKind;
pub use invoice::line_item::InvoiceLineItem;
pub use invoice::platnosc::{
    BankAccountInfo, Platnosc, Skonto, TerminOpis, TerminPlatnosci, ZaplataCzesciowa,
};
pub use invoice::podmiot3::Podmiot3Info;
pub use invoice::podmiot_upowazniony::PodmiotUpowaznionyInfo;
pub use invoice::rozliczenie::{ObciazenieOdliczenie, Rozliczenie};
pub use invoice::simple_types::*;
pub use invoice::stopka::{Informacja, Rejestr, Stopka};
pub use invoice::type_enum::InvoiceType;
pub use invoice::vat_rate_info::VatRateInfo;
pub use invoice::warunki_transakcji::{
    Przewoznik, Transport, Umowa, WarunkiTransakcji, Zamowienie,
};
pub use invoice::zalacznik::{
    BlokDanych, Tabela, TabelaKolumna, TabelaMetaDane, TabelaSuma, TabelaWiersz, Zalacznik,
    ZalacznikAkapit, ZalacznikMetaDane,
};
pub use invoice::zaliczka::{DodatkowyOpis, FakturaZaliczkowaRef, ZaliczkaCzesciowa};
pub use invoice::zamowienie_data::{ZamowienieData, ZamowienieWiersz};

// Backward-compat aliases for removed batch types.
pub type BatchAdditionalDescription = DodatkowyOpis;
pub type BatchLineItemInput = InvoiceLineItem;
pub type BatchPartyInput = PartyInput;
pub type BatchPodmiot3Input = Podmiot3Input;

// Backward-compat aliases for removed import types.
pub type ImportAdditionalDescription = DodatkowyOpis;
pub type ImportLineItem = InvoiceLineItem;
pub type ImportVatRate = VatRateInfo;
