Ë
    I»jÏ  ã                   óÒ  — d 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 ddlmZmZm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 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 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 â€” Final SOW AI coverage helpers.é    )ÚAny)ÚUUID)Ú	BaseModelÚField)ÚPersona)ÚStubMeta)Ú
DifficultyÚGeneratedQuestionÚQuestionTypec                   óž   — e Zd ZU dZdZedz  ed<    edd¬«      Ze	ed<   dZ
e	dz  ed<    ed	d
d¬«      Ze	ed<    ee¬«      Zee	ef   ed<   y)ÚJdInclusivityRewriteRequestz1POST /api/v1/job-descriptions/inclusivity-rewriteNÚcorrelation_id.é   ©Ú
min_lengthÚjob_descriptionÚ
role_titleÚené   é
   ©Údefaultr   Ú
max_lengthÚlanguage©Údefault_factoryÚoptions)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r   Ústrr   r   Údictr   r   © ó    ú-/var/www/html/TJ-AI/tj/app/schemas/helpers.pyr   r      s\   … Ù;à"&€N�D˜4‘KÓ&Ù  °Ô4€O�SÓ4Ø!€J��d‘
Ó!Ù $°1ÀÔD€HˆcÓDÙ#°DÔ9€GˆT�#�s�(‰^Ô9r&   r   c                   óŽ   — e Zd ZU dZedz  ed<   dZedz  ed<   dZedz  ed<    e	e
¬«      Ze
e   ed<    e	e
¬«      Ze
e   ed<   y)ÚJdInclusivityRewriteResponseNr   ÚoriginalÚrewritten_markdownr   Úremoved_bias_phrasesÚnotes)r   r   r    r   r   r"   r*   r#   r+   r   Úlistr,   r-   r%   r&   r'   r)   r)      sT   … Ø"&€N�D˜4‘KÓ&Ø€Hˆc�D‰jÓØ%)Ð˜˜d™
Ó)Ù&+¸DÔ&AÐ˜$˜s™)ÓAÙ¨TÔ2€Eˆ4�‰9Ô2r&   r)   c                   ó:  — e Zd ZU dZdZedz  ed<   eed<   eed<   dZedz  ed<   e	j                  Ze	ed<    ee¬«      Zee   ed	<    ee¬«      Zee   ed
<    ee¬«      Zeeeef      ed<   dZedz  ed<    eddd¬«      Zeed<    ee¬«      Zeeef   ed<   y)ÚNextQuestionRequestz%POST /api/v1/interviews/next-questionNr   Úinterview_idr   r   Úpersonar   Úplanned_questionsÚasked_question_idsÚ
transcriptÚ
last_scorer   r   r   r   r   r   )r   r   r    r!   r   r   r"   r#   r   r   Ú	TECHNICALr2   r   r.   r3   r4   r5   r$   r   r6   Úfloatr   r   r%   r&   r'   r0   r0      s¸   … Ù/à"&€N�D˜4‘KÓ&ØÓØƒOØ"&€O�S˜4‘ZÓ&Ø×(Ñ(€GˆWÓ(Ù#(¸Ô#>Ð�t˜C‘yÓ>Ù$)¸$Ô$?Ð˜˜S™	Ó?Ù',¸TÔ'B€J��T˜#˜s˜(‘^Ñ$ÓBØ#€J�˜‘Ó#Ù $°1ÀÔD€HˆcÓDÙ#°DÔ9€GˆT�#�s�(‰^Ô9r&   r0   c                   óv   — e Zd ZU dZedz  ed<   eed<   dZedz  ed<   dZedz  ed<   dZ	edz  ed<   dZ
eed<   y)	ÚNextQuestionResponseNr   r1   Úquestion_idÚquestion_textÚ	rationaleFÚdone)r   r   r    r   r   r"   r#   r;   r<   r=   r>   Úboolr%   r&   r'   r:   r:   /   sJ   … Ø"&€N�D˜4‘KÓ&ØÓØ"€K��t‘Ó"Ø $€M�3˜‘:Ó$Ø €Iˆs�T‰zÓ Ø€Dˆ$Ôr&   r:   c                   ó´   — e Zd ZU dZdZedz  ed<    eddd¬«      Ze	ed<   dZ
e	dz  ed	<   dZe	dz  ed
<    eddd¬«      Ze	ed<    ee¬«      Zee	ef   ed<   y)ÚTtsSynthesizeRequestu6   POST /api/v1/tts/synthesize â€” AI interviewer speech.Nr   .é   i   )r   r   ÚtextÚvoice_idÚ
voice_namer   r   r   r   r   r   r   )r   r   r    r!   r   r   r"   r   rC   r#   rD   rE   r   r$   r   r   r%   r&   r'   rA   rA   8   sl   … Ù@à"&€N�D˜4‘KÓ&Ù�c a°DÔ9€Dˆ#Ó9Ø€Hˆc�D‰jÓØ!€J��d‘
Ó!Ù $°1ÀÔD€HˆcÓDÙ#°DÔ9€GˆT�#�s�(‰^Ô9r&   rA   c                   ól   — e Zd ZU dZedz  ed<   dZedz  ed<   dZeed<   dZ	edz  ed<   dZ
edz  ed<   y)ÚTtsSynthesizeResponseNr   Úaudio_base64z
audio/mpegÚ	mime_typerD   Úprovider)r   r   r    r   r   r"   rH   r#   rI   rD   rJ   r%   r&   r'   rG   rG   C   sD   … Ø"&€N�D˜4‘KÓ&Ø#€L�#˜‘*Ó#Ø!€IˆsÓ!Ø€Hˆc�D‰jÓØ€Hˆc�D‰jÔr&   rG   c                   óÌ   — e Zd ZU dZdZedz  ed<   eed<   dZedz  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e¬«      Zeeef   ed<   y)ÚScenarioGenerateRequestzPOST /api/v1/scenarios/generateNr   r   r   Ú
difficultyé   rB   r   )r   ÚgeÚleÚcountr   r   r   r   r   r   )r   r   r    r!   r   r   r"   r#   r   r	   ÚMEDIUMrM   r   rQ   Úintr   r$   r   r   r%   r&   r'   rL   rL   K   ss   … Ù)à"&€N�D˜4‘KÓ&ØƒOØ"&€O�S˜4‘ZÓ&Ø'×.Ñ.€J�
Ó.Ù˜q Q¨2Ô.€Eˆ3Ó.Ù $°1ÀÔD€HˆcÓDÙ#°DÔ9€GˆT�#�s�(‰^Ô9r&   rL   c                   óX   — e Zd ZU dZedz  ed<   dZedz  ed<    ee	¬«      Z
e	e   ed<   y)ÚScenarioGenerateResponseNr   Úscenario_set_idr   Ú	scenarios)r   r   r    r   r   r"   rV   r#   r   r.   rW   r
   r%   r&   r'   rU   rU   W   s3   … Ø"&€N�D˜4‘KÓ&Ø"&€O�S˜4‘ZÓ&Ù).¸tÔ)D€IˆtÐ%Ñ&ÔDr&   rU   c                   ó¸   — e Zd ZU dZdZedz  ed<   dZedz  ed<   eed<    e	dd¬«      Z
eeeef      ed	<    e	d
dd¬«      Zeed<    e	e¬«      Zeeef   ed<   y)ÚScenarioGradeRequestzPOST /api/v1/scenarios/gradeNr   rV   r   .rB   r   Úanswersr   r   r   r   r   r   r   )r   r   r    r!   r   r   r"   rV   r#   r   rZ   r.   r$   r   r   r   r%   r&   r'   rY   rY   ]   sn   … Ù&à"&€N�D˜4‘KÓ&Ø"&€O�S˜4‘ZÓ&ØƒOÙ$)¨#¸!Ô$<€GˆT�$�s˜C�x‘.Ñ!Ó<Ù $°1ÀÔD€HˆcÓDÙ#°DÔ9€GˆT�#�s�(‰^Ô9r&   rY   c                   óf   — e Zd ZU dZedz  ed<   dZeed<   dZeed<   dZ	e
dz  ed<   dZedz  ed<   y)	ÚScenarioGradeResponseNr   g        Útotal_scoreg      Y@Úmax_total_scoreÚpassedÚfeedback_markdown)r   r   r    r   r   r"   r]   r8   r^   r_   r?   r`   r#   r%   r&   r'   r\   r\   h   sA   … Ø"&€N�D˜4‘KÓ&Ø€K�ÓØ"€O�UÓ"Ø€FˆD�4‰KÓØ$(Ð�s˜T‘zÔ(r&   r\   c                   ó¦   — e Zd ZU dZdZedz  ed<   eed<    edd¬«      Z	e
eeef      ed<    ee
¬	«      Ze
e   ed
<    ee¬	«      Zeeef   ed<   y)ÚInterviewValidateLockRequestz,POST /api/v1/interview-preview/validate-lockNr   r   .rB   r   Ú	questionsr   Úmandatory_question_idsr   )r   r   r    r!   r   r   r"   r#   r   rc   r.   r$   r   rd   r   r%   r&   r'   rb   rb   p   sa   … Ù6à"&€N�D˜4‘KÓ&ØƒOÙ&+¨C¸AÔ&>€Iˆt�D˜˜c˜‘NÑ#Ó>Ù(-¸dÔ(CÐ˜D ™IÓCÙ#°DÔ9€GˆT�#�s�(‰^Ô9r&   rb   c                   ót   — e Zd ZU dZedz  ed<   dZeed<    ee	¬«      Z
e	e   ed<    ee	¬«      Ze	e   ed<   y)ÚInterviewValidateLockResponseNr   FÚready_to_lockr   ÚissuesÚwarnings)r   r   r    r   r   r"   rg   r?   r   r.   rh   r#   ri   r%   r&   r'   rf   rf   z   s@   … Ø"&€N�D˜4‘KÓ&Ø€M�4ÓÙ¨dÔ3€FˆD�‰IÓ3Ù°Ô5€Hˆd�3‰iÔ5r&   rf   c                   óÆ   — e Zd ZU dZdZedz  ed<   eed<    edd¬«      Z	e
eeef      ed<   ej                  Zeed	<    ed
dd¬«      Zeed<    ee¬«      Zeeef   ed<   y)ÚFollowUpLogicRequestz5POST /api/v1/interview-preview/define-follow-up-logicNr   r   .rB   r   rc   r2   r   r   r   r   r   r   r   )r   r   r    r!   r   r   r"   r#   r   rc   r.   r$   r   r   r7   r2   r   r   r%   r&   r'   rk   rk   �   sp   … Ù?à"&€N�D˜4‘KÓ&ØƒOÙ&+¨C¸AÔ&>€Iˆt�D˜˜c˜‘NÑ#Ó>Ø×(Ñ(€GˆWÓ(Ù $°1ÀÔD€HˆcÓDÙ#°DÔ9€GˆT�#�s�(‰^Ô9r&   rk   c                   ó:   — e Zd ZU eed<   eed<   eed<   dZeed<   y)ÚFollowUpRuler;   ÚtriggerÚfollow_up_promptrB   Ú	max_depthN)r   r   r    r#   r"   rp   rS   r%   r&   r'   rm   rm   Œ   s   … ØÓØƒLØÓØ€IˆsÔr&   rm   c                   óX   — e Zd ZU dZedz  ed<    ee¬«      Zee	   ed<   dZ
edz  ed<   y)ÚFollowUpLogicResponseNr   r   ÚrulesÚlogic_markdown)r   r   r    r   r   r"   r   r.   rs   rm   rt   r#   r%   r&   r'   rr   rr   “   s2   … Ø"&€N�D˜4‘KÓ&Ù %°dÔ ;€Eˆ4�ÑÓ;Ø!%€N�C˜$‘JÔ%r&   rr   c                   óò   — e Zd ZU dZdZedz  ed<   eed<    ee	¬«      Z
e	eeef      ed<    edd¬	«      Ze	eeef      ed
<    ee	¬«      Ze	e   ed<    eddd¬«      Zeed<    ee¬«      Zeeef   ed<   y)ÚMergeCustomQuestionsRequestz5POST /api/v1/interview-preview/merge-custom-questionsNr   r   r   Úexisting_questions.rB   r   Úcustom_questionsrd   r   r   r   r   r   r   )r   r   r    r!   r   r   r"   r#   r   r.   rw   r$   r   rx   rd   r   r   r%   r&   r'   rv   rv   ™   s’   … Ù?à"&€N�D˜4‘KÓ&ØƒOÙ/4ÀTÔ/JÐ˜˜T # s (™^Ñ,ÓJÙ-2°3À1Ô-EÐ�d˜4  S ™>Ñ*ÓEÙ(-¸dÔ(CÐ˜D ™IÓCÙ $°1ÀÔD€HˆcÓDÙ#°DÔ9€GˆT�#�s�(‰^Ô9r&   rv   c                   ó~   — e Zd ZU dZedz  ed<    ee¬«      Zee	e
ef      ed<    ee¬«      Zee
   ed<   dZeed<   y)ÚMergeCustomQuestionsResponseNr   r   rc   rd   r   Úadded_count)r   r   r    r   r   r"   r   r.   rc   r$   r#   r   rd   r{   rS   r%   r&   r'   rz   rz   ¥   sJ   … Ø"&€N�D˜4‘KÓ&Ù&+¸DÔ&A€Iˆt�D˜˜c˜‘NÑ#ÓAÙ(-¸dÔ(CÐ˜D ™IÓCØ€K�Ôr&   rz   N)!r!   Útypingr   Úuuidr   Úpydanticr   r   Úapp.promptsr   Úapp.schemas.commonr   Úapp.schemas.questionsr	   r
   r   r   r)   r0   r:   rA   rG   rL   rU   rY   r\   rb   rf   rk   rm   rr   rv   rz   r%   r&   r'   Ú<module>r‚      së   ðÙ 0å Ý ç %å Ý 'ß MÑ Mô: )ô :ô3 8ô 3ô:˜)ô :ô ˜8ô ô:˜9ô :ô ˜Hô  ô	:˜iô 	:ôE˜xô Eô:˜9ô :ô)˜Hô )ô: 9ô :ô6 Hô 6ô:˜9ô :ô�9ô ô&˜Hô &ô	: )ô 	:ô 8õ r&   