diff options
| author | Joe Carstairs <me@joeac.net> | 2024-11-25 08:21:29 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2024-11-25 13:05:10 +0000 |
| commit | 5bd223ee9c6853502d509627678f696c6ea5fcdc (patch) | |
| tree | 0bb22e02e4c4dd359bbadef597d207556698d9e2 /rust/actualbudget_to_schist_transformer/src/schist_state.rs | |
| parent | 06770a965f75416c22ef7115004a250388cebcbf (diff) | |
Rename AB transformer
Diffstat (limited to 'rust/actualbudget_to_schist_transformer/src/schist_state.rs')
| -rw-r--r-- | rust/actualbudget_to_schist_transformer/src/schist_state.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/rust/actualbudget_to_schist_transformer/src/schist_state.rs b/rust/actualbudget_to_schist_transformer/src/schist_state.rs new file mode 100644 index 0000000..92c97b3 --- /dev/null +++ b/rust/actualbudget_to_schist_transformer/src/schist_state.rs @@ -0,0 +1,32 @@ +use anyhow::Result; +use diesel::SqliteConnection; +use schist_models::{ + account::Account, + budget_drip::BudgetDrip, + category::Category, + category_transfer::CategoryTransfer, + datetime_utc::DatetimeUtc, + transaction::Transaction, + transaction_categorisation::TransactionCategorisation, +}; + +pub struct SchistState { + pub first_transaction_date: DatetimeUtc, + pub accounts: Vec<Account>, + pub categories: Vec<Category>, + pub budget_drips: Vec<BudgetDrip>, + pub transactions: Vec<Transaction>, + pub transaction_categorisations: Vec<TransactionCategorisation>, + pub category_transfers: Vec<CategoryTransfer>, +} + +pub fn export_schist_state(schist_state: &SchistState, schist_connection: &mut SqliteConnection) -> Result<()> { + schist_queries::clear::clear(schist_connection)?; + schist_queries::accounts::insert_accounts(&schist_state.accounts, schist_connection)?; + schist_queries::categories::insert_categories(&schist_state.categories, schist_connection)?; + schist_queries::budget_drips::insert_budget_drips(&schist_state.budget_drips, schist_connection)?; + schist_queries::transactions::insert_transactions(&schist_state.transactions, schist_connection)?; + schist_queries::transaction_categorisations::insert_transaction_categorisations(&schist_state.transaction_categorisations, schist_connection)?; + schist_queries::category_transfers::insert_category_transfers(&schist_state.category_transfers, schist_connection)?; + Ok(()) +} |
