Ë
    I»ju  ã                   óD   — d Z ddlmZmZ ddlmZ ddlmZ  G d„ d«      Zy)z1AI-generated candidate profile pages / summaries.é    )Ú CandidateProfileSummarizeRequestÚ!CandidateProfileSummarizeResponse)Ú	JobStatus)Úgenerate_jsonc                   ó   — e Zd Zdedefd„Zy)ÚCandidateProfilesServiceÚpayloadÚreturnc              ƒ   óì  ‡K  — d}d‰j                   › d‰j                  › d‰j                  xs dd d › d‰j                  dd  › d	‰j                  dd  › d
‰j
                  › d‰j                  dd  › �}dt        fˆfd„}t        |||¬«      ƒ d {  –—† \  }}}t        ‰j                  ‰j                   t        j                  |d|› �|j                  d«      |j                  d«      t        |j                  d«      xs g «      t        |j                  d«      xs g «      |j                  d«      t        |j                  d«      xs g «      t        |j                  d«      xs g «      ¬«      S 7 Œá­w)Nz¸Build an AI candidate profile summary. Return JSON: {"headline","summary_markdown","strengths":[],"growth_areas":[],"readiness_score","badge_highlights":[],"recommended_next_steps":[]}zCandidate: z
Target role: z	
Resume: Ú i¸  z
Interviews: iöÿÿÿz
Assessments: z	
Badges: z

Reports: éûÿÿÿr
   c                  óÌ  •— t        ‰j                  «      d d } ddg}‰j                  r|j                  d«       dg}dt	        ddt        ‰j                  «      z  «      z   }‰j                  xs d	}d
|› �d‰j                  › dt        ‰j                  «      › dt        ‰j                  «      › dt        ‰j                  «      › d�	||t        t	        d|«      d«      | ddgdœS )Né   zClear communicationzConsistent mock performancezAssessment participationzDeepen role-specific examplesgš™™™™™á?gffffffÖ?gš™™™™™©?ztarget roleszInterview-ready profile for z# Candidate z!

Profile assembled from resume, z interviews, z assessments, and z	 badges.
gffffffî?é   z%Complete one advanced interview trackz'Add quantified impact stories to resume)ÚheadlineÚsummary_markdownÚ	strengthsÚgrowth_areasÚreadiness_scoreÚbadge_highlightsÚrecommended_next_steps)
ÚlistÚbadgesÚassessment_recordsÚappendÚminÚlenÚinterview_historyÚtarget_roleÚcandidate_idÚround)r   r   ÚgrowthÚ	readinessÚroler	   s        €ú9/var/www/html/TJ-AI/tj/app/services/candidate_profiles.pyÚlocalz1CandidateProfilesService.summarize.<locals>.local   s  ø€ Ü# G§N¡NÓ3°B°QÐ7ÐØ.Ð0MÐNˆIØ×)Ò)Ø× Ñ Ð!;Ô<Ø5Ð6ˆFØœs 4¨´°G×4MÑ4MÓ0NÑ)NÓOÑOˆIØ×&Ñ&Ò8¨.ˆDà:¸4¸&ÐAà" 7×#7Ñ#7Ð"8ð 96Ü69¸'×:SÑ:SÓ6TÐ5UÐUbÜ˜7×5Ñ5Ó6Ð7Ð7IÌ#ÈgÏnÉnÓJ]ÐI^Ð^hðjð 'Ø &Ü#(¬¨T°9Ó)=¸qÓ#AØ$4à;Ø=ð+ñð ó    )ÚsystemÚuserÚlocal_factoryzCandidate profile via r   r   r   r   r   r   r   )Úcorrelation_idr    ÚstatusÚstubÚmessager   r   r   r   r   r   r   )r    r   Úresume_textr   r   r   ÚreportsÚdictr   r   r+   r   Ú	SUCCEEDEDÚgetr   )Úselfr	   r(   r)   r&   Údatar-   Úproviders    `      r%   Ú	summarizez"CandidateProfilesService.summarize   s�  øè ø€ ðYð 	ð ˜'×.Ñ.Ð/¨¸w×?RÑ?RÐ>Sð TØ×+Ñ+Ò1¨r°5°DÐ9Ð:ð ;Ø"×4Ñ4°S°TÐ:Ð;ð <Ø#×6Ñ6°s°tÐ<Ð=ð >Ø—~‘~Ð& k°'·/±/À"À#Ð2FÐ1Gð	Ið 	ð	”tõ 	ô2 &3Ø °Eô&
÷  
Ñˆˆd�Hô 1Ø"×1Ñ1Ø ×-Ñ-Ü×&Ñ&ØØ,¨X¨JÐ7Ø—X‘X˜jÓ)Ø!ŸX™XÐ&8Ó9Ü˜4Ÿ8™8 KÓ0Ò6°BÓ7Ü˜dŸh™h ~Ó6Ò<¸"Ó=Ø ŸH™HÐ%6Ó7Ü! $§(¡(Ð+=Ó">Ò"DÀ"ÓEÜ#'¨¯©Ð1IÓ(JÒ(PÈbÓ#Qô
ð 	
ð 
ús   ƒBE4ÂE2ÂC"E4N)Ú__name__Ú
__module__Ú__qualname__r   r   r7   © r'   r%   r   r      s   „ ð9
Ø7ð9
à	*ô9
r'   r   N)	Ú__doc__Úapp.schemas.candidate_profilesr   r   Úapp.schemas.commonr   Úapp.services.ai_generater   r   r;   r'   r%   Ú<module>r@      s   ðÙ 7÷õ )Ý 2÷:
ò :
r'   