
    ni              
          S SK JrJrJr  S SKJr  S SKJr  S SK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
/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\S\4S jj5       r\R5                  S5      \" \	5      \" \5      4S\S\S\4S jj5       r\R;                  S5      \" \
5      \" \5      4S\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 \R5                  S5      \" \	5      \" \5      4S\S\4S jj5       r!g)    )	APIRouterDependsstatus)JSONResponse)Session)get_current_active_userget_current_superadmin_user)InspectionApiClient)ProvinceClass)get_db)ProvinceListStoreProvinceUpdateProvince	UserLoginz
/provinces	Provinces)prefixtags/bodysession_userdbc                    U R                   c  SOU R                   n[        U5      R                  U R                  U R                  UU R
                  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$ )Nr   )province_name	region_idpageitems_per_pager   error  messageErrorr   r   datastatus_codecontent   z Provinces retrieved successfully)r   r   get_allr   r   per_page
isinstancedictgetr   r   HTTP_404_NOT_FOUNDHTTP_200_OK)r   r   r   
page_valueresults        NC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routes\provinces.pyindexr1      s     ii'TYYJ2&&((..}}	 ' F &$FJJx$8G$C11!::i9
 	
 &&9
     z/storec                 4   [        U5      R                  U R                  SS9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_unsetr   r     r   zError creating provincer!   r#      zProvince created successfully)	r   storer*   r)   r+   r   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATED)r   r   r   r/   s       r0   r8   r8   0   s     2$$TYYTY%BCF&$FJJx$8G$C==!::i1JK
 	
 ++6
 r2   z
/edit/{id}idc                 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   Province not foundr!   r#   r&   zProvince retrieved successfully)r   r+   r)   r*   r   r   r,   r-   r;   r   r   r/   s       r0   editr?   L   s     2""2&F&$VZZ%8%8FJJx<PT[<[11!::g.]&**YH\2]
 	
 &&8
 r2   z/update/{id}c                 4   [        U5      R                  XR                  SS9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$ )NTr4   r   r   r6   r   zError updating provincer!   r#   r&   zProvince updated successfully)	r   updater*   r)   r+   r   r   r9   r-   )r;   r   r   r   r/   s        r0   rA   rA   h   s     2%%b))$)*GHF&$FJJx$8G$C==!::i1JK
 	
 &&6
 r2   z/delete/{id}c                    [        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!   r#   r&   zProvince deleted successfully)	r   deleter)   r*   r+   r   r   r,   r-   r>   s       r0   rC   rC      s     2%%b)F&$FJJx$8G$C11!::i1EF
 	
 &&6
 r2   z/import_from_inspectionc                    [        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      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[        [        R                  SUUS.S9$ )Ni  zQInspection API not configured (INSPECTION_API_USERNAME / INSPECTION_API_PASSWORD)r!   r#   oki  r   z,Error al obtener provincias desde Inspectionr   r   r6   zError al importar provinciasimportedr   skippedu'   Importación de provincias finalizada: z nuevas/actualizadas, z
 omitidas.r&   )r
   is_configuredr   r   HTTP_503_SERVICE_UNAVAILABLEfetch_provinces_listr+   HTTP_502_BAD_GATEWAYr   import_from_inspectionr)   r*   r9   r-   )r   r   clientremoter/   rF   rG   msgs           r0   rL   rL      sS   
 !"F!!;;n
 	
 ((*F::d33!::i0b4b
 	
 255f=F&$FJJx$8G$C==!::i1OP
 	
 zz*a(HjjA&G3H:=ST[S\\f
gC&&
 r2   z/listc                    [        U5      R                  SS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$ )Nr   )r   r   r   r   r   r   zError retrieving provincesr!   r#   r&   z%Provinces list retrieved successfully)	r   r'   r)   r*   r+   r   r   r,   r-   )r   r   r/   s      r0   list_allrQ      s    
 2&&Aa&@F&$FJJx$8G$C11!::i1MN
 	
 &&>
 r2   N)"fastapir   r   r   fastapi.responsesr   sqlalchemy.ormr   app.backend.auth.auth_userr   r	   )app.backend.classes.inspection_api_clientr
   "app.backend.classes.province_classr   app.backend.db.databaser   app.backend.schemasr   r   r   r   	provincespostr1   r8   r+   intr?   putrA   rC   rL   rQ    r2   r0   <module>r_      s'   . . * " [ I < * V V\>	  &&=>&/
 	 B  &&AB&/
 	 6 | &&=>&/ 	 6 ~ &&AB&/	
  		 8 .! &&AB&/ 	 "6 )*%&AB&//// +/d w%&=>&/ r2   