
    U+i:                        d 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 ddl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dd       edd       edd       ee       ee	      fdee   dee   de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j9                  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defd        ZejA                  d       ee       ee	      fdededefd!       Z y)"u    áreas de apoyo (support_areas).    )	APIRouterDependsQuerystatus)JSONResponse)get_db)get_current_active_user)	UserLoginStoreSupportAreaUpdateSupportArea)SupportAreaClass)Session)Optionalz/support_areaszSupport Areas)prefixtags u   0 = sin paginación)descriptiond   u   Registros por páginaNzFiltrar por nombrepageper_pagesupport_areasession_userdbc                    	 t        |      j                  | xs d|xs d|      }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      g d	
      S t        t        j                  dd|d	
      S # t        $ r2}t        t        j                  dt        |      g d	
      cY d}~S d}~ww xY w)u5   Lista áreas de apoyo activas (deleted_date is None).r   r   )r   items_per_pager   r   error  messageErrorr   r   datastatus_codecontent   OKN)r   get_all
isinstancedictgetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_200_OK	Exceptionstr)r   r   r   r   r   resultes          I/var/www/pie360backend.cl/public_html/app/backend/routes/support_areas.pyget_listr2      s    
!"%--#?s% . 

 fd#

8(<(G"AA#&6::i3Q[]^  **"tVD
 	
  
=="s1vrB
 	

s$   A7B :B 	C"'C	CCz/{id}idc                    	 t        |      j                  |       }|j                  d      dk(  r/t        t        j                  d|j                  dd      dd      S t        t        j
                  d	d
|j                  d      d      S # t        $ r2}t        t        j                  dt        |      dd      cY d}~S d}~ww xY w)u!   Obtiene un área de apoyo por id.r   r     r   Registro no encontradoNr    r"   r%   r&   r!   r   )	r   r*   r   r   HTTP_404_NOT_FOUNDr,   r-   r+   r.   r3   r   r   r/   r0   s        r1   	get_by_idr9   1   s    
!"%))"-::h7*"55#&6::iIa3blpq  **"tVZZ=OP
 	
  
=="s1vtD
 	

s$   AB -B 	C'C=CCz/storer!   c           	         	 t        | d      r| j                         n| j                         }t        |      j	                  |      }|j                  d      dk(  r/t        t        j                  d|j                  dd      dd	      S t        t        j                  d
|j                  dd      d|j                  d      id	      S # t        $ r2}t        t        j                  dt        |      dd	      cY d}~S d}~ww xY w)u   Crea un área de apoyo.
model_dumpr   r   r   r   zError al guardarNr    r"      Creador3   )hasattrr;   r)   r   storer*   r   r   r+   HTTP_201_CREATEDr-   r.   )r!   r   r   payloadr/   r0   s         r1   r?   r?   J   s    
'.t\'B$//#		!"%++G4::h7*"AA#&6::iI[3\fjk  //"vzz)X/NY]_e_i_ijn_oXpq
 	
  
=="s1vtD
 	

s$   BC ?C 	D'D;DDc                 P   	 t        |d      r|j                  d      n4|j                         j                         D ci c]  \  }}|	|| c}}}t	        |      j                  | |      }|j                  d      dk(  r/t        t        j                  d|j                  dd	      dd
      S t        t        j                  d|j                  dd      d| id
      S c c}}w # t        $ r2}t        t        j                  dt        |      dd
      cY d}~S d}~ww xY w)u#   Actualiza un área de apoyo por id.r;   T)exclude_unsetNr   r   r5   r   r6   r    r"   r%   Actualizador3   r   )r>   r;   r)   itemsr   updater*   r   r   r7   r,   r-   r+   r.   )	r3   r!   r   r   kvrA   r/   r0   s	            r1   rF   rF   d   s*   
9@|9T$///5lplululwl}l}l  [Rdhdegh  DE  DQ[\^_[_  [R!"%,,R9::h7*"55#&6::iIa3blpq  **"vzz)]/S^bdf]gh
 	
 [R  
=="s1vtD
 	

s<   ?C* 
C$C$A!C* 30C* $C* *	D%3'D D% D%c                    	 t        |      j                  |       }|j                  d      dk(  r/t        t        j
                  d|j                  dd      dd      S t        t        j                  d	|j                  dd
      dd      S # t        $ r2}t        t        j                  dt        |      dd      cY d}~S d}~ww xY w)u   Borrado lógico (deleted_date).r   r   r5   r   r6   Nr    r"   r%   	Eliminador   )
r   deleter*   r   r   r7   r,   r-   r+   r.   r8   s        r1   rK   rK      s    
!"%,,R0::h7*"55#&6::iIa3blpq  **"vzz)[/Q[_`
 	
  
=="s1vtD
 	

s$   AB .B 	C	'C>C	C	)!__doc__fastapir   r   r   r   fastapi.responsesr   app.backend.db.databaser   app.backend.auth.auth_userr	   app.backend.schemasr
   r   r   &app.backend.classes.support_area_classr   sqlalchemy.ormr   typingr   support_areasr*   intr.   r2   r9   postr?   putrF   rK        r1   <module>r[      s   & 5 5 * * > N N C " 
	 2/DE#C5LM"':N"O%&=>&/

3-
sm
 3-
 	

 	
 
< 7 &&=>&/


 	
 
0 H &&=>&/



 	
 
2 7 &&=>&/	



 
 		
 
4 g &&=>&/


 	
 
rZ   