
    8i              
          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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      \" \5      \" \5      4S\S\S\	4S jj5       r\R1                  S5      \" \5      \" \5      4S\S\	4S jj5       r\R-                  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\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status)JSONResponse)get_db)Session)	UserLoginDiagnosisSummaryListStoreDiagnosisSummaryUpdateDiagnosisSummary)DiagnosisSummaryClass)SchoolClass)get_current_active_userz/diagnosis_summaryzDiagnosis Summary)prefixtags/bodysession_userdbc           	         U R                   c  SOU R                   n[        U5      R                  UU R                  U R                  U R
                  U R                  U R                  S9n[        U[        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      SS	.S
9$ [        [        R                  SSUS	.S
9$ )uP   Lista resúmenes por diagnóstico con filtros opcionales (paginado si page > 0).Nr   )pageitems_per_page	school_idspecial_educational_need_id	course_id
year_indexr   error  messageErrorr   r   datastatus_codecontent   OK)r   r   get_allper_pager   r   r   r   
isinstancedictgetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_200_OK)r   r   r   
page_valueresults        WC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\diagnosis_summary.pyindexr2      s     ii'TYYJ"2&..}}..$($D$D..?? / F &$FJJx$8G$C==!::i9
 	
 &&4@     z/listc                    [        U5      R                  SSS9n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      SS	.S
9$ [        [        R                  SSUS	.S
9$ )u+   Lista todos los resúmenes sin paginación.r   N)r   r   r   r   r   r   r    r!   r#   r&   r'   )	r   r(   r*   r+   r,   r   r   r-   r.   )r   r   r0   s      r1   list_allr5   4   s     #2&..Ad.KF&$FJJx$8G$C==!::i9
 	
 &&4@ r3   z/storec                    U(       a  UR                   OSnU(       ds  U(       al  UR                  (       a[  [        U5      R                  SUR                  S9n[	        U[
        5      (       a#  [        U5      S:  a  US   R                  S5      nU R                  5       nX5S'   [        U5      R                  U5      n[	        U[        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  S	S
5      SS.S9$ UR                  SS5      n[        U(       a  [        R                  O[        R                  U(       a  SOSUR                  S	U(       a  SOS5      UR                  S5      US.S.S9$ )u   Crea o actualiza resumen por diagnóstico (NEE, curso, año). Si existe la misma clave única, update; si no, store. school_id de sesión.Nr   )r   customer_ididr   r   r   r   r   zError al crear/actualizarr!   r#   createdT   r&   CreadoActualizado)r8   r9   )r   r7   r   r(   r*   listlenr,   r+   r   store_or_updater   r   r-   HTTP_201_CREATEDr.   )r   r   r   r   schools_listinputsr0   r9   s           r1   storerC   J   sB    +7&&DI,*B*B"2..A<C[C[.\lD))c,.?!.C$Q++D1IYY[F#;"2&66v>F&$FJJx$8G$C==!::i1LM
 	
 jjD)G/6F++F<N<N$c#zz)XmT!::d+@
 r3   z
/edit/{id}r8   c                    [        U5      R                  U 5      n[        U[        5      (       aA  UR                  S5      S:X  a,  [	        [
        R                  SUR                  SS5      SS.S9$ [	        [
        R                  S	S
US.S9$ )zObtiene un resumen por id.r   r     r   No encontradoNr!   r#   r&   r'   )r   r,   r*   r+   r   r   HTTP_404_NOT_FOUNDr.   r8   r   r   r0   s       r1   editrI   m   s     #2&**2.F&$FJJx$8G$C11!::iA
 	
 &&4@ r3   z/update/{id}c                 T   [        U5      R                  XR                  SS95      n[        U[        5      (       aA  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$ )zActualiza un resumen por id.T)exclude_unsetr   r   r   r   zError al actualizarNr!   r#   r&   r<   )	r   updater+   r*   r,   r   r   r-   r.   )r8   r   r   r   r0   s        r1   rL   rL      s     #2&--b))$)2OPF&$FJJx$8G$C==!::i1FG
 	
 &&6::i+OY]^ r3   z/delete/{id}c                 :   [        U5      R                  U 5      n[        U[        5      (       aA  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$ )zElimina un resumen por id.r   r   rE   r   rF   Nr!   r#   r&   	Eliminado)	r   deleter*   r+   r,   r   r   rG   r.   rH   s       r1   rO   rO      s     #2&--b1F&$FJJx$8G$C11!::iA
 	
 &&6::i+MW[\ r3   N) fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   +app.backend.classes.diagnosis_summary_classr    app.backend.classes.school_classr   app.backend.auth.auth_userr   diagnosis_summarypostr2   r,   r5   rC   intrI   putrL   rO    r3   r1   <module>r]      s   . . * * "  N 8 >
	   &&=>&/
 	 < w%&=>&/  * ! &&=>&/
 	 "D |$ &&=>&/ 	 %, ~& &&=>&/	
   		 '. .) &&=>&/ 	 *r3   