Ë
    I»jË  ã                   ót   — 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 ddlmZ ddlmZmZ  G d„ d	«      Zy
)z)Timed aptitude / logical reasoning tests.é    )Úuuid4)ÚAptitudeGenerateRequestÚAptitudeGenerateResponseÚAptitudeGradeRequestÚAptitudeGradeResponse)Ú	JobStatus)ÚQuestionType)Úgenerate_json)Ú_local_questionsÚ_parse_questionsc                   ó,   — e Zd Zdedefd„Zdedefd„Zy)ÚAptitudeServiceÚpayloadÚreturnc           
   ƒ   ó
  ‡K  — d}d‰j                   › d‰j                  › d‰j                  j                  › d‰j                  › d‰j
                  › �
}dt        fˆfd„}t        |||¬	«      ƒ d {  –—† \  }}}t        |j                  d
g «      t        j                  ‰j                  «      }t        ‰j                  t        t        «       «      ‰j                   ‰j
                  t         j"                  |d|› �|¬«      S 7 Œ�­w)NzOGenerate timed aptitude / reasoning questions. Return JSON: {"questions":[...]}zDomain: z
Role: z
Difficulty: z
Count: z
Time limit: r   c                  ó~   •— dt        ‰ j                  t        j                  ‰ j                  ‰ j
                  ¬«      iS )NÚ	questions)ÚcountÚqtypeÚ
difficultyÚtopic)r   r   r	   ÚMCQr   Údomain)r   s   €ú//var/www/html/TJ-AI/tj/app/services/aptitude.pyÚlocalz'AptitudeService.generate.<locals>.local   s8   ø€ àÔ-Ø!Ÿ-™-Ü&×*Ñ*Ø&×1Ñ1Ø!Ÿ.™.ô	ðð ó    ©ÚsystemÚuserÚlocal_factoryr   zAptitude generated via )Úcorrelation_idÚaptitude_idr   Útime_limit_minutesÚstatusÚstubÚmessager   )r   Ú
role_titler   Úvaluer   r#   Údictr
   r   Úgetr	   r   r   r!   Ústrr   r   Ú	SUCCEEDED)	Úselfr   r   r   r   Údatar%   Úproviderr   s	    `       r   ÚgeneratezAptitudeService.generate   s  øè ø€ à_ð 	ð �w—~‘~Ð& h¨w×/AÑ/AÐ.Bð CØ"×-Ñ-×3Ñ3Ð4°I¸g¿m¹m¸_ð MØ"×5Ñ5Ð6ð8ð 	ð	”tõ 	ô &3Ø °Eô&
÷  
Ñˆˆd�Hô %Ø�H‰H�[ "Ó%¤|×'7Ñ'7¸×9KÑ9Kó
ˆ	ô (Ø"×1Ñ1ÜœE›G›Ø—>‘>Ø&×9Ñ9Ü×&Ñ&ØØ-¨h¨ZÐ8Øô	
ð 		
ð 
ús   ƒA-DÁ0DÁ1BDc              ƒ   ó*  ‡K  — d}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«      t        |j                  d«      xs g «      ¬«      S 7 ŒÄ­w)Nz‹Grade aptitude answers. Return JSON: {"total_score","max_total_score","passed","percentile_estimate","feedback_markdown","item_results":[]}zid=z	
answers=z
time=r   c                  ó¾   •— t        ‰j                  «      } t        | «      }t        |dz  d«      }||||dz  k\  ddt	        | «      D �cg c]  }|ddœ‘Œ	 c}dœS c c}w )Ngffffffæ?é   g333333ã?g     @P@z.Good logical consistency. Practice timed sets.)ÚindexÚscore)Útotal_scoreÚmax_total_scoreÚpassedÚpercentile_estimateÚfeedback_markdownÚitem_results)ÚlenÚanswersÚfloatÚroundÚrange)ÚnÚ	max_totalÚtotalÚir   s       €r   r   z$AptitudeService.grade.<locals>.local?   sm   ø€ Ü�G—O‘OÓ$ˆAÜ˜a›ˆIÜ˜) c™/¨1Ó-ˆEà$Ø#,Ø 9¨s¡?Ñ2Ø'+Ø%UÜEJÈ1ÄXÓ NÁXÀ¨1°sÓ!;ÀXÑ Nñð ùò !Os   Á	Ar   zAptitude graded via r6   r   r7   r8   r9   r:   r;   )r!   r"   r$   r%   r&   r6   r7   r8   r9   r:   r;   )r"   r=   Útime_taken_secondsr)   r
   r   r!   r   r,   r>   r*   Úlist)r-   r   r   r   r   r.   r%   r/   s    `      r   ÚgradezAptitudeService.grade7   s  øè ø€ ð9ð 	ð
 �W×(Ñ(Ð)¨°G·O±OÐ3DÀGÈG×LfÑLfÐKgÐhˆð	”tõ 	ô &3Ø °Eô&
÷  
Ñˆˆd�Hô %Ø"×1Ñ1Ø×+Ñ+Ü×&Ñ&ØØ*¨8¨*Ð5Ü˜dŸh™h }Ó5Ò:¸Ó;Ü! $§(¡(Ð+<Ó"=Ò"BÀÓCØ—8‘8˜HÓ%Ø $§¡Ð)>Ó ?Ø"Ÿh™hÐ':Ó;Ü˜dŸh™h ~Ó6Ò<¸"Ó=ô
ð 	
ð 
ús   ƒA	DÁDÁCDN)	Ú__name__Ú
__module__Ú__qualname__r   r   r0   r   r   rG   © r   r   r   r      s-   „ ð#
Ð&=ð #
ÐBZó #
ðJ$
Ð#7ð $
Ð<Qô $
r   r   N)Ú__doc__Úuuidr   Úapp.schemas.aptituder   r   r   r   Úapp.schemas.commonr   Úapp.schemas.questionsr	   Úapp.services.ai_generater
   Úapp.services.questionsr   r   r   rK   r   r   Ú<module>rS      s/   ðÙ /å ÷ó õ )Ý .Ý 2ß E÷J
ò J
r   