Ë
    ^PîiJ  ã                  óT  — d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	m
Z
mZmZmZ ddlmZmZmZ ddlmZ ddlmZmZmZ dd	lmZ dd
lmZ  eddg¬«      Zej=                  de¬«       ed«       e	e«      f	 	 	 dd„«       Zej=                  de¬«       e	e«      f	 	 	 dd„«       Z y)u£   
routes/setup.py â€” Interview Setup
POST /api/setup/photo     â€” upload candidate photo
POST /api/setup/complete  â€” mark setup complete, return next stage URL
é    )ÚannotationsN)ÚPath)Ú	APIRouterÚDependsÚHTTPExceptionÚ
UploadFileÚFileÚForm)ÚPhotoUploadResponseÚSetupCompleteRequestÚSuccessResponse)Úget_current_candidate)Úget_redirect_urlÚget_stage_nameÚadvance_stage)Úsettings)Újson_dbz
/api/setupÚsetup)ÚprefixÚtagsz/photo)Úresponse_model.c              ƒ  óz  K  — t         j                  j                  dd¬«       | j                  dvrt	        dd¬«      ‚| j                  «       ƒ d{  –—† }t        |«      dkD  rt	        dd	¬«      ‚t        t        j                  «       «      }| j                  d
k(  rdnd}t         j                  |d   › d|› d|› �z  }t        |d«      5 }|j                  |«       ddd«       t        j                  t         j                  |d   |t        |«      ddœ«       t        d|ddddœ¬«      S 7 ŒÚ# 1 sw Y   ŒRxY w­w)z„
    Accept candidate photo from setup screen.
    Stores in data/photos/{candidate_id}.jpg
    Returns photo_id for reference.
    T)ÚparentsÚexist_ok)ú
image/jpegz	image/pngz
image/webpi�  z,Only JPEG, PNG, or WebP images are accepted.)Ústatus_codeÚdetailNi  P z&Image too large. Maximum size is 5 MB.r   ÚjpgÚpngÚidÚ_Ú.ÚwbÚphoto_captured)Úcandidate_idÚphoto_idÚ
photo_pathÚeventz'Photo captured and stored successfully.Úpendingz+Face verification will run at session start)ÚstatusÚnote)Úsuccessr&   ÚmessageÚfraud_check)r   Ú	PHOTO_DIRÚmkdirÚcontent_typer   ÚreadÚlenÚstrÚuuidÚuuid4ÚopenÚwriteÚdbÚinsertÚSESSIONS_FILEr   )ÚfileÚ	candidateÚcontentsr&   Úextr'   Úfs          úU/Users/priyanka/Documents/Gols_Ai_Dev/public_hub_candidate/people_hub/routes/setup.pyÚupload_photorB      s/  è ø€ ô ×Ñ×Ñ T°DÐÔ9ð ×ÑÐ IÑIÜ¨Ð4bÔcÐcð —Y‘Y“[× €HÜ
ˆ8ƒ}�Ò&Ü¨Ð4\Ô]Ð]ä”T—Z‘Z“\Ó"€HØ×+Ñ+¨|Ò;‘À€CÜ×#Ñ#¨°4©Ð(9¸¸8¸*ÀAÀcÀUÐ&KÑK€Jä	ˆj˜$Ô	 1Ø	�‰�Ô÷ 
 ô ‡I�IŒh×$Ñ$Ø! $™Ø Ü˜J›Ø(ñ	'ô ô ØØØ9Ø(Ð2_Ñ`ô	ð ð' !ø÷ 
 Ð	üs,   ‚AD;ÁD-ÁA9D;ÃD/ÃAD;Ä/D8Ä4D;z	/completec           
   ƒ  ó0  K  — t        j                  t        j                  |d   d| j                  | j
                  | j                  | j                  dœ«       |j                  dd«      }t        |«      }t        |«      }t        d|› d�|||dœ¬	«      S ­w)
zZ
    Mark setup as complete. Returns the interview URL for candidate's current stage.
    r    Úsetup_complete)r%   r(   r&   Ú	camera_okÚmic_okÚ
network_okÚcurrent_stageé   zSetup complete. Proceeding to r"   )Úredirect_urlÚstageÚ
stage_name)r-   Údata)r9   r:   r   r;   r&   rE   rF   rG   Úgetr   r   r   )Úbodyr=   rK   ÚredirectrL   s        rA   rD   rD   ?   s”   è ø€ ô ‡I�IŒh×$Ñ$Ø! $™Ø(ØŸ™ØŸ™ØŸ™ØŸ™ñ'ô ð —-‘- °Ó3€EÜ" 5Ó)€HÜ  Ó'€JäØ0°°¸AÐ>à$Ø!Ø&ñ
ôð ùs   ‚BB)r<   r   r=   Údict)rO   r   r=   rQ   )!Ú__doc__Ú
__future__r   Úbase64r5   Úpathlibr   Úfastapir   r   r   r   r	   r
   Úmodels.schemasr   r   r   Úmiddleware.auth_middlewarer   Úservices.auth_servicer   r   r   Úconfigr   Úutilsr   r9   ÚrouterÚpostrB   rD   © ó    rA   Ú<module>r`      s½   ðñõ
 #ß Ý ß M× Mß UÑ UÝ <ß QÑ QÝ Ý á	˜,¨g¨YÔ	7€ð ‡�ˆXÐ&9€Ó:á˜C“yÙÐ3Ó4ð(Ø
ð(àò(ó ;ð(ðV ‡�ˆ[¨€Ó9ñ Ð3Ó4ðØ
ðàòó :ñr_   