
    mh                        d dl m Z  d dlmZ d dlmZ d dlmZmZmZm	Z	 d dl
mZmZmZ d dlmZ d dlmZ d dl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# G d+ d,e      Z$ G d- d.e      Z% G d/ d0e      Z& G d1 d2e      Z' G d3 d4e      Z( G d5 d6e      Z) G d7 d8e      Z* G d9 d:e      Z+ G d; d<e      Z, G d= d>e      Z- G d? d@e      Z. G dA d
e      Z G dB dCe      Z/ G dD dE      Z0 G dF dGe      Z1 G dH dIe      Z2 G dJ dKe3e      Z4 G dL dMe3e      Z5 G dN dOe      Z6yP)Q    )datetime)Optional)Enum)	BaseModelconintEmailStr
ConfigDict)FormFile
UploadFile)BaseModelConfig)GeneralState)Listc                       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
<   eed<   eed<   dZee   ed<   y)
UserCreateN	firstnamelastnamephonecountry_codeaddressemailFemail_verifyphone_verifypasswordrolestate)__name__
__module____qualname__r   r   str__annotations__r   r   r   r   r   r   boolr   r        W/Users/theessential/Documents/Github/KofAcademy/kof-academy-backend/app/schemas/user.pyr   r      s    #Ix}#"Hhsm"E8C="&L(3-&!GXc]!E8C=#(L(4.(#(L(4.(M
IE8C=r$   r   c                   6    e Zd ZU dZee   ed<   dZee   ed<   y)	UserLoginNr   r   r   r   r   r   r   r    r!   r   r#   r$   r%   r'   r'      s    E8C=E8C=r$   r'   c                   "    e Zd ZU eed<   eed<   y)
AdminLoginr   r   Nr   r   r   r    r!   r#   r$   r%   r*   r*   "   s    JMr$   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Z
ee   ed<   y)UserSendOtpNr   r   Fis_newuser_id)r   r   r   r   r   r    r!   r   r.   r"   r/   r#   r$   r%   r-   r-   '   s:    E8C=E8C="FHTN"!GXc]!r$   r-   c                   "    e Zd ZU eed<   eed<   y)UserCheckPasswordidr   Nr+   r#   r$   r%   r1   r1   .   s    GMr$   r1   c                   "    e Zd ZU eed<   eed<   y)UserPasswordUpdateold_passwordnew_passwordNr+   r#   r$   r%   r4   r4   3   s    r$   r4   c                   @    e Zd ZU dZee   ed<   dZee   ed<   eed<   y)UserSetPasswordNr   r   r6   r(   r#   r$   r%   r8   r8   8   s$    E8C=E8C=r$   r8   c                       e Zd ZU eed<   y)UserTokenDatadevice_tokenNr+   r#   r$   r%   r:   r:   >   s    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Z	e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<   eed<   y)UserRegisterPersonalNr   r   countryr   r   r   r   Fr   r   r   )r   r   r   r   r   r    r!   r   r>   r   r   r   r   r"   r   r#   r$   r%   r=   r=   B   s|    E8C=E8C=!GXc]!"&L(3-&
I#Ix}#"Hhsm"#(L(4.(#(L(4.(Mr$   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Z	ee   ed<   dZ
ee   ed<   dZee   ed<   eed<   y)	UserRegisterStudentNr   r   r   r   r   r   r   )r   r   r   r   r   r    r!   r   r   r   r   r   r#   r$   r%   r@   r@   P   s[    E8C=E8C=!GXc]!"&L(3-&#Ix}#"Hhsm"Mr$   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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	<   y)

UserUpdateNr   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%   rB   rB   Z   sr    #Ix}#"Hhsm"E8C=#'L(4.'#'L(4.'"&L(3-&E8C=!GXc]!r$   rB   c                       e Zd ZU eed<   ee   ed<   ee   ed<   ee   ed<   ee   ed<   ee   ed<   ee   ed<   ee   ed<   ee   ed	<   ee   ed
<   eed<   eed<   ee   ed<   ee   ed<   y)UserBaser2   r   r   r   r   r   r;   
created_atr   r   r   r   r   avatarN)r   r   r   r    r!   r   r   r"   r#   r$   r%   rD   rD   e   s    G}smC=3-C=3-""4. 4. M
Ic]SMr$   rD   c                       e Zd ZU eed<   y)RegistrationRequest
program_idN)r   r   r   intr!   r#   r$   r%   rH   rH   w   s    Or$   rH   c                   "    e Zd ZU eeef   ed<   y)QuizAnswersreponsesN)r   r   r   dictr    r!   r#   r$   r%   rL   rL   z   s    38nr$   rL   c                   |    e Zd ZU eed<   eed<   dZedz  ed<   dZedz  ed<   eed<   dZedz  ed<   dZ	edz  ed<   y)	ProgramCreatenamedurationNdescriptionprerequisitespriceprice_discountimage)
r   r   r   r    r!   rJ   rS   rT   rV   rW   r#   r$   r%   rP   rP   }   sI    
IM"Kt" $M3:$J!%NC$J%E3:r$   rP   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	<   y)
ProgramUpdateNrQ   rR   rS   rT   rU   rV   rW   r   )r   r   r   rQ   r   r    r!   rR   rJ   rS   rT   rU   rV   rW   r   r   r#   r$   r%   rY   rY      ss    D(3-"Hhsm"!%K#%#'M8C='E8C=$(NHSM(E8C=$(E8L!(r$   rY   c                   @    e Zd ZU eed<   dZee   ed<   dZee   ed<   y)CourseCreatetitleNrS   rW   )r   r   r   r    r!   rS   r   rW   r#   r$   r%   r[   r[      s#    J!%K#%E8C=r$   r[   c                   J    e Zd ZU eed<   dZee   ed<   dZee   ed<   eed<   y)ModuleCreater\   N	quizCountrW   	course_id)	r   r   r   r    r!   r_   r   rJ   rW   r#   r$   r%   r^   r^      s(    J#Ix}#E8C=Nr$   r^   c                   ^    e Zd ZU eed<   dZee   ed<   dZee   ed<   eed<   eed<   eed<   y)LessonCreater\   Ncontentresourceorderxp_count	module_id)	r   r   r   r    r!   rc   r   rd   rJ   r#   r$   r%   rb   rb      s2    J!GXc]!"Hhsm"JMNr$   rb   c                   "    e Zd ZU eed<   eed<   y)AnswerCreaterc   
is_correctNr   r   r   r    r!   r"   r#   r$   r%   ri   ri          Lr$   ri   c                   (    e Zd ZU eed<   ee   ed<   y)QuestionCreaterc   answersN)r   r   r   r    r!   r   ri   r#   r$   r%   rn   rn          L,r$   rn   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<   dZedz  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dz  ed	<   dZedz  ed
<   y)AdminUpdateUserNr   r   r   r   r   r   rF   r   r   )r   r   r   r   r    r!   r   r   r   r   r   rF   r   r   r#   r$   r%   rr   rr      s     IsTz HcDjE3:E3:#L#*#GS4ZFC$JD#*E3:r$   rr   c                       e Zd ZU ee   ed<   y)AddCoursesToProgram
course_idsN)r   r   r   r   rJ   r!   r#   r$   r%   rt   rt      s    S	r$   rt   c                   "    e Zd ZU eed<   eed<   y)AnswerUpdaterc   rj   Nrk   r#   r$   r%   rw   rw      rl   r$   rw   c                   (    e Zd ZU eed<   ee   ed<   y)QuestionWithAnswersUpdaterc   ro   N)r   r   r   r    r!   r   rw   r#   r$   r%   ry   ry      rp   r$   ry   c                       e Zd ZU  ed      fZeed<    ed      fZeed<    ed      fZe	ed<    ed      fZ
e	ed<    ed      fZeed<   y)LessonRequest.r\   rc   re   rf   Nrd   )r   r   r   r
   r\   r    r!   rc   re   rJ   rf   r   rd   r   r#   r$   r%   r{   r{      sR    cE39:GScE3IJHc:;Hj&r$   r{   c                   F    e Zd ZU eed<    edd      ed<   dZee   ed<   y)ReviewCreaterI         )geleratingNcomment)	r   r   r   rJ   r!   r   r   r   r    r#   r$   r%   r}   r}      s"    OaA!GXc]!r$   r}   c                       e Zd ZU eed<   y)ChatMessageCreaterc   Nr+   r#   r$   r%   r   r      s    Lr$   r   c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)r   r   r   r   r   r   N)r   r   r   r    r!   r   r#   r$   r%   r   r      s    NMOM
Ir$   c                   f    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<    ed	      Zy
)UserResponser2   r   r   r   rF   r   r   T)from_attributesN)r   r   r   r    r!   r   r	   model_configr#   r$   r%   r   r      s/    GNMOK
IJd3Lr$   r   c                       e Zd ZdZy)ConfigTN)r   r   r   orm_moder#   r$   r%   r   r      s    Hr$   r   c                   "    e Zd ZU eed<   eed<   y)ProgressionItemr`   statusN)r   r   r   rJ   r!   r    r#   r$   r%   r   r      s    NKr$   r   c                   (    e Zd ZU eed<   ee   ed<   y)ProfileResponseuserprogressionN)r   r   r   r   r!   listr   r#   r$   r%   r   r      s    
o&&r$   r   c                       e Zd ZdZdZy)
OTPContextloginregisterN)r   r   r   r   r   r#   r$   r%   r   r      s    EHr$   r   c                       e Zd ZdZdZy)RegistrationTrackingStateIN_PROGRESSFINISHEDN)r   r   r   r   r   r#   r$   r%   r   r      s    KHr$   r   c                   ^    e Zd ZU eed<   eed<   eed<   eed<   ej                  Zee   ed<   y)RegistrationCreaterI   r`   rg   	lesson_idtracking_stateN)	r   r   r   rJ   r!   r   r   r   r   r#   r$   r%   r   r      s,    ONNN:S:_:_NH67_r$   r   N)7r   typingr   enumr   pydanticr   r   r   r	   fastapir
   r   r   app.schemas.baser   app.enums.general_stater   r   r   r'   r*   r-   r1   r4   r8   r:   r=   r@   rB   rD   rH   rL   rP   rY   r[   r^   rb   ri   rn   rr   rt   rw   ry   r{   r}   r   r   r   r   r   r    r   r   r   r#   r$   r%   <module>r      s      < < * * , 0     	   
") "	 
 
i I 
9 
) " " $) ) I )I ) 9  
9 9 9  Y  	i 	) 9  	  
'I '"9 "	  	49 	4 i 'i 'd 
T 
` `r$   