
    i                        S r SSKJr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JrJr  SSKJr  SSKJr  SS	KJr  \" S
S/S9r\R/                  S5      \" SSS9\" SSS9\" SSS9\" \5      \" \	5      4S\\   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\R9                  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\RA                  S5      \" \5      \" \	5      4S\S\S\4S! jj5       r g)"u(   Router: á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                     [        U5      R                  U =(       d    SU=(       d    SUS9n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      / S	.S
9$ [        [        R                  SSUS	.S
9$ ! [         a/  n[        [        R                  S[        U5      / S	.S
9s SnA$ SnAff = f)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          SC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\support_areas.pyget_listr2      s    
!"%--#?s% . 

 fd##

8(<(G"AA#&6::i3Q[]^  **"tVD
 	
  
=="s1vrB
 	

s$   BB  B   
C*$CCCz/{id}idc                     [        U5      R                  U 5      nUR                  S5      S:X  a,  [        [        R                  SUR                  SS5      SS.S9$ [        [        R
                  S	S
UR                  S5      S.S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f)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$B<6C<Cz/storer!   c           	          [        U S5      (       a  U R                  5       OU R                  5       n[        U5      R	                  U5      nUR                  S5      S:X  a,  [        [        R                  SUR                  SS5      SS.S	9$ [        [        R                  S
UR                  SS5      SUR                  S5      0S.S	9$ ! [         a/  n[        [        R                  S[        U5      SS.S	9s SnA$ SnAff = f)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'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$C?9D?Dc                 J    [        US5      (       a  UR                  SS9O7UR                  5       R                  5        VVs0 s H  u  pEUc  M
  XE_M     snnn[	        U5      R                  X5      nUR                  S5      S:X  a,  [        [        R                  SUR                  SS	5      SS
.S9$ [        [        R                  SUR                  SS5      SU 0S
.S9$ s  snnf ! [         a/  n[        [        R                  S[        U5      SS
.S9s SnA$ SnAff = f)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@|9T9T$///5lplululwl}l}l  [Rldhde  DE[_[\[_l  [R!"%,,R9::h7*"55#&6::iIa3blpq  **"vzz)]/S^bdf]gh
 	
 [R  
=="s1vtD
 	

s=   AC) 	C#C#AC) 5-C) #C) )
D"3$DD"D"c                     [        U5      R                  U 5      nUR                  S5      S:X  a,  [        [        R
                  SUR                  SS5      SS.S9$ [        [        R                  S	UR                  SS
5      SS.S9$ ! [         a/  n[        [        R                  S[        U5      SS.S9s SnA$ SnAff = f)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$B=7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   