
    U+i\              
          d dl 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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e       ee      fdedede	fd       Zej1                  d       ee       ee      f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j1                  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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                    | j                   dn| j                   }t        |      j                  || j                  | j                  | j
                  | j                  | j                        }t        |t              rC|j                  d      dk(  r/t        t        j                  d|j                  dd      dd	
      S t        t        j                  dd|d	
      S )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        M/var/www/pie360backend.cl/public_html/app/backend/routes/diagnosis_summary.pyindexr2      s     ii'TYYJ"2&..}}..$($D$D..?? / F &$FJJx$8G$C==!::i9
 	
 &&4@     z/listc                    t        |      j                  dd      }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      dd	
      S t        t        j                  dd|d	
      S )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                    |r|j                   nd}|sf|rd|j                  rXt        |      j                  d|j                        }t	        |t
              r"t        |      dkD  r|d   j                  d      }| j                         }||d<   t        |      j                  |      }t	        |t              rC|j                  d      dk(  r/t        t        j                  d|j                  d	d
      dd      S |j                  dd      }t        |rt        j                  nt        j                  |rdnd|j                  d	|rdnd      |j                  d      |dd      S )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   s>    +7&&DI,*B*B"2..A<C[C[.\lD)c,.?!.C$Q++D1IYY[F#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                    t        |      j                  |       }t        |t              rC|j                  d      dk(  r/t	        t
        j                  d|j                  dd      dd      S t	        t
        j                  d	d
|d      S )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        |      j                  | |j                  d            }t        |t              rC|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 )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                 :   t        |      j                  |       }t        |t              rC|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 )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   