
    Ni"                     6   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dd       ee
       ee      fdee   dee   dee   dee   dedefd       Zej-                  d       edd       ee
       ee      fd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j7                  d       ee
       ee      fdededefd       Zej;                  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&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           	         	 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)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           b/var/www/pie360backend.cl/public_html/app/backend/routes/regular_teacher_diversified_strategies.pyget_listr.      s    
7;??9W` @ 
 ::h7*"AA!%zz)5FG"JJvr2  **

62.
 	
  
==q6
 	

s$   A0B" 3.B" "	C+'CCCz/by_course/{course_id}c           	         	 t        |      j                  | |      }|j                  d      dk(  r/t        t        j
                  d|j                  d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)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9 M 
 ::h7*"AA!%zz)5FG  **

62.
 	
  
=="s1vrB
 	

s$   AB !.B 	C'C CC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)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'C=CCz/storer   c           	         	 t        | d      r| j                         n| j                         }|j                  d      t	        |dd      |j
                  |d<   t        |      j                  |      }|j                  d      dk(  r/t        t        j                  d|j                  dd      dd	
      S |j                  d      }t        t        j                  d|j                  dd      ||n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)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>      s7   
'.t\'B$//#		;;{#+kSW0X0d#/#9#9GK 7;AA'J::h7*"AA!%zz)5GH   **V$//!::i1BC#*#6T6::dCS<T
 	
  
==q6
 	

s%   B5D 8A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)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@|9T$///5lplululwl}l}l  [Rdhdegh  DE  DQ[\^_[_  [R7;BB2wO::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!   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	'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.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   