
    (8i	                         d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	  e j                  e      Z G d d      Z e       Zy)    N)select)OptionalList)Cliente)AsyncSessionc                   L    e Zd Zdededee   fdZdddedee   dee   fdZ	y)ClienteCRUDdbcnpjreturnc                    K   |j                  t        t              j                  t        j                  |k(               d{   }|j                         S 7 w)zBusca cliente por CNPJ exatoN)executer   r   whereCnpjscalar_one_or_none)selfr
   r   results       */srv/www/app-alerta/crud/alerta_cliente.pyget_by_cnpjzClienteCRUD.get_by_cnpj   sD     zz&/"7"78L"MNN((** Os   AAAAN)r   c                  K   t         j                  r&t         j                  d    dt         j                   nt         j                  }t        j	                  d| d|r|nd        	 t        j                  d       t        t               }|rt        j                  d|        |j                  dd      j                  d	d      j                  d
d      j                         }t        j                  d|        |j                  t         j                  j                  d| d      t         j                  j                  d| d      z        }nt        j                  d       t        j	                  d| d       |j                  |       d{   }t        j                  d       t        |j                         j                               }t        j	                  dt!        |       d|        |S 7 f# t"        $ rR}t%        |      }	d|	v sd|	v rt        j'                  d| d|	         t        j'                  d| d| d        d}~ww xY ww)z+Lista clientes com filtro opcional por CNPJschema.z#ClienteCRUD.list chamado - Tabela: z	 - CNPJ: zNenhum (todos)zConstruindo query SELECT...zAplicando filtro por CNPJ:  /-zCNPJ limpo: %z3Nenhum filtro aplicado - buscando todos os clienteszExecutando query na tabela z...NzQuery executada com sucessozQuery retornou z clientes da tabela zInvalid object name42S02u6   ❌ ERRO: Tabela não encontrada!
   Tabela esperada: zQ
   Verifique se a tabela existe no banco de dados SQL Server.
   Erro completo: z&Erro em ClienteCRUD.list ao consultar z: T)exc_info)r   __table_args____tablename__loggerinfodebugr   replacestripr   r   liker   listscalarsalllen	Exceptionstrerror)
r   r
   r   
table_namestmt
cnpj_limpor   clientese	error_msgs
             r   r'   zClienteCRUD.list   s'     W^VlVl..x897;P;P:QRry  sH  sH
9*YW[taqNrst"	LL67'?D:4&AB!\\#r2::3CKKCQSTZZ\
|J<89zz\\&&:,a'89\\&&4&{35
 RSKK5j\EF::d++FLL67FNN,0023HKK/#h-8LZLYZO ,  	AI$	1W	5I++5, 7))25  Ej\QSTUSVWbfg	s?   A&I)D/H G?A%H >I?H 	I
AIII)
__name__
__module____qualname__r   r,   r   r   r   r   r'        r   r	   r	   
   sO    +L + +@Q + #	++ sm	+
 
g+r8   r	   )logging
sqlalchemyr   typingr   r   models.alerta_clienter   sqlalchemy.ext.asyncior   	getLoggerr4   r!   r	   crudr7   r8   r   <module>r@      s:      ! ) /			8	$1 1f }r8   