ó
    €Z˜iö  ã                   ó   • S SK JrJrJrJr  S SKJr  S SKJr  S SK	J
r
  S SKJrJrJr  S SKJr  S SKJr  S SKJr  \" S	S
/S9r\R-                  S5      \" SSS9\" SSS9\" SSS9\" \
5      \" \5      4S\\   S\\   S\\   S\S\4
S jj5       r\R-                  S5      \" \
5      \" \5      4S\S\S\4S jj5       r\R5                  S5      \" \
5      \" \5      4S\S\S\4S jj5       r\R9                  S5      \" \
5      \" \5      4S\S\S\S\4S jj5       r\R=                  S5      \" \
5      \" \5      4S\S\S\4S jj5       rg)é    )Ú	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           	      ó  •  U(       a  UR                   OSnUc  [        [        R                  SS/ S.S9$ [	        U5      R                  UU UUS9nUR                  S5      S:X  a<  [        [        R                  S	UR                  S
S5      UR                  S/ 5      S.S9$ [        [        R                  SSUR                  S/ 5      S.S9$ ! [         a/  n[        [        R                  S	[        U5      / S.S9s SnA$ SnAff = f)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           ÚZC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\coordinators_courses.pyÚget_listr-      s  € ð&
Þ.:L×*Ò*Àˆ	ØÑÜÜ"×.Ñ.Ø#&°4ÀÑDñð ô )¨Ó,×0Ñ0ØØØ+Ø 3ð	 1ð 
ˆð :‰:hÓ 7Ó*ÜÜ"×AÑAà!Ø%Ÿz™z¨)Ð5FÓGØ"ŸJ™J v¨rÓ2ññð ô Ü×*Ñ*àØØŸ
™
 6¨2Ó.ññ
ð 	
øô ó 
ÜÜ×=Ñ=àÜ˜q›6Øññ
õ 	
ûð
ús)   ‚3C ¶A+C Â"+C Ã
DÃ$DÃ<DÄDz/{id}Úidc                 óˆ  •  [        U5      R                  U 5      nUR                  S5      S:X  a,  [        [        R
                  SUR                  SS5      SS.S9$ [        [        R                  S	S
UR                  S5      S.S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f)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Ñ6°rÓ:ˆØ:‰:hÓ 7Ó*ÜÜ"×5Ñ5à!Ø%Ÿz™z¨)Ð5MÓNØ ññð ô Ü×*Ñ*àØØŸ
™
 6Ó*ññ
ð 	
øô ó 
ÜÜ×=Ñ=Ø"¬s°1«v¸tÑDñ
õ 	
ûð
ús$   ‚AB Á*B Â
CÂ$B<Â6CÂ<Cz/storer   c           	      óš  •  [        U S5      (       a  U R                  5       OU R                  5       nU(       a  UR                  OSUS'   UR	                  S5      c  [        [        R                  SSSS.S9$ [        U5      R                  U5      nUR	                  S5      S	:X  a,  [        [        R                  S
UR	                  SS5      SS.S9$ [        [        R                  SUR	                  SS5      SUR	                  S5      0S.S9$ ! [         a/  n[        [        R                  S
[        U5      SS.S9s SnA$ SnAff = f)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Ñ'B$—/‘/Ô#ÈÏ	É	ËˆÞ9E˜|×5Ò5È4ˆÑØ;‰;{Ó#Ñ+ÜÜ"×7Ñ7à!Ø@Ø ññð ô )¨Ó,×2Ñ2°7Ó;ˆØ:‰:hÓ 7Ó*ÜÜ"×AÑAà!Ø%Ÿz™z¨)Ð5GÓHØ ññð ô Ü×/Ñ/àØ!Ÿ:™: iÐ1BÓCØ˜vŸz™z¨$Ó/Ð0ññ
ð 	
øô ó 
ÜÜ×=Ñ=àÜ˜q›6Øññ
õ 	
ûð
ús+   ‚A6D Á9AD Ã<D Ä
E
Ä$EÄ?E
ÅE
c           	      óh  •  [        US5      (       a  UR                  SS9O7UR                  5       R                  5        VVs0 s H  u  pEUc  M
  XE_M     snnn[	        U5      R                  X5      nUR                  S5      S:X  a,  [        [        R                  SUR                  SS	5      SS
.S9$ [        [        R                  SUR                  SS5      SUR                  S5      0S
.S9$ s  snnf ! [         a/  n[        [        R                  S[        U5      SS
.S9s SnA$ SnAff = f)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Ñ9T$—/‘/°/Ñ5Ðlp×luÑluÓlw×l}Ñl}Ôlô  [RÒlÑdhÐdeð  DEÓ[_Ð[\Ò[_Ñlò  [RˆÜ(¨Ó,×3Ñ3°BÓ@ˆØ:‰:hÓ 7Ó*ÜÜ"×5Ñ5à!Ø%Ÿz™z¨)Ð5MÓNØ ññð ô Ü×*Ñ*àØ!Ÿ:™: iÐ1GÓHØ˜vŸz™z¨$Ó/Ð0ññ
ð 	
ùó [Røô& ó 
ÜÜ×=Ñ=àÜ˜q›6Øññ
õ 	
ûð
ús=   ‚AC8 Á	C2ÁC2ÁAC8 Â5<C8 Ã2C8 Ã8
D1Ä$D,Ä&D1Ä,D1c                 óŠ  •  [        U5      R                  U 5      nUR                  S5      S:X  a,  [        [        R
                  SUR                  SS5      SS.S9$ [        [        R                  S	UR                  SS
5      SS.S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f)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Ñ3°BÓ7ˆØ:‰:hÓ 7Ó*ÜÜ"×5Ñ5à!Ø%Ÿz™z¨)Ð5MÓNØ ññð ô Ü×*Ñ*àØ!Ÿ:™: iÐ1EÓFØññ
ð 	
øô ó 
ÜÜ×=Ñ=àÜ˜q›6Øññ
õ 	
ûð
ús$   ‚AB	 Á+B	 Â	
CÂ$B=Â7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Ý "Ý á Ø"Ø
 Ð	!ñÐ ð ×Ñ˜"Óá$ TÐ7QÑRÙ%*¨4Ð=WÑ%XÙ).¨tÐA[Ñ)\Ù%Ð&=Ó>Ù˜&“/ñ.
Ø˜‰}ð.
à˜c‘]ð.
ð " #™ð.
ð ð	.
ð
 	ô.
ó ð.
ðb ×Ñ˜'Ó"ñ &Ð&=Ó>Ù˜&“/ñ
Øð
àð
ð 	ô
ó #ð
ð@ ×Ñ˜8Ó$ñ &Ð&=Ó>Ù˜&“/ñ,
Ø
!ð,
àð,
ð 	ô,
ó %ð,
ð^ ×Ñ˜'Ó"ñ &Ð&=Ó>Ù˜&“/ñ	#
Øð#
à
"ð#
ð ð#
ð 	ô	#
ó #ð#
ðL ×Ñ˜WÓ%ñ &Ð&=Ó>Ù˜&“/ñ!
Øð!
àð!
ð 	ô!
ó &ñ!
rS   