
    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\" SSS9\" \
5      \" \5      4S\\   S\\   S\\   S\\   S\S\4S jj5       r\R-                  S5      \" SSS9\" \
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\R7                  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\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&StoreRegularTeacherDiversifiedStrategy'UpdateRegularTeacherDiversifiedStrategy)&RegularTeacherDiversifiedStrategyClass)Session)Optionalz'/regular_teacher_diversified_strategiesz&Regular Teacher Diversified Strategies)prefixtags Nz-1 o omitir = no filtrar)descriptionu-   1, 2 o 3 — filtrar por pestaña de período	school_id	course_id
subject_id	period_idsession_userdbc           	          [        U5      R                  XX#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)zULista registros. Filtros opcionales por school_id, course_id, subject_id y period_id.)r   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   r   resultes           <app/backend/routes/regular_teacher_diversified_strategies.pyget_listr.      s    
7;?? @ 
 ::h7*"AA!%zz)5FG"JJvr2  **

62.
 	
  
==q6
 	

s$   A)B ,+B 
C"$CCCz/by_course/{course_id}c           	          [        U5      R                  X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)uZ   Obtiene registros del curso; con period_id solo los de ese período (p. ej. pestaña 2do).)r   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+   r,   s         r-   r0   r0   @   s    
7;LL M 
 ::h7*"AA!%zz)5FG  **

62.
 	
  
=="s1vr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   d   s    
7;EEbI::h7*"55!%zz)5MN   **

6*
 	
  
=="s1vt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      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!   r      zRegistro creador1   )hasattrr9   dictr&   getattrr   r   storer   r   r'   HTTP_201_CREATEDr)   r*   )r   r   r   payloadr+   createdr,   s          r-   r>   r>      s:   
'.t\'B'B$//#		;;{#+kSW0X0d#/#9#9GK 7;AA'J::h7*"AA!%zz)5GH   **V$//!::i1BC#*#6T6::dCS<T
 	
  
==q6
 	

s%   B:D =A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)zActualiza un registro por id.r9   T)exclude_unsetNr   r   r3   r   r4   r    r!   r$   zRegistro actualizador1   r   )r;   r9   r<   itemsr   updater&   r   r   r6   r(   r)   r'   r*   )	r1   r   r   r   kvr@   r+   r,   s	            r-   rE   rE      s:   
9@|9T9T$///5lplululwl}l}l  [Rldhde  DE[_[\[_l  [R7;BB2O::h7*"55!%zz)5MN   **!::i1GHvzz$/0
 	
 [R&  
==q6
 	

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-   rI   rI      s    
7;BB2F::h7*"55!%zz)5MN   **!::i1EF
 	
  
==q6
 	

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   sqlalchemy.ormr   typingr   &regular_teacher_diversified_strategiesr&   intr.   r0   r5   postr>   putrE   rI        r-   <module>rX      s   5 5 * * > 
 # )24
2	3* & (++B/$T7QR$T7QR %d8R S$T7fg%&=>&/&
}&
}&
 &
 }	&

 &
 	&
 0&
R (++,DE  %T7fg%&=>&/	 
 
} 
  
 		 
 F 
F (++G4 &&=>&/


 	
 5
@ (,,X6 &&=>&/%

0%
%
 	%
 7%
P (++G4 &&=>&/	#
#

1#
 #
 		#
 5#
L (..w7 &&=>&/!
!
!
 	!
 8!
rW   