
    Uh                        d Z ddlmZmZ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Zdd	lmZ  e            Z e            Z e            Z e            Ze                    d
           e	            defd                        Ze                    d          defd            Ze                    d          defd            ZdS )zX
Website management API endpoints
Handles deployment, download, and email functionality
    )	APIRouterHTTPExceptionRequest)FileResponseStreamingResponse)
rate_limit)WebsiteService)EmailService)	AIServiceN)Pathz/generate-streamrequestc           	         K   	 |                                   d{V fd}t           |            dddddd	          S # t          $ r&}t          d
dt	          |                     d}~ww xY w)zC
    Generate website with streaming response for live preview
    Nc                    K   dt          j        ddd           dW V  t                                        2 3 d {V } dt          j        |            dW V  #6 d S )Nzdata: statuszStarting website generation...)typemessagez

)jsondumpswebsite_servicegenerate_website_stream)
chunk_datadatas    :/var/www/html/web-builder-api.evdpl.com/src/api/website.pygenerate_streamz0generate_website_stream.<locals>.generate_stream!   s      l4:xDd&e&efflllllll %4$K$KD$Q$Q < < < < < < <j;tz*55;;;;;;;; %R$Q$Qs   Aztext/event-streamno-cachez
keep-alivez text/event-stream; charset=utf-8no)Cache-Control
ConnectionzContent-TypezX-Accel-Buffering)
media_typeheaders  zStreaming generation failed: status_codedetail)r   r   	Exceptionr   str)r   r   er   s      @r   r   r      s      ^\\^^######	< 	< 	< 	< 	< !O*!+* B%) 

 

 

 
	
  ^ ^ ^4\TWXYTZTZ4\4\]]]]^s   =A 
A3!A..A3z/download/{folder_name}folder_namec                 t  K   	 t          d          | z  }|                                st          dd          t                              ||            d{V }t          ||  ddd|  d	d
ddddd          S # t          $ r  t          $ r&}t          ddt          |                     d}~ww xY w)z&
    Download website as ZIP file
    ztemplates/generatedi  zWebsite not foundr"   Nz.zipzapplication/zipzattachment; filename="z.zip"nosniff
SAMEORIGINz#no-cache, no-store, must-revalidater   0)zContent-DispositionzX-Content-Type-OptionszX-Frame-Optionsr   PragmaExpires)pathfilenamer   r    r!   zDownload failed: )r   existsr   r   
create_zipr   r%   r&   )r(   website_pathzip_pathr'   s       r   download_websiter5   :   s     
R122[@""$$ 	MC8KLLLL )33L+NNNNNNNN#)))('T'T'T'T*3#/!F$ 	
 
 
 	
     R R R4PA4P4PQQQQRs   A8A= =B7!B22B7z	/send-zipc                 f  K   	 |                                   d{V }t          | j                                      d          }t                              |d         |d         |d         |           d{V }ddd	S # t          $ r&}t          d
dt          |                     d}~ww xY w)z$
    Send website ZIP via email
    N/emailr(   website_name)r8   r(   r9   host_urlTzEmail sent successfully)successr   r!   zEmail sending failed: r"   )r   r&   base_urlrstripemail_servicesend_website_emailr%   r   )r   r   r:   resultr'   s        r   send_zip_emailrA   \   s      
W\\^^###### w'((//44 %77w-]+n-	 8 
 
 
 
 
 
 
 
  ,EFFF W W W4USQRVV4U4UVVVVWs   A;B   
B0
!B++B0)__doc__fastapir   r   r   fastapi.responsesr   r   middleware.rate_limiterr   services.website_servicer	   services.email_servicer
   services.ai_servicer   r   pathlibr   routerr   r>   
ai_servicepostr   getr&   r5   rA        r   <module>rP      s   
 6 5 5 5 5 5 5 5 5 5 = = = = = = = = . . . . . . 3 3 3 3 3 3 / / / / / / ) ) ) ) ) )       	 !.""Y[[
   ^7  ^  ^  ^  !  ^D %&&R R R R '&RB [W' W W W W W WrO   