
    0@j                     8   d dl Z d dlZd dlmZ d dlmZ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 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) d dl*m+Z+ d dl,m-Z-  e+            Z. e j/        e j0        d	
            e j1        d          Z2edefd            Z3 ee.j4        e3          Z5e56                    ee.j7        ddgdg           e58                    d          defd            Z9e5:                    e;          dede;fd            Z<e5=                    e#ddg           e5=                    ed           e5=                    ed           e5=                    ed           e5=                    e)d           e5=                    ed           e5=                    ed           e5=                    e!d           e5=                    ed           e5=                    ed           e5=                    e%d           e5=                    e'd           e5=                    ed           e5=                    ed           e5=                    ed           dS )    N)asynccontextmanager)FastAPIRequest)CORSMiddlewareJSONResponse)router)get_settingsinit_dbz.%(asctime)s %(levelname)s %(name)s %(message)s)levelformatfamilydashboardappc                0   K   t                       d W V  d S )Nr   )r   s    8/home/agent/projects/FamilyDashboard/backend/app/main.pylifespanr       s      III	EEEEEE    )titler   T*)allow_originsallow_credentialsallow_methodsallow_headershttprequestc                 j  K   t          j                    } ||            d {V }t          t          j                    |z
  dz  d          }t                              d| j        | j        j        |j        |           | j        j        	                    d          rd|j
        d<   d|j
        d<   |S )	Ni     z2request method=%s path=%s status=%s duration_ms=%sz/api/zno-store, max-age=0zCache-Controlzno-cachePragma)timeperf_counterroundloggerinfomethodurlpathstatus_code
startswithheaders)r   	call_nextstartedresponse
elapsed_mss        r   request_logging_middlewarer/   1   s      !!GYw''''''''H)++g5=qAAJ
KK<   {""7++ 0,A)%/"Or   excc                 2   K   t          dddddi          S )Ni  errorinternal_errorzUnerwarteter Serverfehler)codemessage)r(   contentr   )r   r0   s     r   generic_exception_handlerr7   C   s2      #3@[\\]   r   z/apihealth)prefixtags)r9   )>loggingr    
contextlibr   fastapir   r   fastapi.middleware.corsr   fastapi.responsesr   app.api.admin_authr	   admin_auth_routerapp.api.admin_crudadmin_crud_routerapp.api.benefitsbenefits_routerapp.api.calendarcalendar_routerapp.api.childrenchildren_routerapp.api.challengeschallenges_routerapp.api.coinscoins_routerapp.api.dashboarddashboard_routerapp.api.daily_knowledgedaily_knowledge_routerapp.api.daily_mathdaily_math_routerapp.api.daily_phrasesdaily_phrases_routerapp.api.healthhealth_routerapp.api.scheduleschedule_routerapp.api.screen_timescreen_time_routerapp.api.taskstasks_routerapp.core.configr
   app.db.sessionr   settingsbasicConfigINFO	getLoggerr#   r   app_namer   add_middlewarecors_origin_list
middlewarer/   exception_handler	Exceptionr7   include_router r   r   <module>rl      s@     * * * * * * $ $ $ $ $ $ $ $ 2 2 2 2 2 2 * * * * * * : : : : : : : : : : : : 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 : : : : : : 0 0 0 0 0 0 8 8 8 8 8 8 D D D D D D : : : : : : @ @ @ @ @ @ 2 2 2 2 2 2 6 6 6 6 6 6 < < < < < < 0 0 0 0 0 0 ( ( ( ( ( ( " " " " " "<>>  ',/_ ` ` ` `		,	-	- 
 
 
 
 

 gH%999   +%%     g    " y!!W 9    "!   =xj  A A A   ?6  2 2 2   $V  4 4 4   #F  3 3 3   <  / / /   <  / / /   ?6  2 2 2   '  7 7 7   $V  4 4 4   )&  9 9 9   ?6  2 2 2   %f  5 5 5   ?6  2 2 2   $V  4 4 4   $V  4 4 4 4 4r   