
    gj                    `    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lmZ ddddZdS )    )annotations)Decimal)
Connection)record_audit_event)%_transaction_instruments_for_currencyupsert_fx_rate)resolve_instrument_alertssystem)
created_byconnr   base_currencystrquote_currency	rate_daterater   noter   returnc               r   |                                 st          d          t          | ||||ddd          }t          | ddd||                                |                                |dd|d	|
	  	         t          | |          D ]}t          | |g d           |                                  |S )Nz"manual FX override requires a notemanual_overridemanual)r   r   r   r   provider	rate_typequality_statusfx_overridesmanual_fx_overridefx_rate)r   r   r   r   T)sourceactionentity_type	entity_id
new_valuesuser_text_note	confirmedr   )
missing_fxhistorical_fx_unavailablemanual_override_required)instrument_idrule_ids)strip
ValueErrorr   r   upperr   r	   commit)	r   r   r   r   r   r   r   rate_idinst_ids	            y/home/agent/.hermes/worktrees/FinanceManager-sprint14-twr-xirr-performance-attribution/src/jarvis_finance/fx/overrides.pyset_manual_fx_overrider0      s    ::<< ?=>>>#%"	 	 	G #%2%8%8%:%:nNbNbNdNds|  K\  ]  ]
 
 
 
 9}MM Q Q!$g  IP  IP  IP  	Q  	Q  	Q  	Q  	QKKMMMN    N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )
__future__r   decimalr   sqlite3r   jarvis_finance.audit.logr   jarvis_finance.fx.ratesr   r   &jarvis_finance.market_data.instrumentsr	   r0    r1   r/   <module>r9      s    " " " " " "             7 7 7 7 7 7 Y Y Y Y Y Y Y Y L L L L L L $ $ $ $ $ $ $ $r1   