
    .iY              
       
   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	/S
9r\R)                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R)                  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\R7                  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\R1                  S5      \" \5      \" \5      4S\S\	4S jj5       rg)    )	APIRouterDependsstatus)JSONResponse)get_db)Session)	UserLoginStudentGuardianListStoreStudentGuardianUpdateStudentGuardian)StudentGuardianClass)get_current_active_userz/student_guardianszStudent Guardians)prefixtags/guardiansession_userdbc                 R   U R                   c  SOU R                   n[        U5      R                  UU R                  U R                  U R
                  S9n[        U[        5      (       a  UR                  S5      S:X  a}  UR                  SS5      n[        U[        5      (       a  UR                  5       OSnSU;   d  S	U;   a  [        [        R                  S
U/ S.S9$ [        [        R                  SUS S.S9$ U R                   c  SOSn[        [        R                  S
UUS.S9$ )Nr   )pageitems_per_page
student_idnamesr   errormessageError zno datazno se encontraron datos   r   r   datastatus_codecontent  z.Complete guardians list retrieved successfullyz Guardians retrieved successfully)r   r   get_allper_pager   r   
isinstancedictgetstrlowerr   r   HTTP_200_OKHTTP_404_NOT_FOUND)r   r   r   
page_valueresulterror_messagelower_messager   s           WC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\student_guardians.pyindexr3      s,   mm+J!"%--((&&nn	 . F &$FJJx$8G$C

9g61;M31O1O++-UW%)Bm)S"..!,  11(
 	
 CK--BW>]G&&
     z/totalsc                    U (       a  U R                   OS nU (       a  U R                  OS nU (       a  U R                  OS n[        U5      R	                  X#U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$ )N)customer_id	school_idrol_idr   r     r   zError getting totalsr   r!   r   z/Student guardians totals retrieved successfully)r6   r7   r8   r   
get_totalsr'   r(   r)   r   r   HTTP_500_INTERNAL_SERVER_ERRORr,   )r   r   r6   r7   r8   r/   s         r2   totalsr<   :   s    .:,**K*6&&DI$0\  dF!"%00[fl0mF&$FJJx$8G$C==!::i1GH
 	
 &&H
 r4   z/storec                 :   U R                  5       n[        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$ )
Nr   r   r9   r   zError creating guardianr   r!      zGuardian created successfully)	r(   r   storer'   r)   r   r   r;   HTTP_201_CREATED)r   r   r   guardian_inputsr/   s        r2   r?   r?   T   s    mmoO!"%++O<F&$FJJx$8G$C==!::i1JK
 	
 ++6
 r4   z/edit/{student_id}r   c                 &   [        U5      R                  U 5      n[        U[        5      (       aG  UR                  S5      (       d  UR                  S5      S:X  a  [	        [
        R                  SSS S.S9$ [	        [
        R                  SSUS.S9$ )Nr   r   r   z"No guardian found for this studentr   r!   zGuardian retrieved successfully)r   r)   r'   r(   r   r   r,   )r   r   r   r/   s       r2   editrC   l   s    !"%))*5F &$VZZ%8%8FJJx<PT[<[**?
 	
 &&8
 r4   z/update/{id}idc                 8   UR                  SS9n[        U5      R                  X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$ )NT)exclude_unsetr   r   r9   r   zError updating guardianr   r!   r   zGuardian updated successfully)	r(   r   updater'   r)   r   r   r;   r,   )rD   r   r   r   rA   r/   s         r2   rG   rG      s    mm$m7O!"%,,RAF&$FJJx$8G$C==!::i1JK
 	
 &&6
 r4   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S	US.S9$ )
Nr   r   r$   r   zGuardian not foundr   r!   r   zGuardian deleted successfully)	r   deleter'   r(   r)   r   r   r-   r,   )rD   r   r   r/   s       r2   rI   rI      s    !"%,,R0F&$FJJx$8G$C11!::i1EF
 	
 &&6
 r4   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$ )Nr   )r   r   r   r   r$   r   zError retrieving guardiansr   r!   r   z%Guardians list retrieved successfully)	r   r%   r'   r(   r)   r   r   r-   r,   )r   r   r/   s      r2   list_allrK      s    !"%--1T-JF&$FJJx$8G$C11!::i1MN
 	
 &&>
 r4   N)fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   *app.backend.classes.student_guardian_classr   app.backend.auth.auth_userr   student_guardianspostr3   r<   r?   r)   intrC   putrG   rI   rK    r4   r2   <module>rX      s=   . . * * " k k K >
	 
 CJKbCcsz  |B  tC )' )y )ip ) )V 	"%,-D%EU\]cUd  7  #2 !DKLcDdt{  }C  uD ( 	 jq  ". +,4;<S4Tdklrds S 	 Za  -. ~&OVWnOo  @G  HN  @O s 3 9 u|  '. .).56M.N^efl^m s ) T[  *, w'./F'GW^_eWf 9 W   r4   