
    bAj                       d 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 ddlmZmZ  ee      Z e       Zi dd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,Zd1d-Zd2d.Zd3d4d/Zy0)5z9Apply symbol scanner rotation to bot config and database.    )annotations)Session)get_settings)
get_logger)	BotConfigPositionPositionStatusSymbol)
ScanResultsymbol_scanner_serviceBTCUSDT)BTCUSDTETHUSDT)ETHr   SOLUSDT)SOLr   BNBUSDT)BNBr   XRPUSDT)XRPr   DOGEUSDT)DOGEr   NEARUSDT)NEARr   ADAUSDT)ADAr   SUIUSDT)SUIr   AAVEUSDT)AAVEr   AVAXUSDT)AVAXr   LINKUSDT)LINKr   WLDUSDT)WLDr   TRXUSDT)TRXr   ENSUSDT)ENSr   ENAUSDT)ENAr   ARBUSDT)ARBr   )PEPEr   )TONr   )PEPEUSDTTONUSDTc                .   |D ]  }| j                  t              j                  t        j                  |k(        j	                         }|rIt
        j                  ||j                  dd      df      \  }}| j                  t        |||              y )Nr    )symbol
base_assetquote_asset)	queryr
   filterr6   firstSYMBOL_ASSETSgetreplaceadd)sessionsymbolssym_nameexistingbasequotes         Kc:\xampp\htdocs\tradingbinance\backend\app\services\symbol_scanner_apply.py_ensure_symbols_existrG   &   s{    ==(//0IJPPR#''83C3CFB3OQW2XYeF(tOP     c                j   | j                  t        j                        j                  t        t        j
                  t        j                  k(        j                  t        j                  t        j                  k(        j                         j                         }|D cg c]  }|d   	 c}S c c}w )Nr   )r9   r
   r6   joinr   	symbol_ididr:   statusr	   OPENdistinctall)r@   rowsrows      rF   _get_pinned_symbolsrS   /   sw    fmm$	h**fii7	8	>#6#66	7		 	 ##dsCFd###s   !B0c           	     h  K   | j                  t              j                         }|r!|j                  rt	        |j                        nt	        t
        j                        }t        |       }t        j                  ||       d {   }|s|S |j                  s|rt        | |j                         |j                  |_        t        |j                  xs i       }|j                  |j                  |j                   |j"                  |j                  |j$                  |j&                  |j                  d|d<   ||_        | j)                          t*        j-                  d|j                  |j                   |j"                         |S t*        j-                  d|j                         |S 7 (w)N)pinned_symbolsprevious_symbols)
scanned_atcore_symbolsrotation_picksrU   active_symbolsrV   
candidateschangedsymbol_scannersymbol_scan_applied)activerotationpinnedsymbol_scan_unchanged)r_   )r9   r   r;   rZ   listsettingsdefault_symbolsrS   r   scanr\   rG   dictstrategy_flagsrW   rX   rY   rU   rV   r[   commitloggerinfo)r@   forceconfigpreviousra   resultflagss          rF   run_symbol_scanrq   :   sr    ]]9%++-F.49N9NtF))*TXYaYqYqTrH )F)..! F
 ~~gv'<'<= & 5 5V**0b1 ++"//$33$33$33 & 7 7 ++~~	#
 !&!((**((	 	 	
 M 	+F4I4IJMCs   BF2F/D(F2N)r@   r   rA   	list[str]returnNone)r@   r   rs   rr   )F)r@   r   rl   boolrs   r   )__doc__
__future__r   sqlalchemy.ormr   app.core.configr   app.core.loggingr   
app.modelsr   r   r	   r
   #app.services.symbol_scanner_servicer   r   __name__rj   rd   r<   rG   rS   rq    rH   rF   <module>r      s   ? " " ( ' B B R	H	>  	
                  !" #$ !'.Q$&rH   