o
    }^fi8                     @   s   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
mZmZmZ d dlmZ G dd deZG d	d
 d
eZeddgdZejdddddefddZejdeddeefdefddZejddddeefdefddZdS )     )	APIRouterDependsHTTPException)
DictCursor)Optional)datetime)get_db_connectionregister_session_logicdecrypt_dataverify_api_key)	BaseModelc                   @   s   e Zd ZU eed< dS )SessionOnboardingRequestcookie_stringN)__name__
__module____qualname__str__annotations__ r   r   /app/routers/sessions_api.pyr      s   
 r   c                   @   sJ   e Zd ZU eed< eed< eed< eed< eed< ee ed< eed< dS )	SessionResponsecnpjnome_empresar   Z	expira_emstatusZultima_renovacaoZdata_criacaoN)r   r   r   r   r   r   r   r   r   r   r   r      s   
 r   z	/sessionsZAPI)prefixtags    u    Registra ou atualiza uma sessão)status_codesummarypayloadc                 C   s   t | j}i |ddiS )Nmessageu,   Sessão registrada e ativa para renovação.)r	   r   )r    resultr   r   r   create_or_update_session_api   s   
r#   z/{cnpj}u   Busca uma sessão por CNPJ)response_modelr   r   c                 C   s   t  }z?|jtd}|d| f | }W d    n1 s w   Y  |s-tdddt|d }tdi |d|iW |  S |  w )	N)cursor_factoryz+SELECT * FROM sessoes_fgts WHERE cnpj = %s;  u   Nenhuma sessão encontrada.r   detailZcookies_completosr   r   )	r   cursorr   executefetchoner   r
   r   close)r   _conncursession_datadecrypted_cookier   r   r   get_session_by_cnpj_api   s   
r2      u   Remove uma sessão por CNPJc                 C   s   t  }z8| }|d| f |  |jdkrtdddW d    n1 s)w   Y  W |  d S W |  d S |  w )Nz)DELETE FROM sessoes_fgts WHERE cnpj = %s;r   r&   u(   Nenhuma sessão encontrada para remover.r'   )r   r)   r*   commitrowcountr   r,   )r   r-   r.   r/   r   r   r   delete_session_by_cnpj_api,   s   


r6   N)fastapir   r   r   psycopg2.extrasr   typingr   r   	bootstrapr   r	   r
   r   pydanticr   r   r   routerpostr#   getr   r2   deleter6   r   r   r   r   <module>   s$    	