
    'hiQ                     T    d dl m Z  d dlmZmZmZ d dlmZ dedefdZ G d d      Z	y	)
    )datetime)OptionalAnyList)CoordinatorsCourseModelrreturnc                    | j                   | j                  | j                  | j                  | 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	school_id	course_idprofessional_idcoordinator_type_idphoneemail
added_dateupdated_datedeleted_date)r   r   r   r   r   r   r   r   	isoformatr   r   )r   s    V/var/www/pie360backend.cl/public_html/app/backend/classes/coordinators_course_class.py_row_to_dictr      s    dd[[[[,, 4423,,all,,.D67nn002$67nn002  KO     c                       e Zd Zd Z	 	 	 	 ddee   dee   dee   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)CoordinatorsCourseClassc                     || _         y )N)db)selfr   s     r   __init__z CoordinatorsCourseClass.__init__   s	    r   Nr   r   r   r   r	   c                    	 | j                   j                  t              j                  t        j                  j                  d            }|'|dk7  r"|j                  t        j                  |k(        }|'|dk7  r"|j                  t        j                  |k(        }|'|dk7  r"|j                  t        j                  |k(        }|'|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)z`Lista registros activos (deleted_date is None), con filtros opcionales (-1 o None = no filtrar).Nsuccessstatusdataerrorr#   messager$   )r   queryr   filterr   is_r   r   r   r   allr   	Exceptionstr)	r   r   r   r   r   qrowsr   es	            r   getzCoordinatorsCourseClass.get   s#   	F56/<<@@FG  $bHH4>>)KL$bHH4>>)KL*"/DHH4DDWX".3F"3LHH4HHL__`557D'41Pa,q/1PQQ1P 	F%#a&"EE	Fs0   DD" DD" D" "	E+D?9E?E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   rowr0   s       r   	get_by_idz!CoordinatorsCourseClass.get_by_id3   s    	H''-- 78??@W@Z@Z^`@`aggiC")6OY]^^'c1BCC 	H%#a&$GG	Hs$   AA% A% %	B.B<BBr$   c                 D   	 t        j                         }t        |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      ||d	      }| j                  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)z)Crea un registro en coordinators_courses.r   r   r   r   r   r   N)	r   r   r   r   r   r   r   r   r   r!   zRegistro creado.r#   r'   r   r%   r#   r'   )r   nowr   r1   r   addcommitrefreshr   r,   rollbackr-   )r   r$   r;   r6   r0   s        r   storezCoordinatorsCourseClass.store=   s    	:,,.C)((;/((;/ $): ;$(HH-B$Chhw'hhw' !
C GGKKGGNNGGOOC '4FcffUU 	:GG%#a&99	:s   C!C$ $	D-'DDDc                    	 | j                   j                  t              j                  t        j                  |k(        j                         }|sdddS d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_        d|v r|d   
|d   |_	        d	|v r
|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%   r3   r:   r   Nr   r   r   r   r   r!   zRegistro actualizado.r9   )r   r(   r   r)   r   r4   r   r   r   r   r   r   r   r;   r   r=   r>   r,   r?   r-   )r   r   r$   r6   r0   s        r   updatezCoordinatorsCourseClass.updateT   s\   	:''-- 78??@W@Z@Z^`@`aggiC")6OPPd"tK'8'D $[ 1d"tK'8'D $[ 1 D(T2C-D-P&*+<&=#$,6K1L1X*./D*E'$ M	$ M	'||~CGGNNGGOOC '4KSVSYSYZZ 	:GG%#a&99	:s%   AD CD 	E%'EEE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%   r3   r:   r!   zRegistro eliminado.N)r   r(   r   r)   r   r4   r   r;   r   r   r=   r,   r?   r-   r5   s       r   deletezCoordinatorsCourseClass.deleten   s    
	:''-- 78??@W@Z@Z^`@`aggiC")6OPP'||~C'||~CGGNN'4IJJ 	:GG%#a&99	:s%   AB' AB' '	C"0'CC"C")NNNN)__name__
__module____qualname__r   r   intr   r1   r7   dictr@   rB   rD    r   r   r   r      s    
 $(#')--1FC=F C=F "#	F
 &c]F 
F4HC HC H:$ :3 :.: :D :S :4: : :r   r   N)
r   typingr   r   r   app.backend.db.modelsr   rI   r   r   rJ   r   r   <module>rM      s1     & & 9+  e: e:r   