§
    ÔŸ’j~  ã                  óR   — d dl mZ d dlmZ ddlmZmZmZmZm	Z	m
Z
mZmZmZ dd
„ZdS )é    )Úannotations)ÚAnyé   )	Úaction_matches_findingÚcoerce_follow_up_itemsÚdeduplicate_follow_up_itemsÚ%derive_trigger_phase_from_action_typeÚderive_trigger_phase_from_keyÚensure_dictÚensure_listÚmerge_metadataÚnormalize_follow_up_itemÚreviewúdict[str, Any]ÚfindingÚreturnúlist[dict[str, Any]]c                óÞ	  ‡— g }t          |                      d¦  «        pd¦  «        }t          |                     d¦  «        pd¦  «        }t          |                     d¦  «        pd¦  «        }d}t          |                      d¦  «        ¦  «        t          |                     d¦  «        ¦  «        g}t          |                     d¦  «        ¦  «        D ]Æ}|                     t          |                     d¦  «        ¦  «        ¦  «         t          |                     d¦  «        ¦  «        D ]l}	|                     t          |	                     d¦  «        ¦  «        ¦  «         |                     t          |	                     d	¦  «        ¦  «        ¦  «         ŒmŒÇ|D ]`}
|D ][}t          |
                     |¦  «        ¦  «        D ]6}|                     t          ||||t          |¦  «        ¬
¦  «        ¦  «         Œ7Œ\Œat          |                      d¦  «        ¦  «        D �]º}t          |                     d¦  «        ¦  «        Št          ‰|¬¦  «        sŒ7|D ]’}t          ‰                     |¦  «        ¦  «        D ]m}|                     t          t          ||                     d¦  «        |                     d¦  «        dœ¦  «        |||t          |¦  «        ¬
¦  «        ¦  «         ŒnŒ“t          ˆfd„dD ¦   «         ¦  «        �rÒ‰                     d¦  «        }|€-‰                     d¦  «        �d‰                     d¦  «        i}nê|€-‰                     d¦  «        �d‰                     d¦  «        i}n»|€¹‰                     d¦  «        p|                     d¦  «        ‰                     d¦  «        p|                     d¦  «        ‰                     d¦  «        ‰                     d¦  «        ‰                     d¦  «        ‰                     d¦  «        ‰                     d¦  «        dœ}t          |t          ¦  «        sdt          |¦  «        i}|                     t          t          ||                     d¦  «        |                     d¦  «        dœ¦  «        |||t          |                     d ¦  «        ¦  «        ¬
¦  «        ¦  «         �Œ¼t          |¦  «        S )!u,   Gom follow-up tá»« nhiá»�u nguá»“n metadata.Ú	review_idÚ Ú
finding_idÚfinding_code)Úpost_close_actionsÚpost_close_backlogÚclose_follow_upsÚpost_verification_actionsÚverification_follow_upsÚpost_verify_actionsÚmetadataÚassignmentsÚsubmissionsÚsubmitted_payload)r   r   r   Útrigger_phaseÚactionsÚaction_payload)r%   r   Ú	action_idÚ
created_at)r&   r'   c              3  óF   •K  — | ]}‰                      |¦  «        d uV — Œd S )N)Úget)Ú.0ÚkeyÚpayloads     €úMC:\Projects\DSCons\app\services\company_operational_state\review_followups.pyú	<genexpr>z,collect_review_follow_ups.<locals>.<genexpr>L   sH   øè è € ð 	
ð 	
àð �KŠK˜ÑÔ DÐ(ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ó    )Úfollow_up_actionÚnext_actionÚpost_actionÚtitleÚreasonr0   Nr1   r3   r2   Úaction_summaryr4   ÚpriorityÚstatusÚdue_dateÚtarget_department_codeÚtarget_employee_code)r3   r4   r6   r7   r8   Údepartment_codeÚowner_employee_codeÚaction_type)Ústrr)   r   r   Úappendr   r   r
   r   r   ÚanyÚ
isinstanceÚdictr	   r   )r   r   Úitemsr   r   r   Úmetadata_keysÚmetadata_sourcesÚ
assignmentÚ
submissionÚsourcer+   Úraw_itemÚactionÚ	candidater,   s                  @r-   Úcollect_review_follow_upsrL      s  ø€ ð #%€EÝ�F—J’J˜{Ñ+Ô+Ð1¨rÑ2Ô2€IÝ�W—[’[ Ñ.Ô.Ð4°"Ñ5Ô5€JÝ�w—{’{ >Ñ2Ô2Ð8°bÑ9Ô9€Lð€Mõ 	�F—J’J˜zÑ*Ô*Ñ+Ô+Ý�G—K’K 
Ñ+Ô+Ñ,Ô,ðÐõ " '§+¢+¨mÑ"<Ô"<Ñ=Ô=ð Vð Vˆ
Ø×Ò¥¨J¯NªN¸:Ñ,FÔ,FÑ GÔ GÑHÔHÐHÝ% j§n¢n°]Ñ&CÔ&CÑDÔDð 	Vð 	VˆJØ×#Ò#¥K°
·²¸zÑ0JÔ0JÑ$KÔ$KÑLÔLÐLØ×#Ò#¥K°
·²Ð?RÑ0SÔ0SÑ$TÔ$TÑUÔUÐUÐUð	Vð #ð ð ˆØ ð 
	ð 
	ˆCÝ2°6·:²:¸c±?´?ÑCÔCð 	ð 	�Ø—’Ý,Ø Ø"+Ø#-Ø%1Ý&CÀCÑ&HÔ&Hðñ ô ñô ð ð ð	ð
	õ ˜fŸjšj¨Ñ3Ô3Ñ4Ô4ð @ñ @ˆÝ˜fŸjšjÐ)9Ñ:Ô:Ñ;Ô;ˆÝ%°WÀgÐNÑNÔNð 	ØØ ð 	ð 	ˆCÝ2°7·;²;¸sÑ3CÔ3CÑDÔDð ð �Ø—’Ý,Ý&Ø$à-3¯ZªZ¸Ñ-DÔ-DØ.4¯jªj¸Ñ.FÔ.Fðð ñô ð #,Ø#-Ø%1Ý&CÀCÑ&HÔ&Hðñ ô ñô ð ð ðõ  ð 	
ð 	
ð 	
ð 	
ðð	
ñ 	
ô 	
ñ 	
ô 	
ñ +	ð %Ÿ[š[Ð);Ñ<Ô<ˆIØÐ  W§[¢[°Ñ%?Ô%?Ð%KØ$ g§k¢k°-Ñ&@Ô&@ÐA�	�	ØÐ" w§{¢{°=Ñ'AÔ'AÐ'MØ$ g§k¢k°-Ñ&@Ô&@ÐA�	�	ØÐ"à$Ÿ[š[¨Ñ1Ô1ÐQ°V·Z²ZÐ@PÑ5QÔ5QØ%Ÿkšk¨(Ñ3Ô3ÐS°v·z²zÐBRÑ7SÔ7SØ '§¢¨JÑ 7Ô 7Ø%Ÿkšk¨(Ñ3Ô3Ø '§¢¨JÑ 7Ô 7Ø'.§{¢{Ð3KÑ'LÔ'LØ+2¯;ª;Ð7MÑ+NÔ+Nðð �	õ ˜i­Ñ.Ô.ð 6Ø$¥c¨)¡n¤nÐ5�	Ø�LŠLÝ(Ý"Ø!à)/¯ª°KÑ)@Ô)@Ø*0¯*ª*°\Ñ*BÔ*Bðð ñô ð (Ø)Ø!-Ý"GØŸ
š
 =Ñ1Ô1ñ#ô #ðñ ô ñô ð ùõ" ' uÑ-Ô-Ð-r/   N)r   r   r   r   r   r   )Ú
__future__r   Útypingr   Úhelpersr   r   r   r	   r
   r   r   r   r   rL   © r/   r-   ú<module>rQ      s»   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ðf.ð f.ð f.ð f.ð f.ð f.r/   