
    Xj                     ^    d dl mZ d dlmZmZ d dlmZ  ee          Z G d d          Z	dS )    )Session)
get_loggerlog_execution)TrainingTemplatec                       e Zd ZdefdZ ee          dededededede	d	e
d
e
fd            Zdd	e
defdZde
fdZde
fdZde
fdZdS )TemplateManagerdbc                     || _         d S N)r	   )selfr	   s     O/lsinfo/ai/hellotax_ai/training_center/backend/app/services/template_manager.py__init__zTemplateManager.__init__   s        namedescription	task_typeplatformconfig	is_public	tenant_id
created_byc	           
      4   t          ||||||||          }	| j                            |	           | j                                         | j                            |	           t
                              |	j                                      d           |	S )N)r   r   r   r   r   r   r   r   template_idzTemplate created)	r   r	   addcommitrefreshloggerbindidinfo)
r   r   r   r   r   r   r   r   r   templates
             r   create_templatezTemplateManager.create_template   s    #;R[fnw}  JS  _h  u  @  @  @H!!!,,112DEEEr   Nc                    | j                             t                                        t          j        |k    t          j        z            }|r#|                    t          j        |k              }|                                S r   )r	   queryr   filterr   r   r   all)r   r   r   r%   s       r   get_templateszTemplateManager.get_templates   sn    .//668H8RV_8_dtd~7  A  A 	JLL!1!;y!HIIEyy{{r   r   c                     | j                             t                                        t          j        |k                                              S r   )r	   r%   r   r&   r    first)r   r   s     r   get_templatezTemplateManager.get_template   s:    w}}-..556F6I[6XYY__aaar   c                 P   |                      |          }|sd S |                                D ]\  }}t          |||           | j                                         | j                            |           t                              |                              d           |S )Nr   zTemplate updated)	r+   itemssetattrr	   r   r   r   r   r!   )r   r   kwargsr"   keyvalues         r   update_templatezTemplateManager.update_template    s    $$[11 	4 ,,.. 	* 	*JCHc5))))!!!,,112DEEEr   c                     |                      |          }|rc| j                            |           | j                                         t                              |                              d           dS dS )Nr   zTemplate deletedTF)r+   r	   deleter   r   r   r!   )r   r   r"   s      r   delete_templatezTemplateManager.delete_template+   sp    $$[11 	GNN8$$$GNNKKKK00556HIII4ur   r   )__name__
__module____qualname__r   r   r   r   strdictboolintr#   r(   r+   r2   r5    r   r   r   r   	   s       7     ]6C c c UX bf sw   EH   VY     s s    b b b b b	3 	 	 	 	3      r   r   N)
sqlalchemy.ormr   common_loggingr   r   app.models.training_templater   r6   r   r   r=   r   r   <module>rA      s    " " " " " " 4 4 4 4 4 4 4 4 9 9 9 9 9 9	H		) ) ) ) ) ) ) ) ) )r   