o
    ̿Si                     @  s.  d dl mZ d dlmZmZ d dl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 e Zejdd	d
edddddeejee
fd#ddZejddd
edddddeejee
fd#ddZejddd
eejee
fddZejddd
edeejee
fd$d d!Zd"S )%    )annotations)	APIRouterDepends)Body)Query)database)get_current_userdetails)%get_materialized_top_signals_for_userget_top_signals_serviceget_user_alert_settingsupdate_user_alert_settingsz/alertsz,Alerts & Signals (Top Signals only, DB-only))summary
      2   zMax top signals to return)geledescriptionlimitintc                   s   t ||| d}t|dpi dpddkrt||| d}d|d|dp*i dddddd|dp9g g g g ddS )	zReturn Top Signals only.

    IMPORTANT:
    - DB-only (no Zerodha, no GPT)
    - Universe:
      - Normal user: portfolio only
      - Super admin (role==1): portfolio + ET movers

    Response shape matches existing Alerts page expectations.
    current_userr   countstop_signalsr   oksource)r   
monitoring	triggeredclosed)statusr   r   datar	   r   getr
   r   dbr   top r&   </var/www/html/Trade-python/app/v1/routers/platform/alerts.pyget_alerts_top_signals   s"    r(   z/alerts/top-signalszTop Signals only (DB-only)c                   sB   t ||| d}t|dpi dpddkrt||| d}|S )Nr   r   r   r   r!   r#   r&   r&   r'   get_top_signals?   s
    r)   z/alerts/settingsz!Get current user's alert settingsc                   s&   t |pi d}dt| |ddS )N_idr   )user_idr   settings)strr"   r   )r$   r   r+   r&   r&   r'   get_alert_settingsK   s   r/   z$Update current user's alert settings.payloaddictc                   sR   t |pi d}t| tr| dnd }t||t|tr |ni d}d|dS )Nr*   r-   )r+   r-   r   r,   )r.   r"   
isinstancer1   r   )r0   r$   r   r+   r-   updatedr&   r&   r'   put_alert_settingsT   s
   
r4   N)r   r   )r0   r1   )
__future__r   fastapir   r   r   r   app.dbr   app.v1.dependencies.authr   app.v1.services.alertsr	   r
   r   r   routerr"   get_mongo_dbr(   r)   r/   putr4   r&   r&   r&   r'   <module>   s6    *