
    i'                     ^    S SK J r   S SKJrJr  S SKJr  S SKJr  S\S\4S jr	 " S S	5      r
g
)    )datetime)OptionalAny)Session) MeetingSchedualingAgreementModelrreturnc                 V   U R                   U R                  U R                  U R                  (       a  U R                  R	                  5       OS U R
                  (       a  U R
                  R	                  5       OS U R                  (       a  U R                  R	                  5       S.$ S S.$ )N)idmeeting_schedualing_id
agreements
added_dateupdated_datedeleted_date)r   r   r   r   	isoformatr   r   )r   s    iC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\classes\meeting_schedualing_agreement_class.py_row_to_dictr      sz    dd"#":":ll23,,all,,.D67nn002$67nn002  KO     c                       \ rS rSrS\4S jr SS\\   S\4S jjr	S\S\4S	 jr
S
\S\4S jrS\S
\S\4S jrS\S\4S jrSrg) MeetingSchedualingAgreementClass   dbc                     Xl         g Nr   )selfr   s     r   __init__)MeetingSchedualingAgreementClass.__init__   s    r   Nr   r	   c                     U R                   R                  [        5      R                  [        R                  R                  S5      5      nUb(  US:w  a"  UR                  [        R                  U:H  5      nUR                  5       nSU Vs/ s H  n[        U5      PM     snS.$ s  snf ! [         a  nS[        U5      / S.s SnA$ SnAff = f)ztLista registros activos (deleted_date is None). Filtro opcional por meeting_schedualing_id (-1 o None = no filtrar).Nsuccessstatusdataerrorr#   messager$   )r   queryr   filterr   is_r   allr   	Exceptionstr)r   r   qrowsr   es         r   get$MeetingSchedualingAgreementClass.get   s    

	F>?8EEII$OP  &16LPR6RHH=TTXnno557D'41P4a,q/41PQQ1P 	F%#a&"EE	Fs0   BB, B'"B, 'B, ,
C6C
C
Cr   c                      U R                   R                  [        5      R                  [        R                  U:H  5      R                  5       nU(       d  SSSS.$ S[        U5      S.$ ! [         a  nS[        U5      SS.s SnA$ SnAff = f)zObtiene un registro por id.r%   Registro no encontrado.Nr&   r!   r"   )	r   r(   r   r)   r   firstr   r,   r-   r   r   rowr0   s       r   	get_by_id*MeetingSchedualingAgreementClass.get_by_id'   s    	H''-- @AHHIiIlIlprIrsyy{C")6OY]^^'c1BCC 	H%#a&$GG	Hs$   AA* A* *
B4BBBr$   c                 f    [         R                  " 5       nUR                  S5      nU R                  R	                  [
        5      R                  [
        R                  U:H  5      R                  5       nU(       ar  UR                  S5      Ul	        X$l
        SUl        U R                  R                  5         U R                  R                  U5        SSUR                  [        U5      S.$ [        UUR                  S5      UUSS9nU R                  R!                  U5        U R                  R                  5         U R                  R                  U5        SSUR                  [        U5      S.$ ! ["         a2  nU R                  R%                  5         S	['        U5      S
.s SnA$ SnAff = f)zCrea o actualiza: si ya existe un registro (activo o borrado) con el mismo meeting_schedualing_id, actualiza; si no, crea uno nuevo.r   r   Nr!   Registro actualizado.)r#   r'   r   r$   )r   r   r   r   r   zRegistro creado.r%   r#   r'   )r   nowr1   r   r(   r   r)   r   r5   r   r   r   commitrefreshr   r   addr,   rollbackr-   )r   r$   r=   midr7   r0   s         r   store&MeetingSchedualingAgreementClass.store1   sP   	:,,.C((34C>?8OOSVVW 
 !%,!7#& #'  $"+8OWZW]W]gstwgxyy2'*88L1 !C GGKKGGNNGGOOC '4Fcff^jkn^opp 	:GG%#a&99	:s%   C+E4 .BE4 4
F0>'F+%F0+F0c                 >    U R                   R                  [        5      R                  [        R                  U:H  5      R                  5       nU(       d  SSS.$ SU;   a  US   b
  US   Ul        SU;   a
  US   Ul        [        R                  " 5       Ul
        U R                   R                  5         U R                   R                  U5        SSUR                  S	.$ ! [         a2  nU R                   R                  5         S[        U5      S.s SnA$ SnAff = f)
z0Actualiza un registro; solo los campos enviados.r%   r4   r<   r   Nr   r!   r;   )r#   r'   r   )r   r(   r   r)   r   r5   r   r   r   r=   r   r>   r?   r,   rA   r-   )r   r   r$   r7   r0   s        r   update'MeetingSchedualingAgreementClass.updateQ   s    	:''-- @AHHIiIlIlprIrsyy{C")6OPP'4/D9Q4R4^-12J-K*t#!%l!3'||~CGGNNGGOOC '4KSVSYSYZZ 	:GG%#a&99	:s%   AC  BC   
D*'DDDc                     U R                   R                  [        5      R                  [        R                  U:H  5      R                  5       nU(       d  SSS.$ [        R                  " 5       Ul        [        R                  " 5       Ul	        U R                   R                  5         SSS.$ ! [         a2  nU R                   R                  5         S[        U5      S.s SnA$ SnAff = f)u$   Borrado lógico: setea deleted_date.r%   r4   r<   r!   zRegistro eliminado.N)r   r(   r   r)   r   r5   r   r=   r   r   r>   r,   rA   r-   r6   s       r   delete'MeetingSchedualingAgreementClass.deletec   s    
	:''-- @AHHIiIlIlprIrsyy{C")6OPP'||~C'||~CGGNN'4IJJ 	:GG%#a&99	:s%   AB. AB. .
C*8'C%C*%C*r   r   )__name__
__module____qualname____firstlineno__r   r   r   intr   r1   r8   dictrC   rF   rI   __static_attributes__ r   r   r   r      s    7 
 15F (F 
F"HC HC H:$ :3 :@: :D :S :$: : :r   r   N)r   typingr   r   sqlalchemy.ormr   app.backend.db.modelsr   rP   r   r   rR   r   r   <module>rV      s1       " B4  ]: ]:r   