
    Qi                        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\" SSS9\" \5      \" \	5      4S\\   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)$z2Router: differentiated_strategies_implementations.    )	APIRouterDependsQuerystatus)JSONResponse)get_db)get_current_active_user)	UserLogin+StoreDifferentiatedStrategiesImplementation,UpdateDifferentiatedStrategiesImplementation)+DifferentiatedStrategiesImplementationClass)Session)Optionalz*/differentiated_strategies_implementationsz)Differentiated Strategies Implementations)prefixtags u   0 = sin paginación)descriptiond   u   Registros por páginaNzFiltrar por acciones realizadasz!Filtrar por estrategias aplicadaspageper_pageactions_takenapplied_strategiessession_userdbc                     [        U5      R                  U =(       d    SU=(       d    SU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)zTLista implementaciones de estrategias diversificadas activas (deleted_date is None).r   r   )r   items_per_pager   r   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   r   resultes           oC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\differentiated_strategies_implementations.pyget_listr3      s    
<R@HH#?s'1	 I 
 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 una implementación por id.r   r     r   Registro no encontradoNr!   r#   r&   r'   r"   r   )	r   r+   r   r   HTTP_404_NOT_FOUNDr-   r.   r,   r/   r4   r   r   r0   r1   s        r2   	get_by_idr:   7   s    
<R@DDRH::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 una implementación (actions_taken, applied_strategies).
model_dumpr   r   r   r   zError al guardarNr!   r#      Creador4   )hasattrr<   r*   r   storer+   r   r   r,   HTTP_201_CREATEDr.   r/   )r"   r   r   payloadr0   r1   s         r2   r@   r@   P   s    
'.t\'B'B$//#		<R@FFwO::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)uS   Actualiza una implementación por id (opcional: actions_taken, applied_strategies).r<   T)exclude_unsetNr   r   r6   r   r7   r!   r#   r&   Actualizador4   r   )r?   r<   r*   itemsr   updater+   r   r   r8   r-   r.   r,   r/   )	r4   r"   r   r   kvrB   r0   r1   s	            r2   rG   rG   j   s'   
9@|9T9T$///5lplululwl}l}l  [Rldhde  DE[_[\[_l  [R<R@GGT::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   r6   r   r7   Nr!   r#   r&   	Eliminador   )
r   deleter+   r   r   r8   r-   r.   r,   r/   r9   s        r2   rL   rL      s    
<R@GGK::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   Bapp.backend.classes.differentiated_strategies_implementation_classr   sqlalchemy.ormr   typingr   )differentiated_strategies_implementationsr+   intr/   r3   r:   postr@   putrG   rL        r2   <module>r\      s   8 5 5 * * > 
 { " ,57
5	6- ) +..r2/DE#C5LM#(;\#](-d@c(d%&=>&/

3-
sm
 C=
 !	

 
 	
 3
@ +..w7 &&=>&/


 	
 8
0 +//9 &&=>&/

5

 	
 :
2 +..w7 &&=>&/	


6
 
 		
 8
4 +11': &&=>&/


 	
 ;
r[   