"""Public XML serializer API for validated ISTAT XML payloads."""

from __future__ import annotations

from collections.abc import Iterable

from istat.xml_export.payloads.guest_payload import IstatXmlGuestPayload
from istat.xml_export.xml.xml_builder import build_xml_tree
from istat.xml_export.xml.xml_utils import to_xml_string


def serialize_payloads(payloads: Iterable[IstatXmlGuestPayload]) -> str:
    """Serialize validated XML guest payloads to a complete XML document."""
    root = build_xml_tree(payloads)
    return to_xml_string(root)

