
    i-                        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 d dlmZmZmZmZ d dlmZ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fd       Zej/                  d       ee       ee	      fdededefd       Zej7                  d       ee       ee	      f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j/                  d       ee       ee	      fdedefd       Z!y)    )	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                 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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           C/var/www/pie360backend.cl/public_html/app/backend/routes/schools.pyindexr6      s-   !&&.K4D4DJ_$$"++++++	 % F &$FJJx$8G$C

9g61;M31O++-UW%)Bm)S"..!,  11(
 	
 AL@P@P@X<^~G&&
     z/totalsc                    | r| j                   nd }| r| j                  nd }| r| j                  n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 )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_''K9]c'dF&$FJJx$8G$C==!::i1GH
 	
 &&>
 r7   z/storec                    |r|j                   nd }|st        t        j                  ddd d      S | 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 )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#.M- _""=1F&$FJJx$8G$C==!::i1HI
 	
 ++4
 r7   z/editc                    | r| j                   nd }|st        t        j                  ddd d      S 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@   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%8FJJx<PT[<[**>
 	
 &&6
 r7   z/updatec                    |r|j                   nd }|st        t        j                  ddd d      S t	        |      j                  |      }t        |t              rD|j                  d      s|j                  d      dk(  rt        t        j                  dd	d d      S |j                  d
i       j                  d      }| 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 )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      s_    /;,**K33=
 	
 ""o))k)BO/4(o.A.A'.JoNaNabjNkovNv11?
 	
  ##M26::4@I$$&M#.M- _##I}=F&$FJJx$8G$C==!::i1HI
 	
 &&4
 r7   z/delete/{id}rL   c                    t        |      }|r|j                  nd }|st        t        j                  d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              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@   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      sh    _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                    | r| j                   nd }|st        t        j                  ddd d      S t	               }|j                         st        t        j                  ddd d      S |j                         }|j                  d      s2t        t        j                  d|j                  d	      xs d
|d      S t        |      j                  t        |      |      }t        |t              rC|j                  d      dk(  r/t        t        j                  d|j                  d	d      d d      S |j                  dd      }|j                  dd      }d| d| d}t        |t              rt!        |      ng }	t        t        j"                  d||||j                  dg       t%        |	      |	d d dd      S )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!&)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   