Ë
    I»jŠ  ã                   óH   — d Z ddlmZ ddlmZmZmZ ddlmZ  G d„ d«      Z	y)z Interview AI highlights service.é    )Ú	JobStatus)ÚHighlightItemÚInterviewHighlightsRequestÚInterviewHighlightsResponse)Úgenerate_jsonc                   ó   — e Zd Zdedefd„Zy)ÚInterviewHighlightsServiceÚpayloadÚreturnc              ƒ   ó   ‡K  — d}d‰j                   › d‰j                  › d‰j                  › d‰j                  › �}dt        fˆfd„}t        |||¬«      ƒ d {  –—† \  }}}d	t        dt        t           fd
„}t        ‰j                  ‰j                   t        j                  |d|› � ||j                  d«      xs g «       ||j                  d«      xs g «       ||j                  d«      xs g «      |j                  d«      ¬«	      S 7 Œ²­w)Nz£Extract interview highlights. Return JSON: {"strengths":[{"kind","text","timestamp_ms","turn_id"}],"weaknesses":[...],"flagged_responses":[...],"summary_markdown"}zInterview: z
Role: z
Scorecard: z
Transcript: r   c                  óÀ  •— ‰j                   D � cg c]  } | j                  dk(  sŒ| ‘Œ }} g }g }|r|j                  d|d   j                  d d |d   j                  |d   j
                  dœ«       t        |«      dkD  rG|j                  dd|d	   j                  |d	   j
                  dœ«       n|j                  dd
d d dœ«       ||g d‰j                  › d�dœS c c} w )NÚ	candidateÚstrengthr   é´   ©ÚkindÚtextÚtimestamp_msÚturn_idé   Úweaknessz4Could add more measurable outcomes to later answers.éÿÿÿÿu@   No transcript turns provided â€” baseline placeholder highlight.u   ## Highlights â€” z7
Key moments extracted for recruiter replay navigation.)Ú	strengthsÚ
weaknessesÚflagged_responsesÚsummary_markdown)Ú
transcriptÚroleÚappendr   r   r   ÚlenÚ
role_title)ÚtÚcandidate_turnsr   r   r
   s       €ú;/var/www/html/TJ-AI/tj/app/services/interview_highlights.pyÚlocalz2InterviewHighlightsService.generate.<locals>.local   s  ø€ Ø*1×*<Ò*<ÓVÑ*< QÀÇÁÈ+Ó@UšqÐ*<ˆOÐVØˆIØˆJÙØ× Ñ à *Ø /°Ñ 2× 7Ñ 7¸¸Ð =Ø(7¸Ñ(:×(GÑ(GØ#2°1Ñ#5×#=Ñ#=ñ	ôô �Ó'¨!Ò+Ø×%Ñ%à$.Ø$ZØ,;¸BÑ,?×,LÑ,LØ'6°rÑ':×'BÑ'Bñ	õð × Ñ à *Ø bØ(,Ø#'ñ	ôð 'Ø(Ø%'à(¨×);Ñ);Ð(<ð =Mð Mñð ùò= Ws
   �C¥C)ÚsystemÚuserÚlocal_factoryÚitemsc                 ó  — g }| xs g D ]�  }t        |t        «      sŒ|j                  t        t	        |j                  dd«      «      t	        |j                  dd«      «      |j                  d«      |j                  d«      ¬«      «       Œƒ |S )Nr   r   r   Ú r   r   r   )Ú
isinstanceÚdictr   r   ÚstrÚget)r)   ÚoutÚis      r$   Úparsez2InterviewHighlightsService.generate.<locals>.parseG   s}   € ØˆCØ’[˜b’[�Ü! !¤TÔ*ØØ—
‘
Ü!Ü  §¡ v¨zÓ!:Ó;Ü  §¡ v¨rÓ!2Ó3Ø%&§U¡U¨>Ó%:Ø !§¡ iÓ 0ô	õð !ð ˆJó    zInterview highlights via r   r   r   r   )	Úcorrelation_idÚinterview_idÚstatusÚstubÚmessager   r   r   r   )r5   r!   Ú	scorecardr   r-   r   Úlistr   r   r4   r   Ú	SUCCEEDEDr/   )	Úselfr
   r&   r'   r%   Údatar7   Úproviderr2   s	    `       r$   Úgeneratez#InterviewHighlightsService.generate   s)  øè ø€ ðUð 	ð ˜'×.Ñ.Ð/¨x¸×8JÑ8JÐ7Kð LØ!×+Ñ+Ð,¨N¸7×;MÑ;MÐ:NðPð 	ð
'	”tõ '	ôR &3Ø °Eô&
÷  
Ñˆˆd�Hð	œð 	¤$¤}Ñ"5ó 	ô +Ø"×1Ñ1Ø ×-Ñ-Ü×&Ñ&ØØ/°¨zÐ:Ù˜DŸH™H [Ó1Ò7°RÓ8Ù˜TŸX™X lÓ3Ò9°rÓ:Ù# D§H¡HÐ-@Ó$AÒ$GÀRÓHØ!ŸX™XÐ&8Ó9ô

ð 
	
ð' 
ús   ƒADÁDÁB3DN)Ú__name__Ú
__module__Ú__qualname__r   r   r?   © r3   r$   r	   r	      s   „ ðS
Ø1ðS
à	$ôS
r3   r	   N)
Ú__doc__Úapp.schemas.commonr   Ú app.schemas.interview_highlightsr   r   r   Úapp.services.ai_generater   r	   rC   r3   r$   Ú<module>rH      s&   ðÙ &å (÷ñ õ
 3÷T
ò T
r3   