use anyhow::Result;
use clap::Parser;
use std::path::PathBuf;
use sales::Report;
#[derive(Parser)]
struct Args {
#[arg(short, long)]
groups: Option<PathBuf>,
#[arg(short, long)]
revenue: bool,
#[arg(required(true))]
csv: Vec<PathBuf>,
}
fn main() -> Result<()> {
let args = Args::parse();
let mut report = Report::new();
report.sort_by_revenue = args.revenue;
if let Some(path) = args.groups {
report.read_groups(path)?;
}
for csv in args.csv {
report.read_csv(csv)?;
}
print!("{report}");
Ok(())
}