
    ɧ-i                        d Z ddlmZ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ZddlmZ ddlZ ej        e          Zdd	lmZ ej        rFej        ej        d
<   ej        ej        d<   dej        d<   dej        d<    edej                    n ed           ddlmZ ddlmZ ddlmZ  edefd            Z! eddde!          Z"ddl#m$Z$ e"%                    d          defd            Z&e"'                    eej(        ddgdg           e")                    d           d!             Z*e")                    d"          d#e+fd$            Z,e")                    d%          d&             Z-e".                    ed'd(g)           e".                    ed'd*g)           e".                    e d'd+g)            ee/          j0        j0        d,z  Z1e12                                r,e"3                    d- e e+e1          d.          d/0           ed1k    r]ddl4Z4 e4j5        e" ej6                    7                    d2          d3         7                    d4          d         ej8        5           dS dS )6zC
FastAPI Restaurant Website Generator
Main application entry point
    )FastAPIResponseRequest)StaticFiles)CORSMiddleware)FileResponse)asynccontextmanagerN)Path)settingsLANGSMITH_API_KEYLANGSMITH_PROJECTtrueLANGCHAIN_TRACING_V2zhttps://api.smith.langchain.comLANGCHAIN_ENDPOINTu,   🔧 LangSmith tracing enabled for project: u3   ⚠️ LangSmith API key not set - tracing disabled)routerappc                T  K   ddl m} ddlm} 	  |             d{V  t	          d           nN# t
          $ rA}t                              d|            t                              d           Y d}~nd}~ww xY w	  |             d{V  t	          d           nN# t
          $ rA}t                              d	|            t                              d
           Y d}~nd}~ww xY wdW V  ddl m	} ddlm
} 	  |             d{V  t	          d           n4# t
          $ r'}t                              d|            Y d}~nd}~ww xY w	  |             d{V  t	          d           dS # t
          $ r(}t                              d|            Y d}~dS d}~ww xY w)zd
    Lifespan context manager for FastAPI application.
    Handles startup and shutdown events.
    r   )start_logging_system)_create_connection_poolNu(   ✅ Database connection pool initializedu6   ⚠️ Failed to initialize database connection pool: zPApplication will start without database logging. Please check MySQL credentials.u    ✅ Async logging system startedu'   ⚠️ Failed to start logging system: z-Application will continue without API logging)stop_logging_system)
close_poolu    ✅ Async logging system stoppedzError stopping logging system: u#   ✅ Database connection pool closedzError closing connection pool: )middleware.mysql_loggingr   utils.dbr   print	Exceptionloggererrorwarningr   r   )r   r   r   er   r   s         3/var/www/html/web-builder-api.evdpl.com/src/main.pylifespanr!   $   s      >=====000000k%%'''''''''89999 k k kQaQQRRRijjjjjjjjk
H""$$$$$$$$$01111 H H HBqBBCCCFGGGGGGGGH 
EEEE =<<<<<######<!!#########01111 < < <:q::;;;;;;;;<<jll344444 < < <:q::;;;;;;;;;<s\   0 
A;7A66A;?B 
C*)7C%%C*?D 
E)EEE5 5
F'?F""F'zRestaurant Website GeneratorzBAI-powered restaurant website generation with DeepSite integration2.0.0)titledescriptionversionr!   mysql_logging_middlewarehttprequestc                 2   K   t          | |           d {V S )Nr&   )r)   	call_nexts     r    add_mysql_loggingr,   ^   s(      )'9=========    T*)allow_originsallow_credentialsallow_methodsallow_headersz/healthc                     K   dddS )Nhealthyr"   )statusr%    r6   r-   r    health_checkr7   m   s      G444r-   z/js/{file_path:path}	file_pathc                 D  K   t          t                    j        j        dz  }|dz  | z  }|                                r|                                st          d          S t          t          |          d          }d|j        d<   d	|j        d
<   d|j        d<   |S )z,Serve JavaScript files with no-cache headerspublicjs  status_codezapplication/javascriptpath
media_type#no-cache, no-store, must-revalidateCache-Controlno-cachePragma0Expires)	r
   __file__parentexistsis_filer   r   strheaders)r8   public_pathfile_locationresponses       r    serve_jsrQ   r   s       x..'.9K$&2M!! ))>)>)@)@ )C((((+  H )NH_%!+HX"%HYOr-   z/styles.cssc                    K   t          t                    j        j        dz  } | dz  }|                                st	          d          S t          t          |          d          }d|j        d<   d	|j        d
<   d|j        d<   |S )z$Serve CSS file with no-cache headersr:   z
styles.cssr<   r=   ztext/cssr?   rB   rC   rD   rE   rF   rG   )r
   rH   rI   rJ   r   r   rL   rM   )rN   rO   rP   s      r    	serve_cssrS      s       x..'.9K,.M!! )C((((  H )NH_%!+HX"%HYOr-   z/apiwebsite)prefixtagsfilespreviewr:   /)	directoryhtmlstatic)name__main__z://   :)hostport)9__doc__fastapir   r   r   fastapi.staticfilesr   fastapi.middleware.corsr   fastapi.responsesr   
contextlibr	   ospathlibr
   logging	getLogger__name__r   core.configr   langsmith_api_keyenvironlangsmith_projectr   api.websiter   website_router	api.filesfiles_routerapi.previewpreview_routerr!   r   r   r'   
middlewarer,   add_middlewareallowed_originsgetr7   rL   rQ   rS   include_routerrH   rI   rN   rJ   mountuvicornrunget_current_domainsplitapp_portr6   r-   r    <module>r      s   
 / . . . . . . . . . + + + + + + 2 2 2 2 2 2 * * * * * * * * * * * * 				       		8	$	$ !            A&.&@BJ"#&.&@BJ"#)/BJ%&'HBJ#$	E
U9S
U
UVVVV	E
?@@@ 1 0 0 0 0 0 , , , , , , 0 0 0 0 0 0 +< +< +< +< +<^ g
(T	   > = = = = =>W > > > >
   *%%     5 5 5 	  c    ! *   *   >&	{  C C C   <gY  ? ? ?   >&	{  C C C d8nn#*X5 VIIc;;[)9)9EEEHIUUUzNNNGK5(577==eDDQGMMcRRSTU\d\mnnnnnn r-   