
    'Xi                     \    d dl m Z  d dlmZmZ d dlmZ d dlmZ dedefdZ	 G d d	      Z
y
)    )datetime)OptionalAny)Session) MeetingSchedualingAgreementModelrreturnc                 8   | j                   | j                  | j                  | j                  r| j                  j	                         nd | j
                  r| j
                  j	                         nd | j                  r| j                  j	                         dS d dS )N)idmeeting_schedualing_id
agreements
added_dateupdated_datedeleted_date)r   r   r   r   	isoformatr   r   )r   s    `/var/www/pie360backend.cl/public_html/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                   v    e Zd ZdefdZ	 ddee   defdZdedefdZ	d	e
defd
Zded	e
defdZdedefdZy) MeetingSchedualingAgreementClassdbc                     || _         y N)r   )selfr   s     r   __init__z)MeetingSchedualingAgreementClass.__init__   s	    r   Nr   r	   c                    	 | j                   j                  t              j                  t        j                  j                  d            }|'|dk7  r"|j                  t        j                  |k(        }|j                         }d|D cg c]  }t        |       c}dS c c}w # t        $ r}dt        |      g dcY d}~S d}~ww xY w)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   getz$MeetingSchedualingAgreementClass.get   s    

	F>?8EEII$OP  &16LPR6RHH=TTXnno557D'41Pa,q/1PQQ1P 	F%#a&"EE	Fs0   B	B' B"B' "B' '	C	0C>C	C	r   c                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|sddddS dt        |      dS # t        $ r}dt        |      ddcY d}~S d}~ww xY w)zObtiene un registro por id.r"   Registro no encontrado.Nr#   r   r   )	r   r%   r   r&   r   firstr   r)   r*   r   r   rowr-   s       r   	get_by_idz*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.B<BBr!   c                 `   	 t        j                         }|j                  d      }| j                  j	                  t
              j                  t
        j                  |k(        j                         }|rs|j                  d      |_	        ||_
        d|_        | j                  j                          | j                  j                  |       dd|j                  t        |      dS t        ||j                  d      ||d      }| j                  j!                  |       | j                  j                          | j                  j                  |       dd|j                  t        |      dS # t"        $ r2}| j                  j%                          d	t'        |      d
cY d}~S d}~ww xY w)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   nowr.   r   r%   r   r&   r   r1   r   r   r   commitrefreshr   r   addr)   rollbackr*   )r   r!   r8   midr3   r-   s         r   storez&MeetingSchedualingAgreementClass.store1   sR   	:,,.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&E2 )BE2 2	F-;'F("F-(F-c                 &   	 | j                   j                  t              j                  t        j                  |k(        j                         }|sdddS d|v r|d   
|d   |_        d|v r
|d   |_        t        j                         |_
        | j                   j                          | j                   j                  |       dd|j                  d	S # t        $ r2}| j                   j                          dt        |      dcY d}~S d}~ww xY w)
z0Actualiza un registro; solo los campos enviados.r"   r0   r7   r   Nr   r   r6   )r    r$   r   )r   r%   r   r&   r   r1   r   r   r   r8   r   r9   r:   r)   r<   r*   )r   r   r!   r3   r-   s        r   updatez'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 A>C 	D'DDDc                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|sdddS t        j                         |_        t        j                         |_	        | j                   j                          dddS # t        $ r2}| j                   j                          dt        |      dcY d}~S d}~ww xY w)u$   Borrado lógico: setea deleted_date.r"   r0   r7   r   zRegistro eliminado.N)r   r%   r   r&   r   r1   r   r8   r   r   r9   r)   r<   r*   r2   s       r   deletez'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"0'CC"C"r   )__name__
__module____qualname__r   r   r   intr   r.   r4   dictr>   r@   rB    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   rG   r   r   rH   r   r   <module>rL      s1       " B4  ]: ]:r   