
    ;i.                        S r SSKJrJrJrJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJr  SSKJrJrJr  SS	KJr  \" S
S/S9r\R/                  S5      \" SSS9\" SSS9\" SSS9\" SSS9\" \5      \" \5      4S\\   S\\   S\\   S\S\S\	4S jj5       r\R/                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R9                  S5      \" \5      \" \5      4S \S\S\	4S! jj5       r\R=                  S5      \" \5      \" \5      4S\S \S\S\	4S" jj5       r\RA                  S5      \" S#S$S9\" \5      \" \5      4S\S%\S\S\	4S& jj5       r!g)'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           	          [        U5      R                  U UUUS9nUR                  S5      S:X  a,  [        [        R                  SUR                  SS5      / S.S9$ [        [        R
                  S	S
UR                  S/ 5      S.S9$ ! [         a/  n[        [        R                  S[        U5      / S.S9s SnA$ SnAff = f)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           TC:\Users\jesus\Desktop\proyecto_pie360\backend\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$B>8C>Cz/{id}idc                     [        U5      R                  U 5      nUR                  S5      S:X  a,  [        [        R
                  SUR                  SS5      SS.S9$ [        [        R                  S	S
UR                  S5      S.S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f)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$B<6C<Cz/storer    c           	          [        U5      R                  U R                  5       5      nUR                  S5      S:X  a,  [	        [
        R                  SUR                  SS5      SS.S9$ [	        [
        R                  S	UR                  SS
5      UR                  S5      UR                  S5      S.S9$ ! [         a/  n[	        [
        R                  S[        U5      SS.S9s SnA$ SnAff = f)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(B6 +A
B6 6
C/ $C*$C/*C/c                     UR                  SS9n[        U5      R                  X5      nUR                  S5      S:X  a+  [	        [
        R                  SUR                  SS5      S.S	9$ [	        [
        R                  S
UR                  SS5      UR                  S5      S.S	9$ ! [         a.  n[	        [
        R                  S[        U5      S.S	9s SnA$ SnAff = f)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'..r;::h7*"55#&6::i3YZ  **"vzz)]/S[a[e[efj[kl
 	
  
=="s1v6
 	

s$   A(B& +:B& &
C0#CCCTz!True = soft delete (deleted_date)softc                     [        U5      R                  XS9nUR                  S5      S:X  a+  [        [        R
                  SUR                  SS5      S.S9$ [        [        R                  S	UR                  SS
5      S.S9$ ! [         a.  n[        [        R                  S[        U5      S.S9s SnA$ SnAff = f)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 
B=#B82B=8B=)"__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   