
    U+i               
          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mZmZ d dlmZ d dlmZ d dlmZ  ed	d
g      Zej-                  d       edd       ee
       ee      fde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j-                  d       ee
       ee      fdededefd       Zej7                  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j?                  d       ee
       ee      fdededefd       Zy)    )	APIRouterDependsQuerystatus)JSONResponse)get_db)get_current_active_user)	UserLogin StoreMeetingSchedualingAgreement!UpdateMeetingSchedualingAgreement) MeetingSchedualingAgreementClass)Session)Optionalz/meeting_schedualing_agreementszMeeting Schedualing Agreements)prefixtags Nz-1 o omitir = no filtrar)descriptionmeeting_schedualing_idsession_userdbc           	         	 t        |      j                  |       }|j                  d      dk(  r?t        t        j                  d|j                  dd      |j                  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)zZLista acuerdos activos (deleted_date is None). Filtro opcional por meeting_schedualing_id.r   r   error  messageError al listardatar   r   r   status_codecontent   OKNr   getr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_200_OK	Exceptionstrr   r   r   resultes        Z/var/www/pie360backend.cl/public_html/app/backend/routes/meeting_schedualing_agreements.pyget_listr.      s    
1"599Qg9h::h7*"AA!%zz)5FG"JJvr2  **

62.
 	
  
==q6
 	

s$   A-B 0.B 	C('CCCz$/by_meeting/{meeting_schedualing_id}c           	         	 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)zXObtiene los acuerdos (lista) para un meeting_schedualing_id. Suele ser un solo registro.r   r   r   r   r   r   r   r   r"   r#   r   Nr$   r*   s        r-   get_by_meeting_schedualing_idr0   5   s    
1"599Qg9h::h7*"AA!%zz)5FG  **

62.
 	
  
=="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)zBObtiene un registro meeting_schedualing_agreements por su id (pk).r   r     r   Registro no encontradoNr   r   r"   r#   r   r   )
r   	get_by_idr%   r   r   HTTP_404_NOT_FOUNDr'   r(   r&   r)   r1   r   r   r+   r,   s        r-   r5   r5   V   s    
1"5??C::h7*"55!%zz)5MN   **

6*
 	
  
=="s1vtD
 	

s$   AB -B 	C'C=CCz/storer   c           	      <   	 t        | d      r| j                         n| j                         }t        |      j	                  |      }|j                  d      dk(  r/t        t        j                  d|j                  dd      dd	      S |j                  d
      }t        t        j                  d|j                  dd      ||nd|j                  d      id	      S # t        $ r2}t        t        j                  dt        |      dd	      cY d}~S d}~ww xY w)z3Crea un registro en meeting_schedualing_agreements.
model_dumpr   r   r   r   zError al guardarNr   r   r      zRegistro creador1   )hasattrr9   dictr   storer%   r   r   r&   HTTP_201_CREATEDr(   r)   )r   r   r   payloadr+   createdr,   s          r-   r=   r=   w   s	   
'.t\'B$//#		1"5;;GD::h7*"AA!%zz)5GH   **V$//!::i1BC#*#6T6::dCS<T
 	
  
==q6
 	

s%   BC  AC   	D)'DDDc           	      n   	 t        |d      r|j                  d      n4|j                         j                         D ci c]  \  }}|	|| c}}}t	        |      j                  | |      }|j                  d      dk(  r/t        t        j                  d|j                  dd	      dd
      S t        t        j                  d|j                  dd      d|j                  d      id
      S c c}}w # t        $ r2}t        t        j                  dt        |      dd
      cY d}~S d}~ww xY w)z<Actualiza un registro meeting_schedualing_agreements por id.r9   T)exclude_unsetNr   r   r3   r   r4   r   r   r"   zRegistro actualizador1   r   )r;   r9   r<   itemsr   updater%   r   r   r6   r'   r(   r&   r)   )	r1   r   r   r   kvr?   r+   r,   s	            r-   rD   rD      s=   
9@|9T$///5lplululwl}l}l  [Rdhdegh  DE  DQ[\^_[_  [R1"5<<RI::h7*"55!%zz)5MN   **!::i1GHvzz$/0
 	
 [R&  
==q6
 	

s<   ?C9 
C3C3A!C9 3?C9 3C9 9	D4'D/)D4/D4c                    	 t        |      j                  |       }|j                  d      dk(  r/t        t        j
                  d|j                  dd      dd      S t        t        j                  d	|j                  dd
      dd      S # t        $ r2}t        t        j                  dt        |      dd      cY d}~S d}~ww xY w)u$   Borrado lógico: setea deleted_date.r   r   r3   r   r4   Nr   r   r"   zRegistro eliminador   )
r   deleter%   r   r   r6   r'   r(   r&   r)   r7   s        r-   rH   rH      s    
1"5<<R@::h7*"55!%zz)5MN   **!::i1EF
 	
  
==q6
 	

s$   AB .B 	C	'C>C	C	) fastapir   r   r   r   fastapi.responsesr   app.backend.db.databaser   app.backend.auth.auth_userr	   app.backend.schemasr
   r   r   7app.backend.classes.meeting_schedualing_agreement_classr   sqlalchemy.ormr   typingr   meeting_schedualing_agreementsr%   intr.   r0   r5   postr=   putrD   rH        r-   <module>rW      s   5 5 * * > n n d " !*,
*	+"   ##B',1$D^,_%&=>&/!
$SM!
!
 	!
 (!
H  ##$JK &&=>&/


 	
 L
@  ##G, &&=>&/


 	
 -
@  $$X. &&=>&/#

*#
#
 	#
 /#
L  ##G, &&=>&/	#
#

+#
 #
 		#
 -#
L  &&w/ &&=>&/!
!
!
 	!
 0!
rV   