
    pWi                     F   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 d dlmZ  eddg	          Z G d
 de          Ze                    d           ee          fde	fd            Ze                    d           ee          fdedede	fd            ZdS )    )Optional)	APIRouterDependsHTTPException)	BaseModel)AsyncSession)get_db)strategy_servicez/api/v1/strategies
strategies)prefixtagsc                   ^    e Zd ZU dZee         ed<   dZee         ed<   dZ	ee
         ed<   dS )StrategyUpdateRequestNenabledweightparams)__name__
__module____qualname__r   r   bool__annotations__r   floatr   dict     =/var/www/html/crypto-bot/backend/app/api/routes/strategies.pyr   r      sN         "GXd^""""FHUO"""!FHTN!!!!!r   r    dbc                 V   K   t          j        |            d{V }dd |D             iS )zList all registered strategies.Nr   c                 6    g | ]}|                                 S r   )to_dict).0ss     r   
<listcomp>z#list_strategies.<locals>.<listcomp>   s     ;;;1199;;;;;r   )r
   get_all_strategies)r   r   s     r   list_strategiesr&      sD       (:2>>>>>>>>J;;
;;;<<r   z/{name}namebodyc                    K   t          j        || |j        |j        |j                   d{V }|t          dd|  d          d|                                iS )z9Update a strategy's enabled state, weight, or parameters.)r'   r   r   r   Ni  z
Strategy 'z' not found)status_codedetailstrategy)r
   update_strategyr   r   r   r   r!   )r'   r(   r   updateds       r   r-   r-      s       %4
{{        G 4R4R4R4RSSSS))**r   N)typingr   fastapir   r   r   pydanticr   sqlalchemy.ext.asyncior   app.databaser	   app.servicesr
   routerr   getr&   putstrr-   r   r   r   <module>r9      sb         5 5 5 5 5 5 5 5 5 5       / / / / / /       ) ) ) ) ) )	.l^	D	D	D" " " " "I " " " B-4WV__ = =l = = = = I wv+ +
+
+ 	+ + + + + +r   