
    (8in                     v    d dl Z d dlmZ d dlmZ d dlmZ  e j                  e      Z	 G d d      Z
 e
       Zy)    N)text)Optional)AsyncSessionc                   Z    e Zd Zdededee   fdZdededee   fdZ	dededee   fdZ
y	)
AuthCRUDdbemailreturnc                   K   t         j                  d|        	 |j                  t        d      d|i       d{   }|j	                         }|rFt        |d      rt        |j                        n
t        |      }t         j                  d|        |S t         j                  d|        y7 u# t        $ r }t         j                  d| d	
        d}~ww xY ww)u*   Busca usuário por email usando SQL diretou   Buscando usuário por email: z.SELECT * FROM dbo.Usuario WHERE Email = :emailr	   N_mappingu   Usuário encontrado: Email=u%   Usuário não encontrado para email: u#   Erro ao buscar usuário por email: Texc_info
loggerdebugexecuter   fetchonehasattrdictr   	Exceptionerror)selfr   r	   resultrow	user_dictes           /srv/www/app-alerta/crud/auth.pyget_user_by_emailzAuthCRUD.get_user_by_email
   s     4UG<=	::EF%  F //#C29#z2JD.PTUXPY	:5'BC  DUGLM  	LL>qcBTLR	E   C  B4 B2AB4 C B4 1C 2B4 4	C=CCC 
id_clientec                   K   t         j                  d|        	 |j                  t        d      d|i       d{   }|j	                         }|rFt        |d      rt        |j                        n
t        |      }t         j                  d|        |S t         j                  d|        y7 u# t        $ r }t         j                  d| d	
        d}~ww xY ww)z&Busca cliente por ID usando SQL diretozBuscando cliente por ID: z0SELECT * FROM dbo.Cliente WHERE Id = :id_clienter    Nr   zCliente encontrado: Id=u!   Cliente não encontrado para ID: zErro ao buscar cliente por ID: Tr   r   )r   r   r    r   r   cliente_dictr   s          r   get_cliente_by_idzAuthCRUD.get_cliente_by_id    s     0=>	::GHz* F //#C5<S*5MtCLL1SWX[S\6zlCD##@MN  	LL:1#>LN	r   tokenc                   K   t         j                  d       	 |j                  t        d      d|i       d{   }|j	                         }|rCt        |d      rt        |j                        n
t        |      }t         j                  d       |S t         j                  d       y7 o# t        $ r }t         j                  d| d	
        d}~ww xY ww)z)Busca cliente por token usando SQL diretozBuscando cliente por tokenz.SELECT * FROM dbo.Cliente WHERE Token = :tokenr$   Nr   zCliente encontrado por tokenu,   Cliente não encontrado para token fornecidoz"Erro ao buscar cliente por token: Tr   r   )r   r   r$   r   r   r"   r   s          r   get_cliente_by_tokenzAuthCRUD.get_cliente_by_token6   s     13	::EF%  F //#C5<S*5MtCLL1SWX[S\;=##KM  	LL=aSADLQ	sE   C B+ B)AB+ CB+ (C)B+ +	C4CCCN)__name__
__module____qualname__r   strr   r   r   intr#   r&        r   r   r   	   s_    , s xPT~ ,, C HUYN ,\ # (SW. r-   r   )logging
sqlalchemyr   typingr   sqlalchemy.ext.asyncior   	getLoggerr'   r   r   crudr,   r-   r   <module>r4      s9       /			8	$A AF zr-   