
    U+i              
       t   d Z 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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)zSRegistro de acciones del profesor - Actividades (varias por course_id, subject_id).    )	APIRouterDependsQuerystatus)JSONResponse)get_db)get_current_active_user)	UserLogin StoreCourseTeacherRecordActivity!UpdateCourseTeacherRecordActivity) CourseTeacherRecordActivityClass)Session)Optionalz!/course_teacher_record_activitiesz Course Teacher Record Activities)prefixtagsz/by_course/{course_id}Nz'-1 o omitir = no filtrar por asignatura)description	course_id
subject_idsession_userdbc           	         	 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)zDLista actividades del curso; opcionalmente filtradas por subject_id.)r   r   r   error  messageErrorr   r   datastatus_codecontent   OKr   N)	r   get_by_course_idgetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_200_OK	Exceptionstr)r   r   r   r   resultes         \/var/www/pie360backend.cl/public_html/app/backend/routes/course_teacher_record_activities.pyr#   r#      s    
1"5FFQZgqFr::h7*"AA#&6::i3Q[]^  **"tVZZPR=ST
 	
  
=="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 una actividad 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+   r0   r0   0   s    
1"5??C::h7*"55#&6::iIa3blpq  **"tVZZ=OP
 	
  
=="s1vtD
 	

s$   AB -B 	C'C=CCz/storer   c                 Z   	 t        | d      r| j                         n| j                         }t        |      j	                  |      }|j                  d      dk(  r/t        t        j                  d|j                  dd      dd	      S |j                  d
      |j                  d
      nd|j                  d      i}t        t        j                  d|j                  dd      |d	      S # t        $ r2}t        t        j                  dt        |      dd	      cY d}~S d}~ww xY w)z`Crea una actividad (course_id, subject_id, date, pedagogical_hours, teacher_names, description).
model_dumpr   r   r   r   zError al guardarNr   r   r   r,      zActividad creada)hasattrr4   dictr   storer$   r   r   r%   HTTP_201_CREATEDr'   r(   )r   r   r   payloadr)   data_outr*   s          r+   r8   r8   I   s   
'.t\'B$//#		1"5;;GD::h7*"AA#&6::iI[3\fjk  *0F);)G6::f%dTZT^T^_cTdMe//"vzz)EW/Xbjk
 	
  
=="s1vtD
 	

s%   BC/ A#C/ /	D*8'D%D*%D*c                 j   	 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      |j                  d      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 una actividad por id.r4   T)exclude_unsetNr   r   r.   r   r/   r   r   r!   r"   r   r   )r6   r4   r7   itemsr   updater$   r   r   r1   r&   r'   r%   r(   )	r,   r   r   r   kvr:   r)   r*   s	            r+   r?   r?   d   s0   
9@|9T$///5lplululwl}l}l  [Rdhdegh  DE  DQ[\^_[_  [R1"5<<RI::h7*"55#&6::iIa3blpq  **"vzz)T/JTZT^T^_eTfg
 	
 [R  
=="s1vtD
 	

s<   ?C7 
C1C1A!C7 3=C7 1C7 7	D2 'D-'D2-D2c                    	 t        |      j                  |       }|j                  d      dk(  r.t        t        j
                  d|j                  dd      d      S t        t        j                  d|j                  dd	      d      S # t        $ r1}t        t        j                  d
t        |      d      cY d}~S d}~ww xY w)zElimina una actividad por id.r   r   r.   r   r/   )r   r   r   r!   zRegistro eliminador   N)
r   deleter$   r   r   r1   r&   r'   r%   r(   r2   s        r+   rC   rC      s    
1"5<<R@::h7*"55#&6::iIa3bc  **"vzz)EY/Z[
 	
  
=="s1v6
 	

s$   AB -B 	C&C;CC) __doc__fastapir   r   r   r   fastapi.responsesr   app.backend.db.databaser   app.backend.auth.auth_userr	   app.backend.schemasr
   r   r   8app.backend.classes.course_teacher_record_activity_classr   sqlalchemy.ormr   typingr    course_teacher_record_activitiesr$   intr#   r0   postr8   putr?   rC        r+   <module>rS      s   Y 5 5 * * > 
 f " #,.
,	-$   "%%&>? !&d8a b%&=>&/	


 
 		
 @
2 "%%g. &&=>&/


 	
 /
0 "&&x0 &&=>&/

*

 	
 1
4 "%%g. &&=>&/	


+
 
 		
 /
4 "((1 &&=>&/


 	
 2
rR   