
    hZ                        d dl mZmZ d dl d dlmZ d dl d dlmZ d dl	m
Z
mZmZmZ  e       Zej!                  dd      Zej%                  d       ed	d
       ed	d       ee      fdededefd       Zej%                  d       ee      fdedefd       Zej%                  d       ee      fdefd       Zy	)    )	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                    |j                  t              j                  t        j                  t        j
                  k(        }| r"|j                  t        j                  | k(        }|rTd| d}|j                  t        j                  j                  |      t        j                  j                  |      z        }|j                         }d| |d|d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         [/Users/theessential/Documents/Github/KofAcademy/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                    |j                  t              j                  t        j                  | k(  t        j                  t
        j                  k(        j                         }|st        dd      |j                  |j                  |j                  |j                  |j                  g d}|j                  t              j                  t        t        j                   t        j                  k(        j                  t        j"                  |j                  k(        j%                         }|D ]  }|j                  t
        j                  k7  r!|j                  |j&                  |j                  g d}|j(                  D ]K  }|j                  t
        j                  k7  r!|d   j+                  |j                  |j&                  d       M |d   j+                  |        d	|d
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	   4<<<...))\\!--	
 nn 	F|||222	"))ii+ 	 	Y&&{3#4( /<HHr!   z/categoriesc           	      F   | j                  t              j                  t        j                  t        j
                  k(        j                         }|D cg c]<  }|j                  |j                  |j                  |j                  |j                  d> }}d|dS c c}w )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  #	  ++^^#++"--"--	
	G 	 =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!   