
    !iK              
          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  edd	g
      Zej)                  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	fd       Zej/                  d       ee       ee      fdedede	fd       Zej5                  d       ee       ee      fdededede	fd       Zej9                  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	fd       Zy)    )	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                 H   | j                   dn| j                   }t        |      j                  || j                  | j                  | j
                        }t        |t              r|j                  d      dk(  rz|j                  dd      }t        |t              r|j                         nd}d|v sd	|v rt        t        j                  d
|g d      S t        t        j                  d|d d      S | j                   dnd}t        t        j                  d
||d      S )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           cC:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\routers\student_guardians.pyindexr3      s&   mm+J!"%--((&&nn	 . F &$FJJx$8G$C

9g61;M31O++-UW%)Bm)S"..!,  11(
 	
 CK--BW>]G&&
     z/storec                 :   | j                         }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 )
Nr   r     r   zError creating guardianr   r!      zGuardian created successfully)	r(   r   storer'   r)   r   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATED)r   r   r   guardian_inputsr/   s        r2   r8   r8   :   s    mmoO!"%++O<F&$FJJx$8G$C==!::i1JK
 	
 ++6
 r4   z/edit/{student_id}r   c                    t        |      j                  |       }t        |t              rD|j                  d      s|j                  d      dk(  rt	        t
        j                  ddd d      S t	        t
        j                  dd|d      S )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   editr=   R   s    !"%))*5F &$VZZ%8FJJx<PT[<[**?
 	
 &&8
 r4   z/update/{id}idc                 @   |j                  d      }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 )NT)exclude_unsetr   r   r6   r   zError updating guardianr   r!   r   zGuardian updated successfully)	r(   r   updater'   r)   r   r   r9   r,   )r>   r   r   r   r;   r/   s         r2   rA   rA   j   s    mm$m7O!"%,,RAF&$FJJx$8G$C==!::i1JK
 	
 &&6
 r4   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d	|d      S )
Nr   r   r$   r   zGuardian not foundr   r!   r   zGuardian deleted successfully)	r   deleter'   r(   r)   r   r   r-   r,   )r>   r   r   r/   s       r2   rC   rC      s    !"%,,R0F&$FJJx$8G$C11!::i1EF
 	
 &&6
 r4   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 )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_allrE      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   r8   r)   intr=   putrA   rC   rE    r4   r2   <module>rR      s   . . * * " k k K >
	 
 CJKbCcsz  |B  tC )' )y )ip ) )V !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   