ó
    ·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	KJr  \" S
S/S9r\R1                  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\R1                  S5      \" \
5      \" \5      4S\S\S\4S jj5       r\R1                  S5      \" \
5      \" \5      4S\S\S\4S jj5       r\R;                  S5      \" \
5      \" \5      4S\S\S\4S jj5       r\R?                  S5      \" \
5      \" \5      4S\S\S\S\4S jj5       r \RC                  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Ú&StoreRegularTeacherDiversifiedStrategyÚ'UpdateRegularTeacherDiversifiedStrategy)Ú&RegularTeacherDiversifiedStrategyClass)Ú+DifferentiatedStrategiesImplementationClass)ÚSession)ÚOptionalz'/regular_teacher_diversified_strategiesz&Regular Teacher Diversified Strategies)ÚprefixÚtagsÚ Nz-1 o omitir = no filtrar)ÚdescriptionÚ	school_idÚ	course_idÚ
subject_idÚsession_userÚdbc           	      ó¨  •  [        U5      R                  X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)zJLista registros. Filtros opcionales por school_id, course_id y subject_id.)r   r   r   r   Úerroréô  ÚmessageúError al listarÚdata©r   r   r   ©Ústatus_codeÚcontentéÈ   ÚOKN)r   Úgetr   r   ÚHTTP_500_INTERNAL_SERVER_ERRORÚHTTP_200_OKÚ	ExceptionÚstr)r   r   r   r   r   ÚresultÚes          ÚlC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\regular_teacher_diversified_strategies.pyÚget_listr.      sÜ   € ð
Ü7¸Ó;×?Ñ?È)ÐuÐ?ð  AˆØ:‰:hÓ 7Ó*ÜÜ"×AÑAà!Ø%Ÿz™z¨)Ð5FÓGØ"ŸJ™J v¨rÓ2ññð ô Ü×*Ñ*àØØŸ
™
 6¨2Ó.ññ
ð 	
øô ó 
ÜÜ×=Ñ=àÜ˜q›6Øññ
õ 	
ûð
ús$   ‚A)B Á,+B Â
CÂ"$CÃCÃCz/by_course/{course_id}c           	      ó†  •  [        U5      R                  U S9nUR                  S5      S:X  a,  [        [        R
                  SUR                  S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)z0Obtiene la lista de registros para un course_id.)r   r   r   r   r   r   r    r!   r$   r%   r   N)	r   Úget_by_course_idr&   r   r   r'   r(   r)   r*   )r   r   r   r+   r,   s        r-   r0   r0   @   sÈ   € ð
Ü7¸Ó;×LÑLÐW`ÐLÐaˆØ:‰:hÓ 7Ó*ÜÜ"×AÑAà!Ø%Ÿz™z¨)Ð5FÓGØññð ô Ü×*Ñ*àØØŸ
™
 6¨2Ó.ññ
ð 	
øô ó 
ÜÜ×=Ñ=Ø"¬s°1«v¸rÑBñ
õ 	
ûð
ús$   ‚AB Á+B Â
C Â$B;Â5C Â;C 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)z Obtiene un registro por id (pk).r   r   é”  r   úRegistro no encontradoNr    r!   r$   r%   r   r   )
r   Ú	get_by_idr&   r   r   ÚHTTP_404_NOT_FOUNDr(   r)   r'   r*   ©r1   r   r   r+   r,   s        r-   r5   r5   a   sÂ   € ð
Ü7¸Ó;×EÑEÀbÓIˆØ:‰: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R                  S5      c  [	        USS5      b  UR
                  US'   [        U5      R                  U5      nUR                  S5      S:X  a,  [        [        R                  SUR                  SS5      SS	.S
9$ UR                  S5      =(       d    SR                  5       =(       d    SnU(       a‰  UR                  S5      =(       d    SR                  5       =(       d1    UR                  S5      =(       d    SR                  5       =(       d    Sn[        U5      nS H  nUR                  UUUS.5        M     UR                  S5      n	[        [        R                  SUR                  SS5      U	b  U	O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)uG   Crea un nuevo registro. school_id del body o de la sesiÃ³n del usuario.Ú
model_dumpr   Nr   r   r   r   zError al guardarr    r!   Ústrategyr   ÚperiodÚcriteria)é   é   é   )Ú	period_idÚapplied_strategiesÚactions_takenr   éÉ   zRegistro creador1   )Úhasattrr9   Údictr&   Úgetattrr   r   Ústorer   r   r'   Ústripr   ÚHTTP_201_CREATEDr)   r*   )r   r   r   Úpayloadr+   Ústrategy_textrB   Ú
impl_classr@   Úcreatedr,   s              r-   rG   rG   ‚   sÐ  € ð*
Ü'.¨t°\×'BÑ'B$—/‘/Ô#ÈÏ	É	ËˆØ;‰;{Ó#Ñ+´¸ÀkÐSWÓ0XÑ0dØ#/×#9Ñ#9ˆGKÑ Ü7¸Ó;×AÑAÀ'ÓJˆØ:‰:hÓ 7Ó*ÜÜ"×AÑAà!Ø%Ÿz™z¨)Ð5GÓHØ ññð ð !Ÿ™ ZÓ0×6°B×=Ñ=Ó?×GÀ4ˆÞØ$Ÿ[™[¨Ó2×8°b×?Ñ?ÓA×tÀgÇkÁkÐR\ÓF]×FcÐac×EjÑEjÓEl×tÐptˆMÜDÀRÓHˆJÛ&	Ø× Ñ Ø!*Ø*7Ø%2ñ"ö ñ 'ð —*‘*˜VÓ$ˆÜÜ×/Ñ/àØ!Ÿ:™: iÐ1BÓCØ#*Ñ#6™¸TÀ6Ç:Á:ÈdÓCSÐ<Tññ
ð 	
øô ó 
ÜÜ×=Ñ=àÜ˜q›6Øññ
õ 	
ûð
ús%   ‚B:G Â=DG Ç
H
Ç$HÇ?H
ÈH
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)zActualiza un registro por id.r9   T)Úexclude_unsetNr   r   r3   r   r4   r    r!   r$   zRegistro actualizador1   r   )rD   r9   rE   Úitemsr   Úupdater&   r   r   r6   r(   r)   r'   r*   )	r1   r   r   r   ÚkÚvrJ   r+   r,   s	            r-   rQ   rQ   ¶   s:  € ð
Ü9@ÀÀ|×9TÑ9T$—/‘/°/Ñ5Ðlp×luÑluÓlw×l}Ñl}Ôlô  [RÒlÑdhÐdeð  DEÓ[_Ð[\Ò[_Ñlò  [RˆÜ7¸Ó;×BÑBÀ2ÓOˆØ:‰: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!   Elimina fÃ­sicamente el registro.r   r   r3   r   r4   Nr    r!   r$   zRegistro eliminador   )
r   Údeleter&   r   r   r6   r(   r)   r'   r*   r7   s        r-   rU   rU   Ý   sÉ   € ð
Ü7¸Ó;×BÑBÀ2ÓFˆØ:‰: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.regular_teacher_diversified_strategy_classr   ÚBapp.backend.classes.differentiated_strategies_implementation_classr   Úsqlalchemy.ormr   Útypingr   Ú&regular_teacher_diversified_strategiesr&   Úintr.   r0   r5   ÚpostrG   ÚputrQ   rU   © ó    r-   Ú<module>re      sV  ðß 5Ó 5Ý *Ý *Ý >÷ñ õ
õõ #Ý á)2Ø4Ø
2Ð	3ñ*Ð &ð (×+Ñ+¨BÓ/á$ TÐ7QÑRÙ$ TÐ7QÑRÙ % dÐ8RÑ SÙ%Ð&=Ó>Ù˜&“/ñ#
Ø˜‰}ð#
à˜‰}ð#
ð ˜‘ð#
ð ð	#
ð
 	ô#
ó 0ð#
ðL (×+Ñ+Ð,DÓEñ &Ð&=Ó>Ù˜&“/ñ
Øð
àð
ð 	ô
ó Fð
ð@ (×+Ñ+¨GÓ4ñ &Ð&=Ó>Ù˜&“/ñ
Øð
àð
ð 	ô
ó 5ð
ð@ (×,Ñ,¨XÓ6ñ &Ð&=Ó>Ù˜&“/ñ0
Ø
0ð0
àð0
ð 	ô0
ó 7ð0
ðf (×+Ñ+¨GÓ4ñ &Ð&=Ó>Ù˜&“/ñ	#
Øð#
à
1ð#
ð ð#
ð 	ô	#
ó 5ð#
ðL (×.Ñ.¨wÓ7ñ &Ð&=Ó>Ù˜&“/ñ!
Øð!
àð!
ð 	ô!
ó 8ñ!
rd   