o
    i%                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZmZmZ d dl	m	Z	 d dl
mZ e dZe dZe dZe d	Ze d
Ze dZe dZedZdd ZeeddfdefddZde	fddZdS )    N)
DictCursor)HTTPExceptionDependsHeader)datetime)timezoneAPI_KEYSESSION_KEYZPOSTGRES_HOSTZPOSTGRES_PORTZPOSTGRES_DBZPOSTGRES_USERZPOSTGRES_PASSWORDzAmerica/Sao_Pauloc               
   C   sL   zt jtttttdW S  t jy% }  ztd|   t	dddd } ~ ww )N)dbnameuserpasswordhostportz$Erro ao conectar ao banco de dados: i  u)   Serviço de banco de dados indisponível.status_codedetail)
psycopg2connectDB_NAMEDB_USERDB_PASSDB_HOSTDB_PORTOperationalErrorprintr   )e r   /app/utils.pyget_db_connection   s   r   zChave de API.)defaultdescription	x_api_keyc                    s   | t krtdddd S )Ni  u"   Chave de API inválida ou ausente.r   )r   r   )r!   r   r   r   verify_api_key   s   r"   dtc                 C   s   t | ts| S | tS )us   
    Um filtro Jinja2 para converter um datetime com fuso horário UTC
    para o fuso horário de São Paulo.
    )
isinstancer   
astimezoneSAO_PAULO_TZ)r#   r   r   r   to_sao_paulo_time   s   

r'   )osjwtr   psycopg2.extrasr   fastapir   r   r   r   pytzr   getenvr   r	   r   r   r   r   r   r&   r   strr"   r'   r   r   r   r   <module>   s$    






	