
    PQh                     (   d dl mZmZmZmZ d dlmZmZmZm	Z	 d dl
m
Z
 d dlmZmZmZ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e          Z G d de          Z G d d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e          Z G d! d"e          Z  G d# d$e           Z! G d% d&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/ d0ee$          Z' G d1 d2e          Z( G d3 d4e(          Z) G d5 d6e          Z* G d7 d8ee(          Z+ G d9 d:e          Z, G d; d<e,          Z- G d= d>ee,          Z. G d? d@e          Z/ G dA dBe/          Z0 G dC dDe          Z1 G dE dFee/          Z2 G dG dHe          Z3 G dI dJe3          Z4 G dK dLe          Z5 G dM dNe          Z6 G dO dPe6          Z7 G dQ dRee6          Z8 G dS dTee3          Z9 G dU dVe          Z: G dW dXee:          Z; G dY dZe          Z< G d[ d\e          Z= G d] d^e          Z> G d_ d`e          Z? G da dbe          Z@ G dc dde          ZA G de dfe          ZB G dg dhe          ZC G di dje          ZD G dk dle          ZEdmS )n    )	BaseModelEmailStrField
ConfigDict)OptionalListDictAny)datetime)ProjectStatusCandidateStatusApplicationStatusDocumentTypeCommunicationTypeUserRolec                   &    e Zd Z ed          ZdS )
BaseSchemaT)from_attributesN)__name__
__module____qualname__r   model_config     !/home/runner/workspace/schemas.pyr   r      s         :d333LLLr   r   c                   $    e Zd ZU eed<   eed<   dS )Tokenaccess_token
token_typeNr   r   r   str__annotations__r   r   r   r   r      %         OOOOOr   r   c                   *    e Zd ZU dZee         ed<   dS )	TokenDataNemail)r   r   r   r&   r   r!   r"   r   r   r   r%   r%      s&         E8C=r   r%   c                   <    e Zd ZU eed<   eed<   ej        Zeed<   dS )UserBaser&   	full_nameroleN)	r   r   r   r   r"   r!   r   STAFFr*   r   r   r   r(   r(      s6         OOONNN^D(#####r   r(   c                       e Zd ZU eed<   dS )
UserCreatepasswordNr    r   r   r   r-   r-      s         MMMMMr   r-   c                   ^    e Zd ZU dZee         ed<   dZee         ed<   dZ	ee
         ed<   dS )
UserUpdateNr)   r*   	is_active)r   r   r   r)   r   r!   r"   r*   r   r1   boolr   r   r   r0   r0      sO         #Ix}####D(8
### $Ix~$$$$$r   r0   c                   .    e Zd ZU eed<   eed<   eed<   dS )UserResponseidr1   
created_atN)r   r   r   intr"   r2   r   r   r   r   r4   r4       s0         GGGOOOr   r4   c                   4    e Zd ZU eed<   dZee         ed<   dS )SoftSkillBasenameNdescription)r   r   r   r!   r"   r;   r   r   r   r   r9   r9   &   s/         
III!%K#%%%%%r   r9   c                       e Zd ZdS )SoftSkillCreateNr   r   r   r   r   r   r=   r=   *           Dr   r=   c                   $    e Zd ZU eed<   eed<   dS )SoftSkillResponser5   r6   Nr   r   r   r7   r"   r   r   r   r   rA   rA   -   s'         GGGr   rA   c                   N    e Zd ZU eed<    eddd          Zeed<   dZe	ed<   d	S )
CriterionBaser;   g      ?皙?      $@)defaultgeleweightFis_mandatoryN)
r   r   r   r!   r"   r   rJ   floatrK   r2   r   r   r   rD   rD   2   sO         E##$777FE777L$r   rD   c                       e Zd ZdS )CriterionCreateNr>   r   r   r   rN   rN   7   r?   r   rN   c                   v    e Zd ZU dZee         ed<    eddd          Zee	         ed<   dZ
ee         ed<   dS )CriterionUpdateNr;   rE   rF   rH   rI   rJ   rK   )r   r   r   r;   r   r!   r"   r   rJ   rL   rK   r2   r   r   r   rP   rP   :   s_         !%K#%%%#eDST:::FHUO:::#'L(4.'''''r   rP   c                   .    e Zd ZU eed<   eed<   eed<   dS )CriterionResponser5   
project_idr6   NrB   r   r   r   rS   rS   ?   s0         GGGOOOr   rS   c                   L    e Zd ZU eed<   dZee         ed<   ej        Z	eed<   dS )ProjectBasetitleNr;   status)
r   r   r   r!   r"   r;   r   r   DRAFTrX   r   r   r   rV   rV   E   sB         JJJ!%K#%%%)/FM/////r   rV   c                   D    e Zd ZU g Zee         ed<   g Zee         ed<   dS )ProjectCreatecriteriasoft_skill_idsN)	r   r   r   r\   r   rN   r"   r]   r7   r   r   r   r[   r[   J   s;         &(Hd?#((( "NDI"""""r   r[   c                   ^    e Zd ZU dZee         ed<   dZee         ed<   dZee	         ed<   dS )ProjectUpdateNrW   r;   rX   )
r   r   r   rW   r   r!   r"   r;   rX   r   r   r   r   r_   r_   N   sO         E8C=!%K#%%%&*FH]#*****r   r_   c                       e Zd ZU eed<   eed<   eed<   dZee         ed<   g Ze	e
         ed<   g Ze	e         ed<   eed<   dS )	ProjectResponser5   owner_idr6   N
updated_atr\   soft_skillsowner)r   r   r   r7   r"   r   rc   r   r\   r   rS   rd   rA   r4   r   r   r   ra   ra   S   s}         GGGMMM%)J")))(*Hd$%***+-K'(---r   ra   c                       e Zd ZU eed<   eed<   eed<   dZee         ed<   dZee	         ed<   dZ
ee         ed<   dZee         ed<   dZee         ed	<   dZee         ed
<   dS )CandidateBase
first_name	last_namer&   Nphone
birth_dateaddressnationalityacademic_backgroundwork_experience)r   r   r   r!   r"   r   rj   r   rk   r   rl   rm   rn   ro   r   r   r   rg   rg   ]   s         OOONNNOOOE8C=%)J")))!GXc]!!!!%K#%%%)-#---%)OXc])))))r   rg   c                       e Zd ZdS )CandidateCreateNr>   r   r   r   rq   rq   h   r?   r   rq   c                      e Zd ZU dZee         ed<   dZee         ed<   dZee	         ed<   dZ
ee         ed<   dZee         ed<   dZee         ed<   dZee         ed<   dZee         ed	<   dZee         ed
<   dZee         ed<   dS )CandidateUpdateNrh   ri   r&   rj   rk   rl   rm   rn   ro   status_overall)r   r   r   rh   r   r!   r"   ri   r&   r   rj   rk   r   rl   rm   rn   ro   rt   r   r   r   r   rs   rs   k   s          $J$$$#Ix}### $E8H$$$E8C=%)J")))!GXc]!!!!%K#%%%)-#---%)OXc])))04NH_-44444r   rs   c                   H    e Zd ZU eed<   eed<   eed<   dZee         ed<   dS )CandidateResponser5   rt   r6   Nrc   )	r   r   r   r7   r"   r   r   rc   r   r   r   r   rv   rv   w   sH         GGG####%)J")))))r   rv   c                   D    e Zd ZU dZee         ed<   dZee         ed<   dS )ApplicationBaseNmotivation_letteradditional_info)r   r   r   ry   r   r!   r"   rz   r   r   r   rx   rx   ~   s;         '+x}+++%)OXc])))))r   rx   c                   $    e Zd ZU eed<   eed<   dS )ApplicationCreaterT   candidate_idNr   r   r   r7   r"   r   r   r   r|   r|      s'         OOOr   r|   c                   ^    e Zd ZU dZee         ed<   dZee         ed<   dZ	ee         ed<   dS )ApplicationUpdateNrX   ry   rz   )
r   r   r   rX   r   r   r"   ry   r!   rz   r   r   r   r   r      sQ         *.FH&'...'+x}+++%)OXc])))))r   r   c                   f    e Zd ZU eed<   eed<   eed<   eed<   dZee         ed<   e	ed<   e
ed<   dS )	ApplicationResponser}   rT   rX   
applied_atNrc   	candidateproject)r   r   r   r7   r"   r   r   rc   r   rv   ra   r   r   r   r   r      sl         OOO%)J")))    r   r   c                   $    e Zd ZU eed<   eed<   dS )DocumentBase	file_namedocument_typeN)r   r   r   r!   r"   r   r   r   r   r   r      s'         NNNr   r   c                       e Zd ZdS )DocumentCreateNr>   r   r   r   r   r      r?   r   r   c                   R    e Zd ZU eed<   eed<   eed<   dZee         ed<   eed<   dS )DocumentResponser5   r}   	file_pathN	file_sizeuploaded_at)	r   r   r   r7   r"   r!   r   r   r   r   r   r   r   r      sP         GGGNNN#Ix}###r   r   c                   (    e Zd ZU eed<   dZeed<   dS )NoteBasecontentFis_importantN)r   r   r   r!   r"   r   r2   r   r   r   r   r      s+         LLLL$r   r   c                       e Zd ZU eed<   dS )
NoteCreater}   Nr~   r   r   r   r   r               r   r   c                   D    e Zd ZU dZee         ed<   dZee         ed<   dS )
NoteUpdateNr   r   )	r   r   r   r   r   r!   r"   r   r2   r   r   r   r   r      s:         !GXc]!!!#'L(4.'''''r   r   c                   B    e Zd ZU eed<   eed<   eed<   eed<   eed<   dS )NoteResponser5   r}   user_idr6   userN)r   r   r   r7   r"   r   r4   r   r   r   r   r      sH         GGGLLL
r   r   c                   <    e Zd ZU eed<   eed<   ej        Zeed<   dS )CommunicationBasesubjectbodytypeNr   r   r   r!   r"   r   EMAILr   r   r   r   r   r      s8         LLL
III/5D
55555r   r   c                       e Zd ZU eed<   dS )CommunicationCreater}   Nr~   r   r   r   r   r      r   r   r   c                   R    e Zd ZU ee         ed<   eed<   eed<   ej        Z	eed<   dS )CommunicationBulkCreatecandidate_idsr   r   r   N)
r   r   r   r   r7   r"   r!   r   r   r   r   r   r   r   r      sH         9LLL
III/5D
55555r   r   c                   F    e Zd ZU eed<   eed<   eed<   ej        Zeed<   dS )CommunicationTemplateBaser:   r   r   r   Nr   r   r   r   r   r      sA         
IIILLL
III/5D
55555r   r   c                       e Zd ZdS )CommunicationTemplateCreateNr>   r   r   r   r   r      r?   r   r   c                   R    e Zd ZU eed<   eed<   eed<   eed<   dZee         ed<   dS )CommunicationTemplateResponser5   r1   
created_byr6   Nrc   )	r   r   r   r7   r"   r2   r   rc   r   r   r   r   r   r      sN         GGGOOOOOO%)J")))))r   r   c                   l    e Zd ZU eed<   eed<   dZee         ed<   eed<   eed<   dZ	ee
         ed<   dS )CommunicationResponser5   r}   Nr   sent_atr   r   )r   r   r   r7   r"   r   r   r   rv   r   r4   r   r   r   r   r      sh         GGG!GXc]!!!    #'D(<
 '''''r   r   c                       e Zd ZU  eddd          Zee         ed<   dZee	         ed<   dZ
eee	ef                  ed<   dZee	         ed<   dS )	AIAssessmentBaseNr   d   rQ   scoresummarydetailsmodel_version)r   r   r   r   r   r   rL   r"   r   r!   r   r	   r
   r   r   r   r   r   r      s|         "U4A#666E8E?666!GXc]!!!(,GXd38n%,,,#'M8C='''''r   r   c                   8    e Zd ZU eed<   eed<   eed<   eed<   dS )AIAssessmentResponser5   application_idrT   generated_atNrB   r   r   r   r   r      s<         GGGOOOr   r   c                   N    e Zd ZU eed<   dZee         ed<   dZee         ed<   dS )AIProjectAssistRequestr;   Nrequirementstarget_audience)r   r   r   r!   r"   r   r   r   r   r   r   r   r      sF         "&L(3-&&&%)OXc])))))r   r   c                   $    e Zd ZU eed<   eed<   dS )AICandidateAssessRequestr}   rT   Nr~   r   r   r   r   r      r#   r   r   c                   H    e Zd ZU eed<   eed<   eed<   dZee         ed<   dS )AIMessageCompositionRequestmessage_typecandidate_nameproject_titleNadditional_context)r   r   r   r!   r"   r   r   r   r   r   r   r      sK         (,,,,,,r   r   c                   p    e Zd ZU eed<   eeef         ed<   eeeef                  ed<   ee	         ed<   dS )ApplicationStatsResponsetotal_applicationsapplications_by_statusapplications_by_projectrecent_applicationsN)
r   r   r   r7   r"   r	   r!   r   r
   r   r   r   r   r   r      s]          cN***!$sCx.11111222222r   r   c                   X    e Zd ZU eed<   eed<   dZee         ed<   dZ	ee         ed<   dS )CandidateRankingItemr   r   Nr   assessment_summary)
r   r   r   rv   r"   r!   r   r   rL   r   r   r   r   r   r     sS             !E8E?!!!(,,,,,,r   r   c                   :    e Zd ZU eed<   eed<   ee         ed<   dS )CandidateRankingResponserT   r   rankingsN)r   r   r   r7   r"   r!   r   r   r   r   r   r   r     s9         OOO'((((((r   r   c                   Z    e Zd ZU  edd          Zeed<    eddd          Zeed<   d	S )
PaginationParamsr   )rH   skipr      i  rQ   limitN)r   r   r   r   r   r7   r"   r   r   r   r   r   r     sO         aAD#sqT***E3*****r   r   c                   ^    e Zd ZU dZee         ed<   dZee         ed<   dZ	ee
         ed<   dS )ProjectFilterNrX   rb   search)r   r   r   rX   r   r   r"   rb   r7   r   r!   r   r   r   r   r     sO         &*FH]#***"Hhsm""" FHSM     r   r   c                   ^    e Zd ZU dZee         ed<   dZee         ed<   dZ	ee
         ed<   dS )CandidateFilterNrX   r   rT   )r   r   r   rX   r   r   r"   r   r!   rT   r7   r   r   r   r   r     sO         (,FH_%,,, FHSM    $J$$$$$r   r   c                   ^    e Zd ZU dZee         ed<   dZee         ed<   dZ	ee         ed<   dS )ApplicationFilterNrX   rT   r}   )
r   r   r   rX   r   r   r"   rT   r7   r}   r   r   r   r   r     sP         *.FH&'... $J$$$"&L(3-&&&&&r   r   N)Fpydanticr   r   r   r   typingr   r   r	   r
   r   modelsr   r   r   r   r   r   r   r   r%   r(   r-   r0   r4   r9   r=   rA   rD   rN   rP   rS   rV   r[   r_   ra   rg   rq   rs   rv   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s<	   ; ; ; ; ; ; ; ; ; ; ; ; , , , , , , , , , , , ,       o o o o o o o o o o o o o o o o4 4 4 4 4 4 4 4    I            	      $ $ $ $ $y $ $ $
       % % % % % % % %
    :x   & & & & &I & & &	 	 	 	 	m 	 	 	    
M   
    I   
	 	 	 	 	m 	 	 	( ( ( ( (i ( ( (
    
M   0 0 0 0 0) 0 0 0
# # # # #K # # #+ + + + +I + + +
    j+   	* 	* 	* 	* 	*I 	* 	* 	*	 	 	 	 	m 	 	 	
5 
5 
5 
5 
5i 
5 
5 
5* * * * *
M * * ** * * * *i * * *       * * * * *	 * * *
    *o            9      	 	 	 	 	\ 	 	 	    z<       y          ( ( ( ( ( ( ( (    :x   6 6 6 6 6	 6 6 6
    +   6 6 6 6 6i 6 6 66 6 6 6 6	 6 6 6	 	 	 	 	"; 	 	 	* * * * *J0I * * *( ( ( ( (J(9 ( ( (( ( ( ( (y ( ( (    :'7   * * * * *Y * * *
    y   - - - - -) - - -3 3 3 3 3y 3 3 3- - - - -9 - - -) ) ) ) )y ) ) )+ + + + +y + + +
! ! ! ! !I ! ! !
% % % % %i % % %
' ' ' ' '	 ' ' ' ' 'r   