
    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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ej-                  d       ee       ee      fdede	fd       Zej3                  d       ee       ee      fdede	fd       Z y)    )	APIRouterDependsstatus)JSONResponse)get_db)Session)	UserLoginNationalityListStoreNationalityUpdateNationality)NationalitiesClass)InspectionApiClient)get_current_active_userz/nationalitiesNationalities)prefixtags/nationalitysession_userdbc                 2   | j                   dn| j                   }t        |      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_pager   r   errormessageError zno datazno se encontraron datos   r   r   datastatus_codecontent  z2Complete nationalities list retrieved successfullyz$Nationalities retrieved successfully)r   r   get_allper_pager   
isinstancedictgetstrlowerr   r   HTTP_200_OKHTTP_404_NOT_FOUND)r   r   r   
page_valueresulterror_messagelower_messager   s           I/var/www/pie360backend.cl/public_html/app/backend/routes/nationalities.pyindexr3      s,   !&&.K4D4DJ#++KL`L`ny  oF  oF+  GF&$FJJx$8G$C

9g61;M31O++-UW%)Bm)S"..!,  11(
 	
 GRFVFVF^B  eKG&&
     z/storec                 :   | j                         }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   zError creating nationalityr   r!      z Nationality created successfully)	r(   r   storer'   r)   r   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATED)r   r   r   nationality_inputsr/   s        r2   r8   r8   6   s    $))+#))*<=F&$FJJx$8G$C==!::i1MN
 	
 ++9
 r4   z
/edit/{id}idc                 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   Nationality not foundr   r!   r   z"Nationality retrieved successfully)r   r)   r'   r(   r   r   r-   r,   r<   r   r   r/   s       r2   editr@   N   s    #''+F&$VZZ%8FJJx<PT[<[11!::g.`&**YH_2`
 	
 &&;
 r4   z/update/{id}c                 @   |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 )NT)exclude_unsetr   r   r6   r   zError updating nationalityr   r!   r   z Nationality updated successfully)	r(   r   updater'   r)   r   r   r9   r,   )r<   r   r   r   r;   r/   s         r2   rC   rC   e   s    $)))=#**2/ABF&$FJJx$8G$C==!::i1MN
 	
 &&9
 r4   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        j                  dd	|d      S )
Nr   r   r$   r   r>   r   r!   r   z Nationality deleted successfully)	r   deleter'   r(   r)   r   r   r-   r,   r?   s       r2   rE   rE   }   s    #**2.F&$FJJx$8G$C11!::i1HI
 	
 &&9
 r4   z/import_from_inspectionc                    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              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        j                  d||d      S )uf   Importa catálogo desde Inspection GET listado/nacionalidades (Bearer). Catálogo global, sin colegio.i  zQInspection API not configured (INSPECTION_API_USERNAME / INSPECTION_API_PASSWORD)Nr   r!   oki  r   z0Error al obtener nacionalidades desde Inspectionr   r   r6   z Error al importar nacionalidadesimportedr   skippedu+   Importación de nacionalidades finalizada: z	 nuevas, z# omitidas (duplicadas o sin datos).r   )r   is_configuredr   r   HTTP_503_SERVICE_UNAVAILABLEfetch_nationalities_listr)   HTTP_502_BAD_GATEWAYr   import_from_inspectionr'   r(   r9   r,   )r   r   clientremoter/   rH   rI   msgs           r2   rN   rN      sG    !"F!;;n
 	
 ,,.F::d33!::i0f4f
 	
  #::6BF&$FJJx$8G$C==!::i1ST
 	
 zz*a(HjjA&G7z7)Sv
wC&&
 r4   z/listc                    t        |      j                  dd       }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 retrieving nationalitiesr   r!   r   z)Nationalities list retrieved successfully)	r   r%   r'   r(   r)   r   r   r-   r,   )r   r   r/   s      r2   list_allrS      s    #++4+HF&$FJJx$8G$C11!::i1QR
 	
 &&B
 r4   N)!fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   'app.backend.classes.nationalities_classr   )app.backend.classes.inspection_api_clientr   app.backend.auth.auth_userr   nationalitiespostr3   r8   r)   intr@   putrC   rE   rN   rS    r4   r2   <module>ra      s?   . . * * " _ _ F I >
	
 CBIJaBbry  {A  sB $ $i $ho $ $L HCJKbCcsz  |B  tC ' y ip  . < ,34K,L\cdj\k S 	 RY  !, >"NUVmNn  F  GM  N s !2 ) t{  #. n%.56M.N^efl^m s ) T[  &, -.%&=>&/000 /0f 7'./F'GW^_eWf 9 W  r4   