
    Ci=                     >   d 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      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. 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 dCe      Z' G dD dEe      Z( G dF dGe(      Z) G dH dIe      Z* G dJ dKe      Z+yL)Mu/   
Schémas Pydantic pour le module de formation
    )	BaseModel)OptionalList)datetime)CapsuleTypec                       e Zd ZU eed<   eed<   eed<   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d<    G d d      Z
y)CapsuleResponseid
chapter_idtitletypecontent_urltext_content	thumbnailduration_secondsorder	is_active
created_atc                       e Zd ZdZy)CapsuleResponse.ConfigTN__name__
__module____qualname__from_attributes     </home/www/lebenam.kofcorporation.com/app/schemas/training.pyConfigr          r   r   N)r   r   r   int__annotations__strr   r   boolr   r   r   r   r   r	   r	   	   sY    GOJ
#3-}sm#JO 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	)
QuizResponser
   r   r   passing_scorer   r   c                       e Zd ZdZy)QuizResponse.ConfigTNr   r   r   r   r   r)   !   r    r   r   N)	r   r   r   r!   r"   r#   r$   r   r   r   r   r   r&   r&      s,    GOJO r   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Ze	ed<   y)	ThemeBasenamedescriptionNiconcolorr   r   )
r   r   r   r#   r"   r.   r   r/   r   r!   r   r   r   r+   r+   %   s2    
ID(3-E8C=E3Nr   r+   c                       e Zd Zy)ThemeCreateNr   r   r   r   r   r   r1   r1   ,       r   r1   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<   y)ThemeUpdateNr,   r-   r.   r/   r   r   )r   r   r   r,   r   r#   r"   r-   r.   r/   r   r!   r   r$   r   r   r   r5   r5   /   sV    D(3-!%K#%D(3-E8C=E8C= $Ix~$r   r5   c                   ~    e Zd ZU eed<   eed<   eed<   ee   ed<   ee   ed<   eed<   eed<   eed<    G d	 d
      Z	y)ThemeResponser
   r,   r-   r.   r/   r   r   r   c                       e Zd ZdZy)ThemeResponse.ConfigTNr   r   r   r   r   r9   A   r    r   r   N
r   r   r   r!   r"   r#   r   r$   r   r   r   r   r   r7   r7   7   s@    G
I
3-C=JO r   r7   c                   *    e Zd ZU dZeed<   dZeed<   y)ThemeWithStatsr   diseases_counttotal_chaptersN)r   r   r   r=   r!   r"   r>   r   r   r   r<   r<   D   s    NCNCr   r<   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d
<   y)DiseaseBasetheme_idr,   r-   Nsymptoms
prevention	treatmentduration_minutesr   r   )r   r   r   r!   r"   r#   rB   r   rC   rD   rE   r   r   r   r   r@   r@   I   sT    M
I"Hhsm" $J$#Ix}#&*hsm*E3Nr   r@   c                       e Zd Zy)DiseaseCreateNr2   r   r   r   rG   rG   S   r3   r   rG   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<   y)DiseaseUpdateNrA   r,   r-   rB   rC   rD   r   rE   r   r   )r   r   r   rA   r   r!   r"   r,   r#   r-   rB   rC   rD   r   rE   r   r   r$   r   r   r   rI   rI   V   s    "Hhsm"D(3-!%K#%"Hhsm" $J$#Ix}##Ix}#&*hsm*E8C= $Ix~$r   rI   c                       e Zd ZU eed<   eed<   eed<   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d<    G d d      Z	y)DiseaseResponser
   rA   r,   r-   rB   rC   rD   r   rE   r   r   r   c                       e Zd ZdZy)DiseaseResponse.ConfigTNr   r   r   r   r   rM   p   r    r   r   Nr:   r   r   r   rK   rK   b   sc    GM
Ism}}sm#JO r   rK   c                   D    e Zd ZU dZee   ed<   dZee   ed<   dZ	e
ed<   y)DiseaseWithProgressg        progress_percentageFis_completedr   chapters_countN)r   r   r   rP   r   floatr"   rQ   r$   rR   r!   r   r   r   rO   rO   s   s)    +.%.#(L(4.(NCr   rO   c                   D    e Zd ZU eed<   eed<   dZee   ed<   dZeed<   y)ChapterBase
disease_idr   Nr-   r   r   )	r   r   r   r!   r"   r#   r-   r   r   r   r   r   rU   rU   y   s#    OJ!%K#%E3Nr   rU   c                       e Zd Zy)ChapterCreateNr2   r   r   r   rX   rX      r3   r   rX   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)ChapterUpdateNrV   r   r-   r   r   )r   r   r   rV   r   r!   r"   r   r#   r-   r   r   r$   r   r   r   rZ   rZ      sH     $J$E8C=!%K#%E8C= $Ix~$r   rZ   c                       e Zd ZU eed<   eed<   eed<   ee   ed<   eed<   eed<   eed<   g Z	e
e   ed<   d	Zee   ed
<    G d d      Zy	)ChapterResponser
   rV   r   r-   r   r   r   capsulesNquizc                       e Zd ZdZy)ChapterResponse.ConfigTNr   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\      sS    GOJ#JO&(Hd?#(#'D(<
 ' r   r\   c                   R    e Zd ZU dZee   ed<   dZee   ed<   dZe	ed<   dZ
eed<   y)ChapterWithProgressFrQ   quiz_passedr   capsules_counthas_quizN)r   r   r   rQ   r   r$   r"   rc   rd   r!   re   r   r   r   rb   rb      s2    #(L(4.("'K$'NCHdr   rb   c                   v    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d	<   y)
CapsuleBaser   r   r   Nr   r   r   r   r   )r   r   r   r!   r"   r#   r   r   r   r   r   r   r   r   r   rg   rg      sF    OJ
!%K#%"&L(3-&&*hsm*E3Nr   rg   c                       e Zd Zy)CapsuleCreateNr2   r   r   r   ri   ri      r3   r   ri   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
<   y)CapsuleUpdateNr   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   rk   rk      s     $J$E8C="&D(;
&!%K#%"&L(3-&#Ix}#&*hsm*E8C= $Ix~$r   rk   c                   J    e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   y)CapsuleWithProgressFrQ   r   watch_time_secondslast_position_secondsN)
r   r   r   rQ   r   r$   r"   rn   r!   ro   r   r   r   rm   rm      s.    #(L(4.(())+,8C=,r   rm   c                   "    e Zd ZU eed<   eed<   y)QuizQuestionOptionr
   textN)r   r   r   r#   r"   r   r   r   rq   rq      s    G
Ir   rq   c                   T    e Zd ZU eed<   ee   ed<   eed<   dZee   ed<   dZ	e
ed<   y)QuizQuestionBasequestionoptionscorrect_answerNexplanationr   r   )r   r   r   r#   r"   r   rq   rx   r   r   r!   r   r   r   rt   rt      s0    M$%%!%K#%E3Nr   rt   c                       e Zd ZU eed<   y)QuizQuestionCreatequiz_idN)r   r   r   r!   r"   r   r   r   rz   rz      s    Lr   rz   c                   Z    e Zd ZU eed<   eed<   eed<   ee   ed<   eed<    G d d      Zy)	QuizQuestionResponser
   r{   ru   rv   r   c                       e Zd ZdZy)QuizQuestionResponse.ConfigTNr   r   r   r   r   r      r    r   r   N)	r   r   r   r!   r"   r#   r   dictr   r   r   r   r}   r}      s*    GLM$ZJ r   r}   c                   (    e Zd ZU eed<   ee   ed<   y)QuizQuestionWithAnswerrw   rx   N)r   r   r   r#   r"   r   r   r   r   r   r      s    #r   r   c                   0    e Zd ZU eed<   eed<   dZeed<   y)QuizBaser   r   F   r'   N)r   r   r   r!   r"   r#   r'   r   r   r   r   r      s    OJM3r   r   c                       e Zd Zy)
QuizCreateNr2   r   r   r   r   r      r3   r   r   c                       e Zd ZU ee   ed<   y)QuizWithQuestions	questionsN)r   r   r   r   r}   r"   r   r   r   r   r      s    ())r   r   c                   "    e Zd ZU eed<   eed<   y)QuizAnswerSubmitquestion_idanswerN)r   r   r   r!   r"   r#   r   r   r   r   r      s    Kr   r   c                   (    e Zd ZU eed<   ee   ed<   y)QuizAttemptSubmitr{   answersN)r   r   r   r!   r"   r   r   r   r   r   r   r      s    L"##r   r   c                   h    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<    G d d	      Zy
)QuizAttemptResponser
   r{   user_idscorepassed
started_atcompleted_atc                       e Zd ZdZy)QuizAttemptResponse.ConfigTNr   r   r   r   r   r      r    r   r   N)r   r   r   r!   r"   r$   r   r   r   r   r   r   r      s1    GLLJL r   r   c                   .    e Zd ZU ee   ed<   ee   ed<   y)QuizAttemptDetailr   correct_answersN)r   r   r   r   r   r"   r   r   r   r   r   r      s    $Z011r   r   c                   N    e Zd ZU eed<   dZeed<   dZee   ed<   dZ	ee   ed<   y)CapsuleProgressUpdate
capsule_idFrQ   Nrn   ro   )
r   r   r   r!   r"   rQ   r$   rn   r   ro   r   r   r   r   r      s/    OL$(,,+/8C=/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<   eed<   eed<   y	)
ProgressStatstotal_themescompleted_diseasestotal_diseasescompleted_chaptersr>   overall_progress_percentagequizzes_passedquizzes_failedN)r   r   r   r!   r"   rS   r   r   r   r   r     s2    !&&r   r   N),__doc__pydanticr   typingr   r   r   app.models.capsuler   r	   r&   r+   r1   r5   r7   r<   r@   rG   rI   rK   rO   rU   rX   rZ   r\   rb   rg   ri   rk   rm   rq   rt   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s    !  *i  	9 		 	) 	%) %I ] 
) 	K 	
%I 
%i "/ ) 	K 	%I %i / ) 	K 		%I 	%-/ - y ) 9 1 y 
	 	* *y $	 $
) 
2+ 2
0I 0I r   