
    Xj                         d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	m
Z
mZ d dlmZ  ee          Z G d deee
ef                   Z G d d	eeee	f                   Z ee          Z ee          Zd
S )    )Session)CRUDBase)ModelModelProvider)ModelCreateModelUpdateProviderCreateProviderUpdate)
get_loggerc            
           e Zd Zdddedededz  dedz  fdZdedededz  fd	Zddded
ededz  dedz  fdZ	ddddededede
e         fdZdS )CRUDModelProviderN)	tenant_iddbnamer   returnc                   |                     t                                        t          j        |k              }|8t	          t          d          r#|                    t          j        |k              }|                                S Nr   )queryr   filterr   hasattrr   first)selfr   r   r   r   s        9/lsinfo/ai/hellotax_ai/base_platform/app/crud/provider.pyget_by_namezCRUDModelProvider.get_by_name   g     ''..}/AT/IJJ W]K%H%H LL!8I!EFFE{{}}    idc                    |                      ||          }t                              |                              d           |S )Nr   provider_idzProvider deleteddeleteloggerbindinfor   r   r   results       r   removezCRUDModelProvider.remove   s?    RB''##(();<<<r   codec                   |                     t                                        t          j        |k              }|8t	          t          d          r#|                    t          j        |k              }|                                S r   )r   r   r   r*   r   r   r   )r   r   r*   r   r   s        r   get_by_codezCRUDModelProvider.get_by_code   r   r   r   d   skiplimitr/   r0   c                    |                     t                                        t          j                                      |                              |                                          S N)r   r   r   	is_activeoffsetr0   all)r   r   r/   r0   s       r   get_active_providersz&CRUDModelProvider.get_active_providers#   sG     HH]##VM+,,VD\\U5\\SUU	
r   )__name__
__module____qualname__r   strintr   r   r)   r,   listr6    r   r   r   r      s(        BF  $'47$J		     1E     BF  $'47$J		    +,#	
 	
 	
	
$'	
47	
	m		
 	
 	
 	
 	
 	
r   r   c                      e Zd Zdddedededz  dedz  fdZdedededz  fd	Z	ded
ededz  fdZ
ddddededededee         f
dZddddededededee         f
dZdddddededz  dededee         f
dZdS )	CRUDModelNr    r   r   r!   r   c                    d S r2   r=   )r   r   r   r!   s       r   r   zCRUDModel.get_by_name1   s	     	r   r   c                    |                      ||          }t                              |                              d           |S )Nr   )model_idzModel deletedr"   r'   s       r   r)   zCRUDModel.remove6   s>    RB''R  %%o666r   r*   c                    |                     t                                        t          j        |k                                              S r2   )r   r   r   r*   r   )r   r   r*   s      r   r,   zCRUDModel.get_by_code;   s3    xx%%ejD&899??AAAr   r   r-   r.   r/   r0   c                    |                     t                                        t          j        |k                                  |                              |                                          S r2   )r   r   r   r!   r4   r0   r5   )r   r   r!   r/   r0   s        r   get_by_providerzCRUDModel.get_by_provider>   sU     HHUOO""5#4#CDDKKDQQWWX]^^bbdd	
r   
model_typec                    |                     t                                        t          j        |k                                  |                              |                                          S r2   )r   r   r   typer4   r0   r5   )r   r   rF   r/   r0   s        r   get_by_typezCRUDModel.get_by_typeE   sR     xx%%ejJ&>??FFtLLRRSXYY]]___r   )r!   r/   r0   c                .   |                     t                                        t          j                  }|r#|                    t          j        |k              }|                    |                              |                                          S r2   )r   r   r   r3   r!   r4   r0   r5   )r   r   r!   r/   r0   r   s         r   get_active_modelszCRUDModel.get_active_modelsJ   sq     &&u77 	CLL!2k!ABBE||D!!''..22444r   )r7   r8   r9   r   r:   r;   r   r   r   r)   r,   r<   rE   rI   rK   r=   r   r   r?   r?   /   s        DH  $'69Dj	   
  1E    
Bg B B B B B B =>C
 
 

+.
69
FI
	e
 
 
 
 <=3` ` ``*-`58`EH`	e` ` ` ` 9=!Z]5 5 55+.:5DG5TW5	e5 5 5 5 5 5r   r?   N)sqlalchemy.ormr   app.crud.baser   app.models.providerr   r   app.schemas.providerr   r   r	   r
   common_loggingr   r7   r$   r   r?   providermodelr=   r   r   <module>rS      s   " " " " " " " " " " " " 4 4 4 4 4 4 4 4 Y Y Y Y Y Y Y Y Y Y Y Y % % % % % %	H		 
  
  
  
  
!NO  
  
  
F!5 !5 !5 !5 !5[89 !5 !5 !5H ]++	%r   