
    sF"i$"              
       T   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j-                  d       ee       ee      fdedede	fd       Zej3                  d       ee       ee      fdedede	fd       Zej9                  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StudentListStoreStudentUpdateStudent)StudentClass)get_current_active_user)SchoolClassz	/studentsStudents)prefixtags/student_itemsession_userdbc                 $   | j                   dn| j                   }|r|j                  nd }d }|rNt        |      j                  d|      }t	        |t
              r"t        |      dkD  r|d   j                  d      }t        |      j                  || 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customer_idid)r   items_per_page	school_idrutnamesidentification_numberr   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   get_all
isinstancelistlengetr   per_pager   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              ZC:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\routers\students.pyindexr=      s   "''/\5F5FJ /;,**KI"2..A;.OlD)c,.?!.C$Q++D1I"%%#,,  *@@ & F &$FJJx$8G$C

9g61;M31O++-UW%)Bm)S"..!,  11(
 	
 BNARARAZ=  aBG&&
     z/storec                    | j                         }|r|j                  nd }d }|rNt        |      j                  d|      }t	        |t
              r"t        |      dkD  r|d   j                  d      }||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 )Nr   r   r   r   r   r!     r"   zError creating studentr&   r(      zStudent created successfully)r2   r   r   r,   r-   r.   r/   r0   r   storer   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATED)r   r   r   student_inputsr   r   r8   r9   s           r<   rB   rB   F   s     "&&(N /;,**KI"2..A;.OlD)c,.?!.C$Q++D1I #,N;"##N3F&$FJJx$8G$C==!::i1IJ
 	
 ++5
 r>   z
/edit/{id}r   c                 b   t        |      j                  |       }t        |t              rg|j                  d      s|j                  d      dk(  rBt	        t
        j                  d|j                  d      xs |j                  dd      d d      S t	        t
        j                  dd	|d      S )
Nr!   r   r+   r"   Student not foundr&   r(   r%   zStudent retrieved successfully)r   r0   r-   r2   r   r   r6   r5   )r   r   r   r9   s       r<   editrH   n   s    "!!"%F&$VZZ%8FJJx<PT[<[11!::g.\&**YH[2\
 	
 &&7
 r>   z/update/{id}c                    |j                  d      }t        d|        i }i }i }g d}g d}	|j                         D ]$  \  }
}|
|v r|||
<   |
|	v r|||
<   |
dk(  s ||d<   & |r||d<   |r||d<   t        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_unsetz&[DEBUG] Datos recibidos del frontend: )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_id	course_idsip_admission_yearr    personal_dataacademic_infoz#[DEBUG] Datos mapeados para la BD: r   r!   r@   r"   zError updating studentr&   r(   r%   zStudent updated successfully)r2   printitemsr   updater-   r0   r   r   rC   r5   )r   r   r   r   rE   mapped_inputsr]   r^   personal_data_fieldsacademic_fields	field_keyvaluer9   s                r<   ra   ra      sU    "&&T&:N	2>2B
CD MMMT YO*002 	;	5,,',M)$/)',M)$115:M12	; )6o& )6o&	/
?@"$$R7F&$FJJx$8G$C==!::i1IJ
 	
 &&5
 r>   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              r?|j                  d      r.t	        t
        j                  d|j                  d      d d      S |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"   rG   r&   r(   r%   zStudent deleted successfully)	r   r0   r-   r2   r   r   r6   deleter5   )r   r   r   student_serviceexistingr9   s         r<   rh   rh      s,   "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
 r>   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   studentspostr=   rB   r0   intrH   putra   rh    r>   r<   <module>rx      s   . . * * " S S : > 8

 
s?FG^?_ovw}o~ 4 49 4el 4 4l 
x &&=>&/%%% 	% %N 
l,34K,L\cdj\k S 	 RY  , 
n &&=>&/	AAA A 		A AF 
 .56M.N^efl^m +s +) +T[ + !+r>   