
    zh                        S SK JrJrJrJr  S SKJrJrJrJ	r	J
r
JrJrJr  S SKJr  S SKJr  S SK7  S SKJr  S SK7  S SKJr  S SKJr  S S	KJrJrJrJrJrJr  S S
K J!r!  S SK"J#r#  \" 5       r$\%RM                  SS5      r'\$RQ                  S5      \" SSS9\" SSS9\)" \5      4S\*S\+S\,4S jj5       r-\$RQ                  S5      \)" \5      4S\*S\,4S jj5       r.\$RQ                  S5      \)" \5      4S\,4S jj5       r/g)    )	APIRouterFile
UploadFileQuery)
AdminLogin	UserLoginUserCheckPasswordUserRegisterPersonalUserSendOtpUserTokenDataUserSetPasswordUserRegisterStudent)send_otp_email)send_otp_phone)*)get_db)check_token_validity)GeneralState)UserProgramQuizModuleQuestionCategory)	UserState)RoleTypeFILE_STORAGE_PATHfilesz	/programsNu   Filtrer par catégorie)descriptionu   Rechercher par mot-clécategory_idsearchdbc                    UR                  [        5      R                  [        R                  [        R
                  :H  5      nU (       a"  UR                  [        R                  U :H  5      nU(       aT  SU S3nUR                  [        R                  R                  U5      [        R                  R                  U5      -  5      nUR                  5       nSU US.US.$ )N%u   Liste des programmes publiés)r    r!   )messagefiltersprograms)queryr   filterstater   ACTIVEr    nameiliker   all)r    r!   r"   r(   search_patternr'   s         <D:\kofCorporation\kof-academy-backend\app\routers\catalog.pylist_programsr1      s     HHW$$W]]l6I6I%IJE W00K?@ VHA\\/  &&~68

 yy{H 3&
      z/programs/{program_id}
program_idc                    UR                  [        5      R                  [        R                  U :H  [        R                  [
        R                  :H  5      R                  5       nU(       d
  [        SSS9eUR                  UR                  UR                  UR                  UR                  / S.nUR                   H  nUR                  [
        R                  :w  a  M#  UR                  UR                  / S.nUR                   HY  nUR                  [
        R                  :w  a  M#  US   R                  UR                  UR                  UR                   S.5        M[     US   R                  U5        M     S	US
.$ )Ni  u   Programme non trouvé)status_codedetail)idtitler   
created_at
updated_atcourses)r7   r8   modulesr<   )r7   r8   contentr;   u   Détails du programme)r%   program)r(   r   r)   r7   r*   r   r+   firstHTTPExceptionr8   r   r9   r:   r;   r<   appendr=   )r3   r"   r>   program_datacoursecourse_datamodules          r0   get_program_detailsrF   <   s@    hhw&&

j ,,, eg 
 4KLL jj**((((L //<<<...))\\

 nnF|||222	"))ii!>>+  % 	Y&&{3! "$ /<HHr2   z/categoriesc           	      L   U R                  [        5      R                  [        R                  [        R
                  :H  5      R                  5       nU Vs/ s H=  nUR                  UR                  UR                  UR                  UR                  S.PM?     nnSUS.$ s  snf )N)r7   r8   r   r9   r:   u#   Liste des catégories de programmes)r%   
categories)r(   r   r)   r*   r   r+   r.   r7   r8   r   r9   r:   )r"   rH   categoryresultss       r0   list_categoriesrK   f   s     (#**,---	ce  #	 #H ++^^#//"--"--	
 #  	 =GTT	s   AB!)0fastapir   r   r   r   app.schemas.userr   r   r	   r
   r   r   r   r   app.services.emailr   app.services.smsr   app.utils.authentificationapp.utils.databaser   app.utils.helpersr   app.enums.general_stater   app.models.baser   r   r   r   r   r   app.enums.user_stater   app.enums.role_typer   routerosgetenvr   getDependsintstrSessionr1   rF   rK    r2   r0   <module>r`      s   6 68 8 8 - + ( %  ; 0
 L K * (	II17;  K T/GH*CD&/	  		 D $%7>v &IC &IW &I &&IR M")&/ U U Ur2   