Ë
    I»j�  ã                   ót   — d Z ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z
mZ ddlmZ ddlmZmZ  G d„ d	«      Zy
)z'Level-based interview track generation.é    )Úuuid4)Ú	JobStatus)ÚInterviewTrackRequestÚInterviewTrackResponseÚ
TrackLevel)Ú
DifficultyÚQuestionType)Úgenerate_json)Ú_local_questionsÚ_parse_questionsc                   ó   — e Zd Zdedefd„Zy)ÚInterviewTracksServiceÚpayloadÚreturnc              ƒ   óÄ  ‡K  — d}d‰j                   › d‰j                  › d‰j                  › d‰j                  › d‰j                  › d‰j
                  j                  › �}dt        fˆfd	„}t        |||¬
«      ƒ d {  –—† \  }}}g }|j                  d«      xs g D ]õ  }	t        |	t        «      sŒt        |	j                  dd«      «      }
t        j                  t        j                  t        j                  dœj                  |
j!                  «       t        j                  «      }t#        |	j                  d«      xs g t$        j&                  |«      }|j)                  t+        |
|	j                  d«      ||	j                  dd«      ¬«      «       Œ÷ t-        ‰j.                  t        t1        «       «      ‰j                   t2        j4                  |d|› �|¬«      S 7 �Œ`­w)NzxCreate a progressive interview track. Return JSON: {"levels":[{"level","badge_name","passing_score","questions":[...]}]}zRole: z
Niche: z
JD: z	
Levels: z
Per level: z

Persona: r   c            	      óÀ  •— t         j                  t         j                  t         j                  dœ} g }‰j                  D ]™  }| j                  |j                  «       t         j                  «      }t        ‰j                  t        j                  |‰j                  › d|› �¬«      }|j                  |‰j                  › d|j                  «       › �d|dœ«       Œ› d|iS )N©ÚbeginnerÚintermediateÚadvancedz / )ÚcountÚqtypeÚ
difficultyÚtopicÚ çffffffæ?)ÚlevelÚ
badge_nameÚpassing_scoreÚ	questionsÚlevels)r   ÚEASYÚMEDIUMÚHARDr!   ÚgetÚlowerr   Úquestions_per_levelr	   ÚSHORT_ANSWERÚ
role_titleÚappendÚtitle)Údiff_mapr!   r   ÚdiffÚqsr   s        €ú7/var/www/html/TJ-AI/tj/app/services/interview_tracks.pyÚlocalz.InterviewTracksService.generate.<locals>.local   sÊ   ø€ ä&ŸO™OÜ *× 1Ñ 1Ü&ŸO™OñˆHð
 ˆFØ Ÿœ�Ø—|‘| E§K¡K£M´:×3DÑ3DÓE�Ü%Ø!×5Ñ5Ü&×3Ñ3Ø#Ø$×/Ñ/Ð0°°E°7Ð;ô	�ð —‘à!&Ø)0×);Ñ);Ð(<¸A¸e¿k¹k»m¸_Ð&MØ),Ø%'ñ	õð (ð  ˜fÐ%Ð%ó    )ÚsystemÚuserÚlocal_factoryr!   r   r   r   r    r   r   r   )r   r   r    r   zInterview track via )Úcorrelation_idÚtrack_idr)   ÚstatusÚstubÚmessager!   )r)   ÚnicheÚjob_descriptionr!   r'   ÚpersonaÚvalueÚdictr
   r%   Ú
isinstanceÚstrr   r"   r#   r$   r&   r   r	   r(   r*   r   r   r5   r   r   Ú	SUCCEEDED)Úselfr   r2   r3   r0   Údatar8   Úproviderr!   ÚrawÚ
level_namer-   r    s    `           r/   ÚgeneratezInterviewTracksService.generate   sÉ  øè ø€ ð^ð 	ð
 �W×'Ñ'Ð(¨	°'·-±-°ð AØ×*Ñ*Ð+¨:°g·n±nÐ5Eð FØ!×5Ñ5Ð6°kÀ'Ç/Á/×BWÑBWÐAXðZð 	ð	&”tõ 	&ô2 &3Ø °Eô&
÷  
Ñˆˆd�Hð $&ˆØ—8‘8˜HÓ%Ò+¨Ò+ˆCÜ˜c¤4Ô(ØÜ˜SŸW™W W¨nÓ=Ó>ˆJä&ŸO™OÜ *× 1Ñ 1Ü&ŸO™Oñ÷ ‰c�*×"Ñ"Ó$¤j×&7Ñ&7Ó8ð	 ô
 )Ø—‘˜Ó$Ò*¨¬L×,EÑ,EÀtóˆIð �M‰MÜØ$Ø"Ÿw™w |Ó4Ø'Ø"%§'¡'¨/¸3Ó"?ô	õð ,ô( &Ø"×1Ñ1Üœ›“\Ø×)Ñ)Ü×&Ñ&ØØ*¨8¨*Ð5Øô
ð 	
ð1 
ûs   ƒA:G Á=GÁ>E G N)Ú__name__Ú
__module__Ú__qualname__r   r   rG   © r1   r/   r   r      s   „ ðD
Ð&;ð D
Ð@Vô D
r1   r   N)Ú__doc__Úuuidr   Úapp.schemas.commonr   Úapp.schemas.interview_tracksr   r   r   Úapp.schemas.questionsr   r	   Úapp.services.ai_generater
   Úapp.services.questionsr   r   r   rK   r1   r/   Ú<module>rS      s/   ðÙ -å å (÷ñ ÷
 ;Ý 2ß E÷E
ò E
r1   