Ë
    I»j`  ã                   ó  — d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ  G d„ d	ee«      Z G d
„ dee«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)u:   Schemas â€” Question generation (generic + role/JD-aware).é    )ÚEnum)ÚAny)ÚUUID)Ú	BaseModelÚField)ÚPersona)ÚStubMetac                   ó    — e Zd ZdZdZdZdZdZy)ÚQuestionTypeÚmcqÚshort_answerÚlong_answerÚ
true_falseÚcodingN)Ú__name__Ú
__module__Ú__qualname__ÚMCQÚSHORT_ANSWERÚLONG_ANSWERÚ
TRUE_FALSEÚCODING© ó    ú//var/www/html/TJ-AI/tj/app/schemas/questions.pyr   r      s   „ Ø
€CØ!€LØ€KØ€JØ�Fr   r   c                   ó   — e Zd ZdZdZdZy)Ú
DifficultyÚeasyÚmediumÚhardN)r   r   r   ÚEASYÚMEDIUMÚHARDr   r   r   r   r      s   „ Ø€DØ€FØ�Dr   r   c                   óJ  — e Zd ZU dZ edd¬«      Zedz  ed<    edddg¬	«      Ze	ed
<    edddg¬	«      Z
e	ed<   ej                  Zeed<   ej                  Zeed<    eddd¬«      Zeed<    eddd¬«      Ze	ed<    edd¬«      Ze	dz  ed<    eed¬«      Zee	ef   ed<   y)ÚQuestionGenRequestzPOST /api/v1/questions/generateNz:Caller correlation id for tracing across Platform services©ÚdefaultÚdescriptionÚcorrelation_id.é   ÚMathematics©Ú
min_lengthÚexamplesÚsubjectÚAlgebraÚtopicÚquestion_typeÚ
difficultyé   é2   ©r'   ÚgeÚleÚcountÚené   é
   ©r'   r-   Ú
max_lengthÚlanguagez<Optional source text / syllabus excerpt to ground generationÚcontextz@Platform-specific knobs (bloom_level, include_explanation, etc.)©Údefault_factoryr(   Úconstraints)r   r   r   Ú__doc__r   r)   r   Ú__annotations__r/   Ústrr1   r   r   r2   r   r"   r3   r9   Úintr?   r@   ÚdictrC   r   r   r   r   r%   r%      sË   … Ù)á"'°ÐA}ô #€N�D˜4‘Kó á˜¨°m°_ÔE€GˆSÓEÙ�s q°I°;Ô?€Eˆ3Ó?Ø".×"2Ñ"2€M�<Ó2Ø'×.Ñ.€J�
Ó.Ù˜q Q¨2Ô.€Eˆ3Ó.Ù $°1ÀÔD€HˆcÓDÙ¨Ð9wô €GˆS�4‰Zó á"'¸ð  JLô #€K��c˜3�h‘ô r   r%   c                   ó0   — e Zd ZU eed<   eed<   dZeed<   y)ÚGeneratedOptionÚkeyÚtextFÚ
is_correctN)r   r   r   rF   rE   rM   Úboolr   r   r   rJ   rJ   ,   s   … Ø	ƒHØ
ƒIØ€J�Ôr   rJ   c                   ó¦   — e Zd ZU eed<   eed<   eed<   eed<    ee¬«      Z	ee
   ed<   dZedz  ed<   dZedz  ed	<    ee¬«      Zeeef   ed
<   y)ÚGeneratedQuestionÚidr2   r3   Ústem©rB   ÚoptionsNÚanswerÚexplanationÚmetadata)r   r   r   rF   rE   r   r   r   ÚlistrT   rJ   rU   rV   rH   rW   r   r   r   r   rP   rP   2   s_   … ØƒGØÓØÓØ
ƒIÙ%*¸4Ô%@€GˆT�/Ñ"Ó@Ø€FˆC�$‰JÓØ"€K��t‘Ó"Ù$°TÔ:€Hˆd�3˜�8‰nÔ:r   rP   c                   óD   — e Zd ZU dZedz  ed<    ee¬«      Zee	   ed<   y)ÚQuestionGenResponseNr)   rS   Ú	questions)
r   r   r   r)   r   rE   r   rX   r[   rP   r   r   r   rZ   rZ   =   s%   … Ø"&€N�D˜4‘KÓ&Ù).¸tÔ)D€IˆtÐ%Ñ&ÔDr   rZ   c                   óÊ  — e Zd ZU dZdZedz  ed<    edddg¬«      Ze	ed<    edd	d
¬«      Z
e	ed<   ej                  Zeed<    eddg¬«      Ze	dz  ed<    eddg¬«      Ze	dz  ed<    eed¬«      Zee	   ed<    ed„ ¬«      Zee   ed<   ej*                  Zeed<    eddd¬«      Zeed<    eddd ¬!«      Ze	ed"<    edd#¬$«      Ze	dz  ed%<    ee¬«      Zee	ef   ed&<   y)'ÚRoleQuestionGenRequestz POST /api/v1/questions/from-roleNr)   .r*   zSenior Backend Engineerr,   Ú
role_titleé   z5Full or partial JD used to ground question generation)r-   r(   Újob_descriptionÚpersonaÚsenior)r'   r.   Ú	seniorityÚEngineeringÚ
departmentz5Optional skill focus list; derived from JD when emptyrA   Úskillsc                  ó$   — t         j                  gS )N)r   r   r   r   r   Ú<lambda>zRoleQuestionGenRequest.<lambda>T   s   € ¤×!:Ñ!:Ñ ;r   rS   Úquestion_typesr3   é   r5   r6   r9   r:   r;   r<   r=   r?   zAExtra interviewer guidance (e.g. include system-design deep dive)r&   ÚinstructionsrT   )r   r   r   rD   r)   r   rE   r   r^   rF   r`   r   Ú	TECHNICALra   rc   re   rX   rf   ri   r   r   r"   r3   r9   rG   r?   rk   rH   rT   r   r   r   r   r]   r]   B   s&  … Ù*à"&€N�D˜4‘KÓ&Ù˜C¨AÐ9RÐ8SÔT€J�ÓTÙ ØØØKô€O�Só ð
 ×(Ñ(€GˆWÓ(Ù!¨$¸(¸ÔD€Iˆs�T‰zÓDÙ"¨4¸=¸/ÔJ€J��d‘
ÓJÙØØKô€FˆD�‰Ió ñ */Ù;ô*€N�D˜Ñ&ó ð (×.Ñ.€J�
Ó.Ù˜q Q¨2Ô.€Eˆ3Ó.Ù $°1ÀÔD€HˆcÓDÙ$ØØWô €L�#˜‘*ó ñ $°DÔ9€GˆT�#�s�(‰^Ô9r   r]   c                   ó€   — e Zd ZU dZedz  ed<   eed<   eed<    ee	d¬«      Z
e	eef   ed<    ee¬«      Zee   ed	<   y)
ÚRoleQuestionGenResponseNr)   r^   ra   z7Rendered persona prompt templates used for this requestrA   Úprompt_previewrS   r[   )r   r   r   r)   r   rE   rF   r   r   rH   ro   rX   r[   rP   r   r   r   rn   rn   `   sQ   … Ø"&€N�D˜4‘KÓ&ØƒOØÓÙ%*ØØMô&€N�D˜˜c˜‘Nó ñ */¸tÔ)D€IˆtÐ%Ñ&ÔDr   rn   N)rD   Úenumr   Útypingr   Úuuidr   Úpydanticr   r   Úapp.promptsr   Úapp.schemas.commonr	   rF   r   r   r%   rJ   rP   rZ   r]   rn   r   r   r   Ú<module>rv      s‚   ðÙ @å Ý Ý ç %å Ý 'ô�3˜ô ô��dô ô˜ô ô"�iô ô;˜	ô ;ôE˜(ô Eô
:˜Yô :ô<E˜hõ Er   