
    mh                     R   d dl m Z  d dlmZ d dlmZ d dl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mZ d d	l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# G d, d-e#      Z$ G d. d/e      Z% G d0 d1e#      Z& G d2 d3e      Z' G d4 d5e      Z( G d6 d7e      Z) G d8 d9e      Z* G d: d;e      Z+ G d< d=e      Z, G d> d?e      Z- G d@ dAe      Z. G dB d;e      Z+ G dC dDe      Z/ G dE dFe      Z0 G dG dHe      Z1 G dI dJe      Z2 G dK dLe      Z3 G dM dNe      Z4 G dO d;e      Z+ G dP dQe      Z5 G dR dSe      Z6 G dT dUe      Z7 G dV dWe      Z8 G dX dYe      Z9 G dZ d[e:e      Z; G d\ d]e      Z< G d^ d_e      Z=y`)a    )datetime)Optional)Enum)	BaseModelconintEmailStr)FormFile
UploadFile)BaseModelConfig)GeneralState)r   List)r   Fieldc                   B    e Zd ZU  eddd      Zeed<   dZee   ed<   y)CategoryBase.   d   
min_length
max_lengthtitleNcontent)	__name__
__module____qualname__r   r   str__annotations__r   r        X/Users/theessential/Documents/Github/KofAcademy/kof-academy-backend/app/schemas/admin.pyr   r      s#    sqS9E39!GXc]!r   r   c                       e Zd Zy)CategoryCreateNr   r   r   r   r   r    r"   r"          r   r"   c                   H    e Zd ZU  eddd      Zee   ed<   dZee   ed<   y)CategoryUpdateNr   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r   r   r    r&   r&      s'     !DE8C=D!GXc]!r   r&   c                   ,    e Zd ZU eed<    G d d      Zy)CategoryResponseidc                       e Zd ZdZy)CategoryResponse.ConfigTNr   r   r   from_attributesr   r   r    Configr+   '       r   r.   Nr   r   r   intr   r.   r   r   r    r(   r(   $       G r   r(   c                   L    e Zd ZU  eddd      Zeed<   dZee   ed<   e	ed<   y)	ProgramBase.      r   r   Ndescriptioncategory_id
r   r   r   r   r   r   r   r7   r   r1   r   r   r    r4   r4   .   s)    sqS9E39!%K#%r   r4   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<    ed      fZeed	<    ed      fZeed
<   y)ProgramCreate.namer   durationNr7   prerequisitespriceprice_discountr8   r   r   r   r	   r<   r   r   r=   r1   r7   r>   r?   floatr@   r8   r   r   r    r;   r;   4   sr    S	
D#GHHcDz{K"dM3$9:E5 JKNE'CyzK!r   r;   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<    ed      fZeed<    ed      fZeed	<   y)
ProgramUpdateNr<   r   r=   r7   r>   r?   r@   r8   rA   r   r   r    rD   rD   @   sr    T
D#GHHcDz{K"dM3$:;E5 JKNE'Dz{K"r   rD   c                   ,    e Zd ZU eed<    G d d      Zy)ProgramResponser)   c                       e Zd ZdZy)ProgramResponse.ConfigTNr,   r   r   r    r.   rH   M   r/   r   r.   Nr0   r   r   r    rF   rF   J   r2   r   rF   c                   V    e Zd ZU  eddd      Zeed<   dZee   ed<   dZ	ee
   ed<   y)	
CourseBase.r5   r6   r   r   Nr7   
program_id)r   r   r   r   r   r   r   r7   r   rK   r1   r   r   r    rJ   rJ   T   s1    sqS9E39!%K#% $J$r   rJ   c                       e Zd Zy)CourseCreateNr#   r   r   r    rM   rM   Z   r$   r   rM   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d<   y)CourseUpdateNr5   r6   r   r   r7   rK   )r   r   r   r   r   r   r   r   r7   rK   r1   r   r   r    rO   rO   ^   s5     !DE8C=D!%K#% $J$r   rO   c                   ,    e Zd ZU eed<    G d d      Zy)CourseResponser)   c                       e Zd ZdZy)CourseResponse.ConfigTNr,   r   r   r    r.   rS   g   r/   r   r.   Nr0   r   r   r    rQ   rQ   d   r2   r   rQ   c                   L    e Zd ZU  eddd      Zeed<   dZee   ed<   e	ed<   y)	
ModuleBase.r5   r6   r   r   Nr7   	course_idr9   r   r   r    rU   rU   n   s(    sqS9E39!%K#%Nr   rU   c                       e Zd Zy)ModuleCreateNr#   r   r   r    rX   rX   t   r$   r   rX   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d<   y)ModuleUpdateNr5   r6   r   r   r7   rV   )r   r   r   r   r   r   r   r   r7   rV   r1   r   r   r    rZ   rZ   x   s5     !DE8C=D!%K#%#Ix}#r   rZ   c                   ,    e Zd ZU eed<    G d d      Zy)ModuleResponser)   c                       e Zd ZdZy)ModuleResponse.ConfigTNr,   r   r   r    r.   r^      r/   r   r.   Nr0   r   r   r    r\   r\   ~   r2   r   r\   c                   t    e Zd ZU  eddd      Z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)
LessonBase.r5   r6   r   r   Nr   	video_urlpdf_url	module_id)r   r   r   r   r   r   r   r   r   ra   rb   r1   r   r   r    r`   r`      sD    sqS9E39!GXc]!#Ix}#!GXc]!Nr   r`   c                       e Zd Zy)LessonCreateNr#   r   r   r    re   re      r$   r   re   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d<   dZ
ee   ed<   dZee   ed	<   y)
LessonUpdateNr5   r6   r   r   r   ra   rb   rc   )r   r   r   r   r   r   r   r   r   ra   rb   rc   r1   r   r   r    rg   rg      sQ     !DE8C=D!GXc]!#Ix}#!GXc]!#Ix}#r   rg   c                   ,    e Zd ZU eed<    G d d      Zy)LessonResponser)   c                       e Zd ZdZy)LessonResponse.ConfigTNr,   r   r   r    r.   rk      r/   r   r.   Nr0   r   r   r    ri   ri      r2   r   ri   c                   ^    e Zd ZU eed<   eed<   dZee   ed<   dZee	   ed<   dZ
ee   ed<   y)
WaveCreater<   
start_dateNend_datecapacityr7   )r   r   r   r   r   r   ro   r   rp   r1   r7   r   r   r    rm   rm      s8    
I#'Hhx '"Hhsm"!%K#%r   rm   c                   r    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<   y)
WaveUpdateNr<   rn   ro   rp   r7   )r   r   r   r<   r   r   r   rn   r   ro   rp   r1   r7   r   r   r    rr   rr      sJ    D(3-%)J")#'Hhx '"Hhsm"!%K#%r   rr   c                   "    e Zd ZU eed<   eed<   y)RegistrationCreateuser_idrK   N)r   r   r   r   r   r1   r   r   r    rt   rt          LOr   rt   c                   J    e Zd ZU eed<   eed<   eed<   eed<    G d d      Zy)RegistrationResponser)   ru   rK   
created_atc                       e Zd ZdZy)RegistrationResponse.ConfigTNr,   r   r   r    r.   r{      r/   r   r.   Nr   r   r   r1   r   r   r   r.   r   r   r    rx   rx      s!    GLO r   rx   c                   "    e Zd ZU eed<   eed<   y)AnswerCreater   
is_correctN)r   r   r   r   r   boolr   r   r    r~   r~      s    Lr   r~   c                   ,    e Zd ZU eed<   g Zee   ed<   y)QuestionCreateMr   answersN)r   r   r   r   r   r   listr~   r   r   r    r   r      s    L"$GT,$r   r   c                       e Zd ZU ee   ed<   y)QuestionsBatchCreate	questionsN)r   r   r   r   r   r   r   r   r    r   r      s    O$$r   r   c                   "    e Zd ZU dZee   ed<   y)QuestionUpdateNtext)r   r   r   r   r   r   r   r   r   r    r   r      s    D(3-r   r   c                   &    e Zd ZU eed<   dZeed<   y)r~   r   Fr   Nr   r   r   r   r   r   r   r   r   r    r~   r~      s    
IJr   c                   6    e Zd ZU dZee   ed<   dZee   ed<   y)AnswerUpdateNr   r   )	r   r   r   r   r   r   r   r   r   r   r   r    r   r      s    D(3-!%J%r   r   c                   ^    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<    G d d      Zy	)
PaymentResponser)   ru   rK   amountstatusry   c                       e Zd ZdZy)PaymentResponse.ConfigTNr,   r   r   r    r.   r      r/   r   r.   N)	r   r   r   r1   r   rB   r   r   r.   r   r   r    r   r      s+    GLOMK r   r   c                   "    e Zd ZU eed<   eed<   y)CertificateActivateru   rK   N)r   r   r   r1   r   r   r   r    r   r      rv   r   r   c                   J    e Zd ZU eed<   eed<   eed<   eed<    G d d      Zy)CertificateResponser)   ru   rK   activated_atc                       e Zd ZdZy)CertificateResponse.ConfigTNr,   r   r   r    r.   r      r/   r   r.   N)r   r   r   r1   r   r   r.   r   r   r    r   r      s!    GLO r   r   c                   "    e Zd ZU eed<   eed<   y)QuestionCreater   typeNr   r   r   r   r   r   r   r    r   r      s    
I
Ir   r   c                   d    e Zd ZU eed<   eed<   eed<   eed<   eed<   ee   ed<    G d d      Zy	)
QuestionResponser)   rc   r   r   ry   
updated_atc                       e Zd ZdZy)QuestionResponse.ConfigTNr   r   r   orm_moder   r   r    r.   r          r   r.   N)r   r   r   r   r   r   r   r.   r   r   r    r   r      s1    GN
I
I"" r   r   c                   &    e Zd ZU eed<   dZeed<   y)r~   r   Fr   Nr   r   r   r    r~   r~     s    LJr   c                   d    e Zd ZU eed<   eed<   eed<   eed<   eed<   ee   ed<    G d d      Zy	)
AnswerResponser)   question_idr   r   ry   r   c                       e Zd ZdZy)AnswerResponse.ConfigTNr   r   r   r    r.   r     r   r   r.   N)	r   r   r   r   r   r   r   r   r.   r   r   r    r   r     s3    G
I"" r   r   c                   "    e Zd ZU eed<   eed<   y)NotificationCreateru   r   Nr   r   r   r    r   r     s    LJr   r   c                   ^    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<    G d d      Zy	)
NotificationResponser)   ru   r   messager   ry   c                       e Zd ZdZy)NotificationResponse.ConfigTNr   r   r   r    r.   r      r   r   r.   N)r   r   r   r   r   r   r.   r   r   r    r   r     s+    GLJL
I r   r   c                   ,    e Zd ZU eed<   dZee   ed<   y)CourseAddRequestrV   Norder)r   r   r   r1   r   r   r   r   r   r    r   r   #  s    NE8C=r   r   c                   T    e Zd ZU eed<   eed<   eed<   eed<   eed<    G d d      Zy)	WaveResponser)   r   rn   ro   statec                       e Zd ZdZy)WaveResponse.ConfigTNr   r   r   r    r.   r   /  r   r   r.   Nr|   r   r   r    r   r   (  s'    GJJ r   r   c                       e Zd ZdZdZy)
AssignRoletrainerstudentN)r   r   r   r   r   r   r   r    r   r   2  s    GGr   r   c                   >    e Zd ZU eed<   eed<   eed<    ed      Zy)AnswerSchemar)   r   r   Tr-   N)	r   r   r   r1   r   r   r   dictmodel_configr   r   r    r   r   8  s    GL-Lr   r   c                   H    e Zd ZU eed<   eed<   g Zee   ed<    e	d      Z
y)QuestionSchemar)   r   r   Tr   N)r   r   r   r1   r   r   r   r   r   r   r   r   r   r    r   r   ?  s%    GL"$GT,$-Lr   r   N)>r   typingr   enumr   pydanticr   r   r   fastapir	   r
   r   app.schemas.baser   app.enums.general_stater   r   r   r   r"   r&   r(   r4   r;   rD   rF   rJ   rM   rO   rQ   rU   rX   rZ   r\   r`   re   rg   ri   rm   rr   rt   rx   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:      0 0 * * , 0
 " %"9 "
	\ 	"Y "
| ) "I "#I #k % %	: 	%9 %Z  	: 	$9 $Z  	: 	$9 $Z & && & 9 9 %i %%9 %Y 9 &9 &	i 	) ) Y 	y 	9 	Y 	 
	9 	 y  
9 d .9 ..Y .r   