
    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dd       edd       ee
       ee      fdee   dee   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j5                  d       ee
       ee      fdededefd       Zej9                  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StoreCoordinatorsCourseUpdateCoordinatorsCourse)CoordinatorsCourseClass)Session)Optionalz/coordinators_courseszCoordinators Courses)prefixtags Nz-1 o omitir = no filtrar)description	course_idprofessional_idcoordinator_type_idsession_userdbc           	      "   	 |r|j                   nd}|t        t        j                  ddg d      S 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)ul   Lista coordinadores-cursos activos (deleted_date is None). school_id sale de la sesión. Filtros opcionales.N   OKr   messagedatastatus_codecontent)	school_idr   r   r   r   error  r   zError al listarr   )	r"   r   r   HTTP_200_OKr   getHTTP_500_INTERNAL_SERVER_ERROR	Exceptionstr)r   r   r   r   r   r"   resultes           P/var/www/pie360backend.cl/public_html/app/backend/routes/coordinators_courses.pyget_listr-      s   &
.:L**	"..#&4D  ),00+ 3	 1 
 ::h7*"AA!%zz)5FG"JJvr2  **

62.
 	
  
==q6
 	

s)   0C A0C $.C 	D'D	D	D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)z0Obtiene un registro coordinators_courses por id.r   r#     r   Registro 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,   r2   r2   B   s    
(,66r:::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                         }|r|j                  nd|d<   |j	                  d      t        t        j                  dddd      S 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 # t        $ r2}t        t        j                  d
t        |      dd      cY d}~S d}~ww xY w)uJ   Crea un registro en coordinators_courses. school_id se toma de la sesión.
model_dumpNr"   i  u   No hay school_id en la sesión.r   r   r   r#   r$   r   zError al guardar   zRegistro creador.   )hasattrr6   dictr"   r&   r   r   HTTP_400_BAD_REQUESTr   storer'   HTTP_201_CREATEDr(   r)   )r   r   r   payloadr*   r+   s         r,   r;   r;   c   s=   &
'.t\'B$//#		9E|554;;{#+"77!@   ),227;::h7*"AA!%zz)5GH   //!::i1BCvzz$/0
 	
  
==q6
 	

s+   A.D 1AD ?D 	E	'E>E	E	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)z2Actualiza un registro coordinators_courses por id.r6   T)exclude_unsetNr   r#   r0   r   r1   r   r   r   zRegistro actualizador.   r$   )r8   r6   r9   itemsr   updater&   r   r   r3   r%   r(   r'   r)   )	r.   r   r   r   kvr=   r*   r+   s	            r,   rA   rA      s=   
9@|9T$///5lplululwl}l}l  [Rdhdegh  DE  DQ[\^_[_  [R(,33B@::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#   r0   r   r1   Nr   r   r   zRegistro eliminador$   )
r   deleter&   r   r   r3   r%   r(   r'   r)   r4   s        r,   rE   rE      s    
(,33B7::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   -app.backend.classes.coordinators_course_classr   sqlalchemy.ormr   typingr   coordinators_coursesr&   intr-   r2   postr;   putrA   rE        r,   <module>rT      s   5 5 * * > \ \ Q "  "
 	!  "$T7QR%*4=W%X).tA[)\%&=>&/.
}.
c].
 "#.
 	.

 	.
 .
b '" &&=>&/


 	
 #
@ 8$ &&=>&/,

!,
,
 	,
 %,
^ '" &&=>&/	#
#

"#
 #
 		#
 ##
L W% &&=>&/!
!
!
 	!
 &!
rS   