use tktax_3p::*;
use tktax_account::*;
use tktax_donations::*;
use tktax_analysis::*;
use tktax_amazon::*;
use tktax_config::*;
use tktax_transaction::*;
use tktax_year::*;
use tktax_transaction_category::*;
type TxCat = MockTransactionCategory;
fn main() -> Result<(),AccountError> {
tracing_subscriber::fmt()
.with_env_filter(EnvFilter::new("info"))
.init();
let donation_hooks = DonationsHooksBuilder::default()
.create_donation_builder_fn(DonationBuilder::new)
.create_amazon_item_map_fn(create_amazon_item_map)
.create_donations_fn(mock_example_donations)
.build()
.unwrap();
let analysis_hooks = AccountAnalysisHooksBuilder::default()
.program_config(ProgramConfig::default())
.create_amazon_biz_expenses_fn(Some(mock_example_amazon_business_expenses))
.create_amazon_med_expenses_fn(Some(mock_example_amazon_med_expenses))
.donations_hooks(Some(donation_hooks))
.build()
.unwrap();
let donation_config = DonationConfigBuilder::default()
.donation_date(NaiveDate::from_ymd(2023,01,01))
.donation_location(DonationLocation::Goodwill { name: "downtown" })
.max_item_age(NaiveDate::from_ymd(2015,01,01))
.build()
.unwrap();
analysis_hooks.run_analysis::<TxCat>(
TrackedYear::Twenty23,
vec![
AccountKind::Credit,
AccountKind::Checking
],
Some(&donation_config)
)?;
Ok(())
}