
    ɧ-i                        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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)	AIService)validate_safe_pathN)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                   K   	 t          d          }	 t          ||           }n# t          $ r t          dd          w xY w|                                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Invalid website pathr#   i  zWebsite not foundNz.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   r   
ValueErrorr   existsr   
create_zipr   r&   r'   )r)   base_dirwebsite_pathzip_pathr(   s        r   download_websiter8   ;   sd     
R-..	P-hDDLL 	P 	P 	PC8NOOOO	P ""$$ 	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,   B+ % B+ AA)B+ +C%?!C  C%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)r;   r)   r<   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_emailrD   a   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   services.website_data_utilsr   r   pathlibr   routerr   rA   
ai_servicepostr   getr'   r8   rD        r   <module>rT      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J [W' W W W W W WrS   