
    g              	       n    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ededed	efd
Z	d Z
d Zd Zd Zy)    N)text)datetime)settings)get_session
reportNamesqlQueryfromDatetoDatec                 X   K   | dk(  rt        ||      }nt        |      }| |||d|dS w)Nlodging_statistics)	sql_querygenReportTool)r   r   r	   r
   typedata)
log_reportexecute_raw_query)r   r   r	   r
   	callbackskwargsr   s          ;/var/www/html/chat-with-data/app/rag/tools/genReportTool.py
gen_reportr      sE     ))(F+ 84#XX^ix  CG  H  Hs   (*c                 F    t        | t              r| j                         S | S )N)
isinstancer   	isoformat)values    r   serialize_valuer      s    %"  L    c                    t               }	 |j                  t        |             }|j                         }|j	                         }|D cg c]+  }t        ||      D ci c]  \  }}|t        |       c}}- }}}}||j                          S c c}}w c c}}}w # t        $ r(}	t        d|	        Y d }	~	|j                          y d }	~	ww xY w# |j                          w xY w)NzAn error occurred: )
r   executer   fetchallkeyszipr   close	Exceptionprint)
r   sessionresult_proxy
result_setcolumn_namesrowcolumnr   result_as_dictes
             r   r   r      s     mGtI7 "**,
 $((*
 "
! BE\SVAWXAWV_U++AWX! 	 
  	 Y
  #A3'( 	 	sN   A B B B6B<B BB 	C(C6C CC C%c                     	 | |dg dd}ddt         j                  d}t        j                  d||      }|j                  sy 	 t        |j                               S # t
        $ r}t        |       Y d }~y d }~ww xY w)	Nlistingnew)startendmodeselected_hotel
factReport12112)HotelidCurrent_versionAuthorizationzLhttps://mtstaging.lodgingsystem.com/ls-api/Factreports/getlodgingStatsReport)jsonheaders)	r   TOKENrequestspostokr#   r$   
parse_datar:   )r0   r1   r   r;   responser,   s         r   r   r   8   s     
 "$NN

 ==Z
 {{ 
 hmmo&&  as   A A 	A;&A66A;c                    | d   }| d   }g }|D ]o  }i }t        |j                               }t        |      D ]3  \  }}|j                  dd      }	|t	        |      k  r	||   ||	<   /d||	<   5 |j                  |       q |S )Ncolumnsresult. )listvalues	enumeratereplacelenappend)
r   rC   resultsparsed_resultsrD   r)   result_valuesir*   cols
             r   r@   r@   R   s    9oG8nG NV]]_-"7+IAv..R(C3}%%(+CC , 	c"  r   )NNNNN)r=   
sqlalchemyr   r   app.config.applicationr   app.model.sql_connectionr   strr   r   r   r   r@    r   r   <module>rW      sP       + 0H HS H# H]` H
B'4r   