Ë
    I»jo  ã                   óX   — d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 ddl
mZ  G d„ d«      Zy)	z&Case study simulator generate / grade.é    )Úuuid4)ÚCaseStudyGenerateRequestÚCaseStudyGenerateResponseÚCaseStudyGradeRequestÚCaseStudyGradeResponse)Ú	JobStatus)Úgenerate_jsonc                   ó,   — e Zd Zdedefd„Zdedefd„Zy)ÚCaseStudiesServiceÚpayloadÚreturnc              ƒ   ó  ‡K  — d}d‰j                   › d‰j                  › d‰j                  › d‰j                  j                  › d‰j
                  › d�}dt        fˆfd	„}t        |||¬
«      ƒ d {  –—† \  }}}t        ‰j                  t        t        «       «      t        j                  |d|› �|j                  d«      |j                  d«      t        |j                  d«      xs g «      |j                  d«      xs i ¬«	      S 7 Œ•­w)Nz]Create a hiring case study. Return JSON: {"title","scenario_markdown","tasks":[],"rubric":{}}zRole: z
Industry: z
JD: z
Difficulty: z
Time: z minutesr   c            	      óz   •— ‰ j                   › d�d‰ j                   › d‰ j                  xs d› d�g d¢dddddd	œd
œS )Nz decision casez## Scenario
You are a z at a Úgrowingz[ company. Leadership asks you to diagnose a delivery risk and propose a 30-day action plan.)zIdentify root causeszPropose prioritized actionszDefine success metricszCall out risks and trade-offsé   éF   )Ú	structureÚinsightÚfeasibilityÚcommunicationÚpassing_score)ÚtitleÚscenario_markdownÚtasksÚrubric)Ú
role_titleÚindustry)r   s   €ú3/var/www/html/TJ-AI/tj/app/services/case_studies.pyÚlocalz*CaseStudiesService.generate.<locals>.local   sf   ø€ à#×.Ñ.Ð/¨~Ð>à-¨g×.@Ñ.@Ð-AÀØ×'Ñ'Ò4¨9Ð5ð 6QðQòð "$Ø!Ø#%Ø%'Ø%'ññð ó    ©ÚsystemÚuserÚlocal_factoryzCase study generated via r   r   r   r   )	Úcorrelation_idÚcase_idÚstatusÚstubÚmessager   r   r   r   )r   r   Újob_descriptionÚ
difficultyÚvalueÚtime_limit_minutesÚdictr	   r   r%   Ústrr   r   Ú	SUCCEEDEDÚgetÚlist©Úselfr   r"   r#   r   Údatar(   Úproviders    `      r   ÚgeneratezCaseStudiesService.generate   s  øè ø€ ðKð 	ð
 �W×'Ñ'Ð(¨°W×5EÑ5EÐ4Fð GØ×*Ñ*Ð+¨>¸'×:LÑ:L×:RÑ:RÐ9Sð TØ×/Ñ/Ð0°ð:ð 	ð	”tõ 	ô. &3Ø °Eô&
÷  
Ñˆˆd�Hô )Ø"×1Ñ1Üœ›“LÜ×&Ñ&ØØ/°¨zÐ:Ø—(‘(˜7Ó#Ø"Ÿh™hÐ':Ó;Ü�t—x‘x Ó(Ò.¨BÓ/Ø—8‘8˜HÓ%Ò+¨ô

ð 
	
ð 
ús   ƒA.D	Á1DÁ2BD	c              ƒ   ó  ‡K  — d}d‰j                   › d‰j                  › d‰j                  › d‰j                  › �}dt        fˆfd„}t        |||¬«      ƒ d {  –—† \  }}}t        ‰j                  ‰j                   t        j                  |d	|› �t        |j                  d
«      xs d«      t        |j                  d«      xs d«      |j                  d«      |j                  d«      |j                  d«      xs i ¬«
      S 7 Œ«­w)Nz}Grade a case-study submission. Return JSON: {"total_score","max_total_score","passed","feedback_markdown","rubric_scores":{}}zCase: z
Role: z	
Rubric: z
Submission:
r   c            	      ó¢   •— t        ‰j                  j                  «       «      } | dk  rdn| dk  rdnd}|d|dk\  d|d	z  |d	z  |d	z  |d	z  d
œdœS )NéÈ   g     €K@i   g      R@g      U@g      Y@g     €Q@zBSolid structure. Strengthen quantified impact and risk mitigation.g      Ð?)r   r   r   r   )Útotal_scoreÚmax_total_scoreÚpassedÚfeedback_markdownÚrubric_scores)ÚlenÚcandidate_submissionÚstrip)ÚlengthÚscorer   s     €r   r   z'CaseStudiesService.grade.<locals>.localN   sn   ø€ Ü˜×5Ñ5×;Ñ;Ó=Ó>ˆFØ" SšL‘D°f¸s²l©dÈˆEà$Ø#(Ø 4™-àXð "'¨¡Ø$ t™|Ø#(¨4¡<Ø%*¨T¡\ñ	"ñð r    r!   zCase study graded via r;   r   r<   éd   r=   r>   r?   )
r%   r&   r'   r(   r)   r;   r<   r=   r>   r?   )r&   r   r   rA   r.   r	   r   r%   r   r0   Úfloatr1   r3   s    `      r   ÚgradezCaseStudiesService.gradeC   s  øè ø€ ð$ð 	ð �W—_‘_Ð% X¨g×.@Ñ.@Ð-Að BØ—~‘~Ð& o°g×6RÑ6RÐ5SðUð 	ð
	”tõ 	ô$ &3Ø °Eô&
÷  
Ñˆˆd�Hô &Ø"×1Ñ1Ø—O‘OÜ×&Ñ&ØØ,¨X¨JÐ7Ü˜dŸh™h }Ó5Ò:¸Ó;Ü! $§(¡(Ð+<Ó"=Ò"DÀÓEØ—8‘8˜HÓ%Ø"Ÿh™hÐ':Ó;ØŸ(™( ?Ó3Ò9°rô
ð 	
ð 
ús   ƒADÁDÁB,DN)	Ú__name__Ú
__module__Ú__qualname__r   r   r7   r   r   rG   © r    r   r   r      s-   „ ð1
Ø/ð1
à	"ó1
ðf+
Ð#8ð +
Ð=Sô +
r    r   N)Ú__doc__Úuuidr   Úapp.schemas.case_studiesr   r   r   r   Úapp.schemas.commonr   Úapp.services.ai_generater	   r   rK   r    r   Ú<module>rQ      s)   ðÙ ,å ÷ó õ )Ý 2÷_
ò _
r    