
    rh                        d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZmZ d dlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z(m)Z)m*Z*  e         e jV                  d      Z, e jV                  d      Z- e       Z. ee.        ee,      Z/e.ja                  ede-dgdg       e.jc                  d      d        Z2e.jc                  d      d        Z3e.ji                  d      d        Z5e.jm                  e*jn                  ddg       e.jm                  e(jn                  ddg       e.jm                  e)jn                  ddg       e.jm                  ejn                  dd g       e.jm                  ejn                  dd!g       e.jm                  ejn                  dd"g       e.jm                  ejn                  dd#g       e.jm                  ejn                  dd$g       e.jm                  ejn                  dd%g       e.jm                  e%jn                  d&d'g       e.jm                  ejn                  d(d)g       e.jm                  e#jn                  d*d+g       e.jm                  ejn                  d(d,g       e.jm                  e jn                  d(d-g       e.jm                  ejn                  d(d.g       e.jm                  e"jn                  d(d/g       e.jm                  e&jn                  d(d0g       e.jm                  ejn                  d(d1g       e.jm                  e$jn                  d(d2g       e.jm                  ejn                  d(d3g       e.jm                  ejn                  d(d4g       e.jm                  e!jn                  d(d5g       d6d7d8d9iZ8d: Z9e9e._:        e;d;k(  r ejx                  d<d=d>?       yy)@    N)load_dotenv)FastAPI)CORSMiddleware)get_openapi)add_pagination)create_engine)credentials)Base)profilesmy_taining_progressquizpayments
certificatchats)
categoriescertificatescoursesfinacialinscriptionlessonsmodulesnotificationsorganisationsprogramsquizzesuserswaves)auth_webcatalogsothersDB_URLORIGINST*)allow_credentialsallow_originsallow_methodsallow_headersstartupc                  L    t         j                  j                  t               y )N)bind)r
   metadata
create_allengine     O/Users/theessential/Documents/Github/KofAcademy/kof-academy-backend/app/main.pystartup_eventr1   )   s    MM&)r/   shutdownc                  ,    t         j                          y )N)r-   disposer.   r/   r0   shutdown_eventr5   .   s    
NNr/   /c                  
    ddiS )NmessagezWelcome to the KOFACADEMY APIr.   r.   r/   r0   rootr9   4   s    677r/    Others)prefixtagsz	/api/authzAuthentifications-Inscriptionsz/apiCatalogz
/api/userszProfile-ManagementzMy-Training-ProgresszQuizzes-AssessmentsPaymentsCertificateszNotifications-Messaging-Alertsz/api/admin/userszStudent-Managementz
/api/admin
Categoriesz/api/admin/programsProgramsCoursesModulesLessonsOrganisationszFormation-WaveszInscription-ManagmentzQuizzes-ManagmentzFinacial-ManagmentzCertificates-ManagmentNotifications
HTTPBearerhttpbearer)typeschemec                     t         j                  rt         j                  S t        dddt         j                        } d| vri | d<   d| d   vri | d   d<   | d   d   j	                  t
               | d   j                         D ]  }|j                         D ]
  }dg ig|d	<    ! | t         _        t         j                  S )
NzKOFACADEMY APIz1.0.0zAPI de l'application KofAcademy)titleversiondescriptionroutes
componentssecuritySchemespathsrH   security)appopenapi_schemar   rQ   updatesecurity_schemesvalues)rW   pathmethods      r0   custom_openapir]   [   s    
!!! 5zz	N >)')|$| <<:<|$%67< !23::;KLw'..0 6kkm 	6F#/"4!5F:	66 (Cr/   __main__zmain:appz0.0.0.0i  )rV   hostport)=osfirebase_adminuvicorndotenvr   fastapir   fastapi.middleware.corsr   fastapi.openapi.utilsr   fastapi_paginationr   
sqlalchemyr   r	   app.models.baser
   app.routers.studentsr   r   r   r   r   r   app.routers.adminsr   r   r   r   r   r   r   r   r   r   r   r   r   app.routersr   r   r    getenvr!   originsrV   r-   add_middlewareon_eventr1   r5   getr9   include_routerrouterrY   r]   openapi__name__runr.   r/   r0   <module>rx      s   	     2 - - $ &   b b j  j  j  j 3 3 	8	
"))I
 i s 	v	   %%   i* * j 
 8 8
   6==8*  =   8??;>^=_  `   8??6  D   8??<?S>T  U   &--fDZC[  \   4;;v5J4K  L   8??6  E   :$$V>:J  K   5<<6V5W  X   5<<(:BVAW  X   :$$\  O   8??+@
|  T   7>>,i[  I   7>>,i[  I   7>>,i[  I   =''OCT  U   5<<<M;N  O   ;%%lBYAZ  [   7>>,>Q=R  S   8??<?S>T  U   <&&|C[B\  ]   =''OCT  U
  ,  zGKK r/   