
    `jC                    H    d dl mZ d dlmZ d dlmZ g dZddZ	 	 	 	 d	dZy)
    )annotations)Mapping)is_missing_istat_value))16zSingle Guest)17zHead of Family)18zGroup Leader)19zFamily Member)20zGroup Memberc                    |dk  rg S | xs dj                         j                         }|dk(  rdgdg|dz
  z  z   S |dk(  rdg|z  S d	gd
g|dz
  z  z   S )Nr    familyr   r	      singler   r   r
   )striplower)
group_typecount
normalizeds      /backend/guests/istat_utils.pyderive_guest_type_codesr      sv    z	"))+113JXv%!),,,Xv~6TFeai(((    c               Z   t        |       }|j                  d      }t        |t              rt        |      }ni }dD ]@  }|j	                  |d       }t        |j                  |            s0t        |      r<|||<   B t        t        |dd       |      }t        |j                  d            r!d|cxk  rt        |      k  rn n||   nd |d<   t        |j                  d            rt        |dd       |d<   t        |j                  d            rt        |dd       |d<   ||d<   |S )N
extra_data)
guest_typetourism_typetransport_typeguest_group_typer   r   r   r   )	dictget
isinstancer   popr   r   getattrlen)	
guest_databookingindextotal_guestspayloadr   fieldextra_valueguest_type_codess	            r   apply_guest_istat_defaultsr,      s&    :G\*J*g&*%

A nnUD1!'++e"45>TU`>a(GEN B
 /+T2 gkk,78'(E'IC8H4I'IU#t 	 gkk.9:")'>4"Hgkk*:;<$+G5Et$L !&GLNr   N)r   z
str | Noner   intreturnz	list[str])r&   r-   r'   r-   )	
__future__r   collections.abcr   guests.guest_defaultsr   ISTAT_GUEST_TYPE_CHOICESr   r,    r   r   <module>r4      s4    " # 8 	)$ 	$
 $r   