
    Xj              
          d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZmZ  ee          Z e            Ze                    d	ee         
          d ee
           ee	          fdedz  dedefd            Ze                    de
           ee
           ee	          fdededefd            Ze                    d	e
           ee
           ee	          fdededefd            Ze                     de
           ee
           ee	          fdedededefd            Z!e"                    d           ee
           ee	          fdededefd            Z#dS )    )	APIRouterDependsHTTPException)
get_logger)Session)get_current_userget_db)data_model_crud)	DataModel)User)DataModelCreateDataModelResponseDataModelUpdatez/models)response_modelNstatusdbcurrent_userc                 b  K   t                               d|  d|j                    |j        rR|                    t
                                        t
          j        |j        k    t
          j        dk    z            }nJ|                    t
                                        t
          j        d u t
          j        dk    z            }| r#|                    t
          j        | k              }|	                                }t                               dt          |           d           |S )NzListing data models: status=, user=systemzFound z data models)loggerinfoid	tenant_idqueryr   filtertyper   alllen)r   r   r   r   modelss        >/lsinfo/ai/hellotax_ai/base_platform/app/api/v1/ai/modeling.pylist_modelsr"      s	      KKOvOOloOOPPP 
##** L$::y~QY?YZ
 
 ##** D(Y^x-GH
 
  9Y-788YY[[F
KK2V222333M    z/models/{model_id}model_idc                 \   K   t          j        ||           }|st          dd          |S )Nr     Model not foundstatus_codedetail)r
   getr   r$   r   r   models       r!   	get_modelr/   &   s?       x000E G4EFFFFLr#   model_inc                   K   t                               d| j         d|j                    t	          j        || j                  }|r3t                               d| j                    t          dd          |j        r|j        nd }t	          j	        || |j        |          }t                               d	|j         d
|j                    |S )NzCreating data model: key=r   )keyzModel key already exists: key=i  zModel key already existsr)   )obj_in
created_byr   zData model created: id=z, key=)
r   r   r2   r   r
   
get_by_keywarningr   r   create_with_fields)r0   r   r   existingr   r.   s         r!   create_modelr9   0   s       KKRHLRRRRSSS)"(,???H PFFFGGG4NOOOO*6*@J&&dI.
89  E KKE%(EE%)EEFFFLr#   c                    K   t          j        ||           }|st          dd          |j        dk    rt          dd          t          j        |||          S )	Nr&   r'   r(   r)   r     z System models cannot be modified)db_objr3   )r
   r,   r   r   update_with_fields)r$   r0   r   r   r.   s        r!   update_modelr>   C   ss       x000E G4EFFFFzX4VWWWW-bxPPPPr#   c                   K   t                               d|  d|j                    t          j        ||           }|s.t                               d|             t          dd          |j        dk    r.t                               d	|             t          d
d          t          j        ||            t                               d|             ddiS )NzDeleting data model: id=r   r&   zModel not found: id=r'   r(   r)   r   z#Attempt to delete system model: id=r;   zSystem models cannot be deletedzData model deleted: id=messagezModel deleted successfully)	r   r   r   r
   r,   r6   r   r   remover-   s       r!   delete_modelrB   R   s       KKM8MMLOMMNNNx000E G8h889994EFFFFzXGXGGHHH4UVVVV2(++++
KK4(44555344r#   )$fastapir   r   r   common_loggingr   sqlalchemy.ormr   app.api.depsr   r	   app.crud.data_modelr
   app.models.data_modelr   app.models.userr   app.schemas.data_modelr   r   r   __name__r   routerr,   liststrr"   intr/   postr9   putr>   deleterB    r#   r!   <module>rT      s   5 5 5 5 5 5 5 5 5 5 % % % % % % " " " " " " 1 1 1 1 1 1 1 1 / / / / / / + + + + + +             V V V V V V V V V V	H			 Id+<&=>>'&// !122 $J    ?>*  1BCC!(wwO_G`G` @D   DC Y'899 '&// !122     :9$  1BCC '&// !122	Q QQQ 	Q 	Q Q Q DCQ #$$!(wwO_G`G`5 555@D5 5 5 %$5 5 5r#   