
    6iI&              
          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	KJrJr  \" S
S/S9r\R3                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R3                  S5      \" \5      \" \5      4S\S\	4S jj5       r\R3                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R;                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\RA                  S5      \" \5      \" \5      4S\S\S\S\	4S jj5       r!\RE                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r"g)    )	APIRouterDependsstatus)JSONResponse)get_db)Session)	UserLoginStudentListStoreStudentUpdateStudent)StudentClass)get_current_active_user)SchoolClass)ProfessionalModelProfessionalTeachingCourseModelz	/studentsStudents)prefixtags/student_itemsession_userdbc           
         U R                   c  SOU R                   nU(       a  UR                  OS nU(       a  UR                  OS nU(       aX  U(       dQ  [        U5      R	                  SUS9n[        U[        5      (       a#  [        U5      S:  a  US   R                  S5      n[        U5      R	                  UU R                  UU R                  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customer_idid)r   items_per_page	school_idrutnamesidentification_number	course_idr   errormessageError zno datazno se encontraron datos   r   r%   datastatus_codecontent  z-Complete students list retrieved successfullyzStudents retrieved successfully)r   r   r   r   get_all
isinstancelistlengetr   per_pager    r!   r"   r#   dictstrlowerr   r   HTTP_200_OKHTTP_404_NOT_FOUND)r   r   r   
page_valuer   r   schools_listresulterror_messagelower_messager%   s              NC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\students.pyindexr@      s   "''/\5F5FJ /;,**K*6&&DI9"2..A;.OlD))c,.?!.C$Q++D1I"%%#,,  *@@(( & F &$FJJx$8G$C

9g61;M31O1O++-UW%)Bm)S"..!,  11(
 	
 BNARARAZ=  aB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)r   r   rol_idr   r$     r%   zError getting totalsr)   r+   r(   z&Students totals retrieved successfully)r   r   rC   r   
get_totalsr0   r5   r3   r   r   HTTP_500_INTERNAL_SERVER_ERRORr8   )r   r   r   r   rC   r<   s         r?   totalsrG   I   s    .:,**K*6&&DI$0\  dF"(([^d(eF&$FJJx$8G$C==!::i1GH
 	
 &&?
 rA   z/storec                     U R                  5       nU(       a  UR                  OS nS nU(       aQ  [        U5      R                  SUS9n[	        U[
        5      (       a#  [        U5      S:  a  US   R                  S5      nXSS'   [        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   r   r$   rD   r%   zError creating studentr)   r+      zStudent created successfully)r5   r   r   r/   r0   r1   r2   r3   r   storer   r   rF   HTTP_201_CREATED)r   r   r   student_inputsr   r   r;   r<   s           r?   rJ   rJ   c   s    "&&(N /;,**KI"2..A;.OlD))c,.?!.C$Q++D1I #,;"##N3F&$FJJx$8G$C==!::i1IJ
 	
 ++5
 rA   z
/edit/{id}r   c                 v   [        U5      R                  U 5      n[        U[        5      (       ao  UR                  S5      (       d  UR                  S5      S:X  aD  [	        [
        R                  SUR                  S5      =(       d    UR                  SS5      S S.S9$ [	        [
        R                  SS	US.S9$ )
Nr$   r   r.   r%   Student not foundr)   r+   r(   zStudent retrieved successfully)r   r3   r0   r5   r   r   r9   r8   )r   r   r   r<   s       r?   editrO      s    "!!"%F&$VZZ%8%8FJJx<PT[<[11!::g.\&**YH[2\
 	
 &&7
 rA   z/update/{id}c                    UR                  SS9n0 n0 n0 n/ SQn/ SQn	UR                  5        H'  u  pX;   a  XU
'   M  X;   a  XU
'   M  U
S:X  d  M#  XS'   M)     U(       a  XeS'   U(       a  XuS'   [        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_unset)r!   father_lastnamemother_lastnamesocial_name	gender_id	born_dateemailr"   phoneaddress	region_id
commune_idnationalitynative_languageproficiency_native_language_idlanguage_usually_usedproficiency_language_used_id)special_educational_need_idr#   sip_admission_yearr"   personal_dataacademic_infor   r$   rD   r%   zError updating studentr)   r+   r(   zStudent updated successfully)
r5   itemsr   updater0   r3   r   r   rF   r8   )r   r   r   r   rL   mapped_inputsrc   rd   personal_data_fieldsacademic_fields	field_keyvaluer<   s                r?   rf   rf      s    "&&T&:N MMMT YO*002	,',)$)',)$115:12 3 )6o& )6o&"$$R7F&$FJJx$8G$C==!::i1IJ
 	
 &&5
 rA   z/delete/{id}c                    [        U5      nU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[        5      (       aA  UR                  S5      (       a+  [	        [
        R                  SUR                  S5      S S.S9$ U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%   rN   r)   r+   r(   zStudent deleted successfully)	r   r3   r0   r5   r   r   r9   deleter8   )r   r   r   student_serviceexistingr<   s         r?   rm   rm      s8   "2&O""2&H(D!!hll8&<&G11#<<	3FG
 	
 (D!!hll7&;&;11#<<0
 	
 ##B'F&$FJJx$8G$C11!::i1DE
 	
 &&5
 rA   N)#fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   !app.backend.classes.student_classr   app.backend.auth.auth_userr    app.backend.classes.school_classr   app.backend.db.modelsr   r   studentspostr@   rG   rJ   r3   intrO   putrf   rm    rA   r?   <module>r~      s   . . * * " S S : > 8 T

 
s?FG^?_ovw}o~ 6 69 6el 6 6p 
y%,-D%EU\]cUd  7  2 
x &&=>&/%%% 	% %N 
l,34K,L\cdj\k S 	 RY  , 
n &&=>&/	=== = 		= =~ 
 .56M.N^efl^m +s +) +T[ + !+rA   