use actualbudget_models::{actualbudget_account::ActualbudgetAccount, actualbudget_category::ActualbudgetCategory, actualbudget_date::ActualbudgetDate, actualbudget_transaction::ActualbudgetTransaction, actualbudget_zero_budget::ActualbudgetZeroBudget}; use actualbudget_queries::{actualbudget_accounts::{get_all_actualbudget_accounts, get_category_transfers_account}, actualbudget_categories::get_all_actualbudget_categories, actualbudget_transactions::{get_all_actualbudget_transactions, get_first_actualbudget_transaction_date}, actualbudget_zero_budgets::get_all_actualbudget_zero_budgets}; use anyhow::Result; use diesel::SqliteConnection; pub struct ActualbudgetState { pub actualbudget_first_transaction_date: ActualbudgetDate, pub actualbudget_accounts: Vec, pub actualbudget_categories: Vec, pub actualbudget_zero_budgets: Vec, pub actualbudget_category_transfers_account: Option, pub actualbudget_transactions: Vec, } pub fn read_actualbudget_state(actualbudget_connection: &mut SqliteConnection) -> Result { Ok(ActualbudgetState { actualbudget_first_transaction_date: get_first_actualbudget_transaction_date(actualbudget_connection)?, actualbudget_accounts: get_all_actualbudget_accounts(actualbudget_connection)?, actualbudget_categories: get_all_actualbudget_categories(actualbudget_connection)?, actualbudget_zero_budgets: get_all_actualbudget_zero_budgets(actualbudget_connection)?, actualbudget_category_transfers_account: get_category_transfers_account(actualbudget_connection)?, actualbudget_transactions: get_all_actualbudget_transactions(actualbudget_connection)?, }) }