
    ܚj                        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lmZ d dlmZ d dlmZ d d	lmZ d
 Zd ZddZddZddZy)    )annotations)confirm_create_budget_account)confirm_create_category)get_budget_data_explorerget_category_analysis_v2)get_monthly_comparison)get_budget_vs_actual_analysis)confirm_budget_transaction)connect_memory)apply_migrationsc                 0    t               } t        |        | S )N)r   r   )conns    *tests/unit/test_budget_ux_foundation_v3.pydbr      s    D-d3D[    c                    t        | dddd      d   }t        | ddd      d   }t        | d	d
d      d   }t        | |d
dd	ddd|dd	       t        | |dddddd|dd	       y )NHaushaltcheckingCHF)nameaccount_typecurrency	entity_idzEssen & Haushaltexpense)r   category_typeLohnincomez
2026-05-01Arbeitgeberz100.00manual)	
account_idtransaction_typetransaction_datedescriptionpayeeamount_originalcurrency_originalcategory_idsource_typez
2026-05-02EinkaufMigros25.00)r   r   r
   )r   accountfoodr   s       r   seedr.      s    +D:Waot2uv  xC  DG"42DW`)abcnoD$TFX+VWXcdFtGQYo{  MS  ^k  @H  _d  u{  LT  &U  VtGQZp|  NW  bj  F  ]b  sw  HP  &Q  Rr   c                H   | d   d   |k(  sJ | d   d   dk(  sJ | d   d   sJ t        | d   t              sJ t        | d   t              sJ t        | d   t              sJ t        | d	   t              sJ t        | d
   t              sJ t        | d   t              sJ y )Nmetaviewr   r   generated_atfilters_appliedtotalsseriesrowswarningserrors)
isinstancedictlist)datar1   s     r   assert_enveloper=      s    <4'''<
#u,,,<'''d,-t444d8nd+++d8nd+++d6lD)))d:&---d8nd+++r   c                     t               } t        |        t        | ddd      }t        |d       |d   d   dk(  sJ |d   d	   d
k(  sJ |d   |d   k(  sJ |d   d   dk(  sJ y )N2026z2026-05r   )yearmonthtypedata_explorerr3   r@   r4   transaction_count   r6   transactionskpisexpense_sum_chfr+   )r   r.   r   r=   )r   r<   s     r   =test_data_explorer_returns_analytics_envelope_and_legacy_keysrI   %   s    4Dd#DvYYWDD/*!"6*f444>-.!333<4////<)*g555r   c                    t               } t        |        t        | dd      }t        | d      }t	        | d      }t        |d       |d   |d   k(  sJ t        |d       |d   |d	   k(  sJ t        |d
       |d   |d   k(  sJ y )Nr?   r   )r@   tx_type)r@   category_analysisr6   
categoriesmonthly_comparisonmonthsbudget_vs_actualbudget_vs_actual_by_category)r   r.   r   r   r	   r=   )r   categorymonthlyrP   s       r   Dtest_category_monthly_and_budget_vs_actual_return_analytics_enveloperT   /   s    4Dd'69MH$T7G4TGH12Fx5555G126?gh////$&89F#'78V'WWWWr   N)r<   r:   r1   strreturnNone)rV   rW   )
__future__r   'jarvis_finance.services.budget_accountsr   )jarvis_finance.services.budget_categoriesr   ,jarvis_finance.services.budget_data_explorerr   r   (jarvis_finance.services.budget_analyticsr   +jarvis_finance.services.budget_analytics_v2r	   +jarvis_finance.services.budget_transactionsr
   jarvis_finance.storage.databaser   !jarvis_finance.storage.migrationsr   r   r.   r=   rI   rT    r   r   <module>rb      s<    " Q M k K U R : >AR	,6Xr   