
    ci/                        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  S SKJrJrJrJr  S SKJr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\R7                  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\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!g)    )	APIRouterDependsstatus)JSONResponse)InspectionApiClient)get_db)Session)	UserLogin
SchoolListStoreSchoolUpdateSchool)SchoolClass_extract_schools_rows)get_current_active_userz/schoolsSchools)prefixtags/school_item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school_namecustomer_idr   errormessageError zno datazno se encontraron datos   r   r   datastatus_codecontent  z,Complete schools list retrieved successfullyzSchools 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           LC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routes\schools.pyindexr6      s3   !&&.K4D4DJ_$$"++++++	 % F &$FJJx$8G$C

9g61;M31O1O++-UW%)Bm)S"..!,  11(
 	
 AL@P@P@X<^~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   	school_idrol_idr   r     r   zError getting totalsr"   r$   r!   z%Schools totals retrieved successfully)r   r9   r:   r   
get_totalsr*   r+   r,   r   r   HTTP_500_INTERNAL_SERVER_ERRORr/   )r   r   r   r9   r:   r2   s         r5   totalsr>   ;   s    .:,**K*6&&DI$0\  dF_''K]c'dF&$FJJx$8G$C==!::i1GH
 	
 &&>
 r7   z/storec                    U(       a  UR                   OS nU(       d  [        [        R                  SSS S.S9$ U R	                  5       nX4S'   [        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$ )N   Customer ID not found in sessionr"   r$   r   r   r   r;   r   zError creating school   zSchool created successfully)r   r   r   HTTP_400_BAD_REQUESTr+   r   storer*   r,   r=   HTTP_201_CREATED)r   r   r   r   school_inputsr2   s         r5   rD   rD   U   s     /;,**K33=
 	
  $$&M#.- _""=1F&$FJJx$8G$C==!::i1HI
 	
 ++4
 r7   z/editc                    U (       a  U R                   OS nU(       d  [        [        R                  SSS S.S9$ [	        U5      R                  US9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@   rA   r"   r$   r   r   r   r!   z!No school found for this customerzSchool retrieved successfully)	r   r   r   rC   r   r,   r*   r+   r/   )r   r   r   r2   s       r5   editrI      s     /;,**K33=
 	
 _  [ 9F &$VZZ%8%8FJJx<PT[<[**>
 	
 &&6
 r7   z/updatec                    U(       a  UR                   OS nU(       d  [        [        R                  SSS S.S9$ [	        U5      R                  US9n[        U[        5      (       aG  UR                  S5      (       d  UR                  S5      S:X  a  [        [        R                  SS	S S.S9$ UR                  S
0 5      R                  S5      nU R                  5       nX6S'   [	        U5      R                  XV5      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@   rA   r"   r$   rH   r   r   r'   z"School not found for this customerschool_dataidr   r;   r   zError updating schoolr!   zSchool updated successfully)r   r   r   rC   r   r,   r*   r+   r0   updater=   r/   )r   r   r   r   existing_schoolr9   rF   r2   s           r5   rM   rM      sd    /;,**K33=
 	
 ""o))k)BO/4((o.A.A'.J.JoNaNabjNkovNv11?
 	
  ##M26::4@I$$&M#.- _##I=F&$FJJx$8G$C==!::i1HI
 	
 &&4
 r7   z/delete/{id}rL   c                    [        U5      nU(       a  UR                  OS nU(       d  [        [        R                  SSS S.S9$ UR                  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$ [        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@   rA   r"   r$   rH   r   r   r'   r   zSchool not foundr!   zSchool deleted successfully)r   r   r   r   rC   r,   r*   r+   r0   deleter/   )rL   r   r   school_servicer   existingr2   s          r5   rP   rP      st    _N /;,**K33=
 	
 !!k!:H(D!!hll8&<&G11#<<	3EF
 	
 (D!!hll7&;&;11#<<0
 	
 ""2&F&$FJJx$8G$C11!::i1CD
 	
 &&4
 r7   z/import_from_inspectionc                    U (       a  U R                   OS nU(       d  [        [        R                  SSS S.S9$ [	        5       nUR                  5       (       d  [        [        R                  SSS S.S9$ UR                  5       nUR                  S5      (       d4  [        [        R                  SUR                  S	5      =(       d    S
US.S9$ [        U5      R                  [        U5      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R                  SS5      nUR                  SS5      nSU SU S3n[        U[        5      (       a  [!        U5      O/ n	[        [        R"                  SUUUUR                  S/ 5      [%        U	5      U	S S S.S.S9$ )Nr@   rA   r"   r$   i  zQInspection API not configured (INSPECTION_API_USERNAME / INSPECTION_API_PASSWORD)oki  r   z*Error al obtener colegios desde Inspectionr   r   r;   zError al importar colegiosimportedr   skippedu%   Importación de colegios finalizada: z nuevos o actualizados, z omitidos (sin cambios).r!   errors   )rU   rV   rW   remote_row_countremote_preview)r   r   r   rC   r   is_configuredHTTP_503_SERVICE_UNAVAILABLEfetch_schools_listr,   HTTP_502_BAD_GATEWAYr   import_from_inspectionintr*   r+   r=   r   r/   len)
r   r   r   clientremoter2   rU   rV   msg_rowss
             r5   r_   r_     s    /;,**K33=
 	
 !"F!!;;n
 	
 &&(F::d33!::i0`4`
 	
 _33C4DfMF&$FJJx$8G$C==!::i1MN
 	
 zz*a(HjjA&G1(;ST[S\\t
uC-7-E-E!&)2E&&$" **Xr2$'J"')

 r7   N)"fastapir   r   r   fastapi.responsesr   )app.backend.classes.inspection_api_clientr   app.backend.db.databaser   sqlalchemy.ormr	   app.backend.schemasr
   r   r   r    app.backend.classes.school_classr   r   app.backend.auth.auth_userr   schoolspostr6   r>   rD   r,   rI   putrM   rP   r`   r_    r7   r5   <module>rr      s   . . * I * " P P O >


 	c=DE\=]mtu{m| )z ) )cj ) )V 	i%,-D%EU\]cUd  7  2 	h &&=>&/''' 	' 'R 	W#*+B#CSZ[aSb #y # # #J 	Y &&=>&/555 	5 5n 	.56M.N^efl^m :s :) :T[ :  :z 	'(%&=>gV\o@@DK@ )@r7   