
    U+i                        d Z ddlmZmZmZmZ ddlmZ ddl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 dd	lmZ  ed
dg      Zej/                  d       edd       edd       edd       edd       ee       ee      fdee   dee   dee   dedede	fd       Zej/                  d       ee       ee      fdedede	fd       Zej9                  d       ee       ee      fd edede	fd!       Zej=                  d       ee       ee      fded edede	fd"       ZejA                  d       ed#d$       ee       ee      fded%edede	fd&       Z!y)'zdocument_alerts.    )	APIRouterDependsQuerystatus)JSONResponse)Session)Optional)get_current_active_user)get_db)	UserLoginStoreDocumentAlertUpdateDocumentAlert)DocumentAlertClassz/document_alertszDocument Alerts)prefixtags NzFiltrar por estudiante)descriptionzFiltrar por profesionalzFiltrar por documentoFzIncluir eliminados (soft)
student_idprofessional_iddocument_idinclude_deletedsession_userdbc           	         	 t        |      j                  | |||      }|j                  d      dk(  r/t        t        j                  d|j                  dd      g d      S t        t        j
                  d	d
|j                  dg       d      S # t        $ r2}t        t        j                  dt        |      g d      cY d}~S d}~ww xY w)z:Lista registros de document_alerts con filtros opcionales.)r   r   r   r   r   error  messageErrorr   r   datastatus_codecontent   OKr    N)r   getr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_200_OK	Exceptionstr)r   r   r   r   r   r   resultes           K/var/www/pie360backend.cl/public_html/app/backend/routes/document_alerts.pylist_document_alertsr.      s    
#B'++!+#+	 , 
 ::h7*"AA#&6::i3Q[]^  **"tVZZPR=ST
 	
  
=="s1vrB
 	

s$   A B #.B 	C'CCCz/{id}idc                    	 t        |      j                  |       }|j                  d      dk(  r/t        t        j
                  d|j                  dd      dd      S t        t        j                  d	d
|j                  d      d      S # t        $ r2}t        t        j                  dt        |      dd      cY d}~S d}~ww xY w)zObtiene un registro por id.r   r     r   No encontradoNr   r!   r$   r%   r    r   )
r   	get_by_idr&   r   r   HTTP_404_NOT_FOUNDr(   r)   r'   r*   )r/   r   r   r+   r,   s        r-   get_document_alertr5   4   s    
#B'11"5::h7*"55#&6::i3Ycgh  **"tVZZ=OP
 	
  
=="s1vtD
 	

s$   AB -B 	C'C=CCz/storer    c           	         	 t        |      j                  | j                               }|j                  d      dk(  r/t	        t
        j                  d|j                  dd      dd      S t	        t
        j                  d	|j                  dd
      |j                  d      |j                  d      d      S # t        $ r2}t	        t
        j                  dt        |      dd      cY d}~S d}~ww xY w)z$Crea un registro en document_alerts.r   r   i  r   zError al crearNr   r!      Creador    r/   )r   r   r    r/   r   )r   store
model_dumpr&   r   r   HTTP_400_BAD_REQUESTHTTP_201_CREATEDr)   r'   r*   )r    r   r   r+   r,   s        r-   store_document_alertr=   M   s    
#B'--doo.?@::h7*"77#&6::iIY3Zdhi  //"vzz)X/NX^XbXbciXjrxr|r|  ~B  sC  D
 	
  
=="s1vtD
 	

s%   A*B; -AB; ;	C6'C1+C61C6c                    	 |j                  d      }t        |      j                  | |      }|j                  d      dk(  r.t	        t
        j                  d|j                  dd      d	      S t	        t
        j                  d
|j                  dd      |j                  d      d	      S # t        $ r1}t	        t
        j                  dt        |      d	      cY d}~S d}~ww xY w)zActualiza un registro por id.T)exclude_unsetr   r   r1   r   r2   r   r   r!   r$   Actualizador/   )r   r   r/   r   N)r:   r   updater&   r   r   r4   r(   r)   r'   r*   )r/   r    r   r   payloadr+   r,   s          r-   update_document_alertrD   f   s    
///5#B'..r7;::h7*"55#&6::i3YZ  **"vzz)]/S[a[e[efj[kl
 	
  
=="s1v6
 	

s$   A.B/ 1=B/ /	C)8&C$C)$C)Tz!True = soft delete (deleted_date)softc                    	 t        |      j                  | |      }|j                  d      dk(  r.t        t        j
                  d|j                  dd      d      S t        t        j                  d	|j                  dd
      d      S # t        $ r1}t        t        j                  dt        |      d      cY d}~S d}~ww xY w)u,   Elimina un registro por id (soft o físico).)rE   r   r   r1   r   r2   r@   r!   r$   	Eliminador   N)
r   deleter&   r   r   r4   r(   r)   r'   r*   )r/   rE   r   r   r+   r,   s         r-   delete_document_alertrI      s    
#B'..r.=::h7*"55#&6::i3YZ  **"vzz)[/QR
 	
  
=="s1v6
 	

s$   AB  -B 	C&C=CC)"__doc__fastapir   r   r   r   fastapi.responsesr   sqlalchemy.ormr   typingr	   app.backend.auth.auth_userr
   app.backend.db.databaser   app.backend.schemasr   r   r   (app.backend.classes.document_alert_classr   document_alertsr&   intboolr.   r5   postr=   putrD   rH   rI        r-   <module>rZ      s$    5 5 * "  > * R R G
	 R %d8P Q%*4=V%W!&t9P!Q!%5PQ%&=>&/

c]
 #
 	

 
 	
 
@ W &&=>&/


 	
 
0 h &&=>&/



 	
  
0 W &&=>&/	



 
 		
 
4   t)LM%&=>&/	



 
 		
 !
rY   