
    `j                    l    d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZmZ dZd	Zdd
ZddZy)z:Build ElementTree nodes from validated ISTAT XML payloads.    )annotations)Iterable)ElementTree)XmlSerializationError)IstatXmlGuestPayload)append_text_nodeformat_xml_date	MOVIMENTI	MOVIMENTOc                z    t        j                  t              }| D ]  }|j                  t	        |              |S )z:Build the deterministic XML tree for a payload collection.)r   ElementROOT_TAGappendserialize_guest_payload)payloadsrootpayloads      ,/backend/istat/xml_export/xml/xml_builder.pybuild_xml_treer      s3    x(D+G45 K    c                &   t        | t              st        d      t        j                  t
              }t        |dt        | j                               t        |dt        | j                               t        |d| j                         t        |d| j                         t        |d| j                  rdnd       | j                  r0t        |d	| j                         t        |d
| j                         |S t        |d| j                         |S )zBBuild a single movement node in explicit, deterministic tag order.z&Expected IstatXmlGuestPayload instance
DATAARRIVODATAPARTENZASESSOTIPOCLIENTERESIDENZA_ITALIANASNCOD_PROVINCIACOD_REGIONECOD_STATO_ESTERO)
isinstancer   r   r   r   MOVEMENT_TAGr   r	   arrival_datedeparture_dategender
guest_typeis_italian_residentprovince_coderegion_coderesidence_country_code)r   	movimentos     r   r   r      s    g34#$LMM##L1IYog>R>R.STY@V@V0WXY8Yw/A/AB** ""OW5J5JKM73F3FG  	$68V8VWr   N)r   zIterable[IstatXmlGuestPayload]returnElementTree.Element)r   r   r-   r.   )__doc__
__future__r   collections.abcr   	xml.etreer   istat.xml_export.exceptionsr   'istat.xml_export.payloads.guest_payloadr   istat.xml_export.xml.xml_utilsr   r	   r   r#   r   r    r   r   <module>r7      s0    @ " $ ! = H L r   