o
    ki
                     @  sF   d dl mZ d dlmZ ddlmZmZ ddlmZ G dd dZ	dS )	    )annotations)Path   )	read_json
write_json)now_isoc                   @  s6   e Zd ZdZg dddgg ddgdZdddZdS )ChecklistServicez8Builds evidence checklist for 482/186 support workflows.)passportbirth_certificatename_change_docsdegree_certificateacademic_transcript)reference_lettersemployment_contractspayslips_or_tax_records4naati_or_certified_translations_for_non_english_docs)identity	education
employmenttranslationsapplicant_baser   returndictc              
     s  t  }t|dD ]?}t|i dpi }t|dpd }|dv r$q
|jd d d }| s2q
t|i dp9i }|d	i d
g }|	| q
t
 ddgg g g g d}	| j D ]<\}
}|D ]5 t fdd|D rpdnd}|	d |
 |d |dkr|	d d   qa|	d d   qaq[|d }t|d |	 g d}|	d D ]}|d|d  d|d  d|d   q|d  jd!|d! d"d# |	S )$Nzmeta/manifest.json)defaultstatus >   ignoredarchived	duplicate   	extractedzentities.jsonentitiesdetected_keywords482186)generated_attarget_visa_supportverified_evidenceinferred_suggestionsmissing_evidenceitemsc                 3  s    | ]}| v V  qd S )N ).0tokenitemr+   =apps/migration_evidence_builder/services/checklist_service.py	<genexpr>-   s    z,ChecklistService.generate.<locals>.<genexpr>inferredmissingr*   )categoryr/   r   r(   zPotentially covered: r)   z	Missing: 	generatedzchecklist.json)z&# Evidence Checklist (482/186 Support)r   z>This checklist is a preparation aid only and not legal advice.r   z## Itemsz- [z] r4   z: r/   zchecklist.md
zutf-8)encoding)setsortedrglobr   strgetlowerparentsexistsupdater   REQUIRED_BUCKETSr*   anyappendr   
write_textjoin)selfr   present_keywordsmanifest_pathmanifestr   entities_pathpayloadkeywords	checklistr4   r*   generated_dirmd_linesrowr+   r.   r0   generate   sD   	*zChecklistService.generateN)r   r   r   r   )__name__
__module____qualname____doc__rA   rQ   r+   r+   r+   r0   r   	   s    r   N)

__future__r   pathlibr   utils.json_utilsr   r   utils.time_utilsr   r   r+   r+   r+   r0   <module>   s
    