
    bj                    r    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
 d dlmZmZ ddZddZddZddZdS )    )annotations)
Connection)HTTPException)EquityPosition)data)optional_decimal_textstatus_labelvalueobjectreturnstrc                h    t          | pd                                          }|dk    rdS |dv rdS dS )N etfETF>   cashgeldCashAktie)r   lower)r
   raws     /home/agent/.hermes/worktrees/FinanceManager-sprint3-reconciliation-snapshot-foundation/src/jarvis_finance/services/equity_service.py_asset_class_labelr      sC    
ekr


 
 
"
"C
e||u
v7    rowdict[str, str]c                   t          |                     d          pd                                          }t          |                     d          pd                                          }t          |                     d          p|                     d          pd                                          }t          |                     d          pd                                          }|dv rdS |d	v r-t          j        |                     d
                    dk    rdS d|v s+t          j        |                     d
                    dk    rdS |dk    r|dk    rdS |dv rdS dS )Nprice_statusr   	fx_statusdata_quality_statusvaluation_statusquality_warnings>   fehltmissingmissing_market_pricezPreis fehlt>   r#   r$   
missing_fxmarket_value_chfr   u   FX fehlt für Bewertungcost_basis_missingu   Einstand unvollständigokBewertet>   r$   partialwarning
incomplete)r   getr   dashboard_datad)r   r   r   qualitywarningss        r   _position_statusr3      sj   sww~..4"55;;==LCGGK((.B//5577I#''/00UCGG<N4O4OUSUVV\\^^G377-..4"55;;==HCCC}666>;KCGGTfLgLg;h;hlm;m;m((x''>+;CGGDV<W<W+X+X\]+]+]((t	T 1 1zAAA((:r   connr   list[EquityPosition]c                   g }t          j        |           D ]}|                    dd                                          }|dvr0|                    dd                                          dk    r]|                    d           d|                    d           }|                    d	          }|                    t          ||                    d
d          |                    dd          |                    dd          |                    dd          t          |          t          |                    d                    pd|                    d          p|                    d          pdt          |                    d                    t          j        |          dk    rd nt          |d          t          |                               |S )Nasset_classr   >   r   stockequityinstrument_statusinactive
account_id:instrument_idr'   nametickerisinaccount_namequantity0price_currencycurrencymarket_price_originalr      )position_idr?   r@   rA   accountr7   rC   rF   pricer'   status)
r/   get_positionsr.   r   appendr   r   r   r0   r3   )r4   	positionsr   r7   rI   market_values         r   list_equity_positionsrQ   '   s   &(I+D11 
 
ggmR00668888877&++1133zAA..KK1I1IKKww122'WWVR((wwx,,WWVR((33.{;;.swwz/B/BCCJs!122Ocggj6I6IOR+CGG4K,L,LMM)7)9,)G)G1)L)LRghtvwRxRx',,  	
 	
 	
 	
 r   rI   r   c                    t          fdt          |           D             d           }|t          dd          |S )Nc              3  2   K   | ]}|j         k    |V  d S )N)rI   ).0prI   s     r   	<genexpr>z&get_equity_position.<locals>.<genexpr>D   s0      \\1q}P[?[?[Q?[?[?[?[\\r   i  zEquity position not found)status_codedetail)nextrQ   r   )r4   rI   positions    ` r   get_equity_positionr[   C   sP    \\\\ 5d ; ;\\\^bccH4OPPPPOr   N)r
   r   r   r   )r   r   r   r   )r4   r   r   r5   )r4   r   rI   r   r   r   )
__future__r   sqlite3r   fastapir   $jarvis_finance.api.schemas.positionsr   jarvis_finance.dashboardr   r/   #jarvis_finance.services.api_helpersr   r	   r   r3   rQ   r[    r   r   <module>rc      s    " " " " " "       ! ! ! ! ! ! ? ? ? ? ? ? ; ; ; ; ; ; S S S S S S S S      $   8     r   