
    Xj@                         d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
  e
e          Z G d deeeef                   Z ee          ZdS )	    )Session)CRUDBase)KnowledgeBase)KnowledgeBaseCreateKnowledgeBaseUpdate)
get_loggerc                   p   e Zd Zddddedededz  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dedededz  dedede
e         fdZdddddedededz  dedede
e         fdZdddddedededz  dedede
e         fdZddddededededz  dededz  fdZdS )CRUDKnowledgeBaseN)
created_by	tenant_iddbnamer   r   returnc                4   |                     t                                        t          j        |k              }|r#|                    t          j        |k              }|#|                    t          j        |k              }|                                S N)queryr   filterr   r   r   first)selfr   r   r   r   r   s         ?/lsinfo/ai/hellotax_ai/base_platform/app/crud/knowledge_base.pyget_by_namezCRUDKnowledgeBase.get_by_name   sz     ''..}/AT/IJJ 	ILL!9Z!GHHE LL!8I!EFFE{{}}    idc                0    |                      ||          S )N)r   )delete)r   r   r   s      r   removezCRUDKnowledgeBase.remove   s    {{2"{%%%r   )r   codec                    |                     t                                        t          j        |k              }|#|                    t          j        |k              }|                                S r   )r   r   r   r   r   r   )r   r   r   r   r   s        r   get_by_codezCRUDKnowledgeBase.get_by_code    sX     ''..}/AT/IJJ LL!8I!EFFE{{}}r   r   d   )r   skiplimitkb_typer!   r"   c                6   |                     t                                        t          j        |k              }|#|                    t          j        |k              }|                    |                              |                                          S r   )r   r   r   typer   offsetr"   all)r   r   r#   r   r!   r"   r   s          r   get_by_typezCRUDKnowledgeBase.get_by_type(   sv     ''..}/AW/LMM LL!8I!EFFE||D!!''..22444r   statusc                6   |                     t                                        t          j        |k              }|#|                    t          j        |k              }|                    |                              |                                          S r   )r   r   r   r)   r   r&   r"   r'   )r   r   r)   r   r!   r"   r   s          r   get_by_statuszCRUDKnowledgeBase.get_by_status6   sv     ''..}/Cv/MNN LL!8I!EFFE||D!!''..22444r   search_termc                \   |                     t                                        t          j                            d| d                    }|#|                    t          j        |k              }|                    |                              |                                          S )N%)	r   r   r   r   liker   r&   r"   r'   )r   r   r,   r   r!   r"   r   s          r   search_by_namez CRUDKnowledgeBase.search_by_nameD   s     ''..}/A/F/FGY;GYGYGY/Z/Z[[ LL!8I!EFFE||D!!''..22444r   T)r   commitkb_idr1   c                   |                     t                                        t          j        |k              }|#|                    t          j        |k              }|                                }|sd S ||_        |                    |           |r\|                                 |	                    |           t                              |j                                      d           |S )N)knowledge_base_idzKnowledge base status updated)r   r   r   r   r   r   r)   addr1   refreshloggerbindinfo)r   r   r2   r)   r   r1   r   kbs           r   update_statuszCRUDKnowledgeBase.update_statusR   s     ''..}/?5/HII LL!8I!EFFE[[]] 	4	
r


 	WIIKKKJJrNNNKK"%K00556UVVV	r   )__name__
__module____qualname__r   strintr   r   r   r   listr(   r+   r0   boolr;    r   r   r
   r
      s        "& $   	
 $J : 
	   & & &1E & & & & BF  $'47$J		    !%5 5 55 	5
 :5 5 5 
m	5 5 5 5& !%5 5 55 	5
 :5 5 5 
m	5 5 5 5& !%5 5 55 	5
 :5 5 5 
m	5 5 5 5( !%   	
  :  
	     r   r
   N)sqlalchemy.ormr   app.crud.baser   app.models.knowledge_baser   app.schemas.knowledge_baser   r   common_loggingr   r<   r7   r
   knowledge_baserC   r   r   <module>rJ      s    " " " " " " " " " " " " 3 3 3 3 3 3 O O O O O O O O % % % % % %	H		[ [ [ [ [0CEX!XY [ [ [| #"=11r   