
    h                        S SK Jr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
JrJrJr  \" 5       r\R!                  SS5      r\R%                  S5      \" S	S
S9\" S	SS9\" \5      4S\S\S\4S jj5       r\R%                  S5      \" \5      4S\S\4S jj5       r\R%                  S5      \" \5      4S\4S jj5       rg	)    )	APIRouterQuery)*)get_db)GeneralState)ProgramCategoryCourseCourseProgram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\catalogs.pylist_programsr       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                  [        5      R                  [        [        R                   [        R                  :H  5      R                  [        R"                  UR                  :H  5      R%                  5       nU H  nUR                  [
        R                  :w  a  M#  UR                  UR&                  UR                  / S.nUR(                   HN  nUR                  [
        R                  :w  a  M#  US   R+                  UR                  UR&                  S.5        MP     US   R+                  U5        M     S	US
.$ )Ni  u   Programme non trouvé)status_codedetail)idtitler   
created_at
updated_atcourses)r&   r'   r   modulesr+   )r&   r'   r*   u   Détails du programme)r   program)r   r   r   r&   r   r   r   firstHTTPExceptionr   r   publication_dater)   r
   joinr   	course_idr"   r   r'   r+   append)r"   r   r,   program_datar*   coursecourse_datamodules           r   get_program_detailsr7   9   s    hhw&&

j ,,, eg 
 4KLL jj**..((L HHV	T-00FII=>VM$$

23SU	  <<<...))\\!--	
 nnF|||222	"))ii+  % 	Y&&{3# ( /<HHr!   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)r&   r'   r   r(   r)   u#   Liste des catégories de programmes)r   
categories)r   r	   r   r   r   r   r   r&   r'   contentr(   r)   )r   r9   categoryresultss       r   list_categoriesr=   l   s     (#**,---	ce  #	 #H ++^^#++"--"--	
 #  	 =GTT	s   AB!)fastapir   r   app.utils.authentificationapp.utils.databaser   app.utils.helpersapp.enums.general_stater   app.models.baser   r	   r
   r   routerosgetenvr   getDependsintstrSessionr    r7   r=    r!   r   <module>rM      s    $ ) %  0
 F E 
II17;  K T/GH*CD&/	  		 D $%7>v /IC /IW /I &/Id M")&/ U U Ur!   