use clap::{Parser, ValueEnum};
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
pub struct Cli {
#[arg(short, long, verbatim_doc_comment, env="CALTEMPS_CONFIG",
default_value_t=xdg::BaseDirectories::with_prefix("caltemps").get_config_file("config.toml").unwrap().into_os_string().into_string().expect("Strange path"))]
pub config: String,
#[arg(short, long, env = "CALTEMPS_FILTER")]
pub filter: Option<String>,
#[arg(short, long, env = "CALTEMPS_DATE_RANGE")]
pub date_range: Option<String>,
#[arg(short, long, value_enum, default_value_t=EnumReportTypes::Totals)]
pub report_type: EnumReportTypes,
#[arg(short, long, value_enum, default_value_t=EnumOutputTypes::Cli)]
pub output_type: EnumOutputTypes,
}
#[derive(ValueEnum, Debug, Clone, Copy)]
#[value()]
pub enum EnumReportTypes {
#[value()]
Totals,
#[value()]
Yearly,
#[value()]
Quarterly,
#[value()]
Monthly,
#[value()]
Fortnightly,
#[value()]
Weekly,
}
#[derive(ValueEnum, Debug, Clone, Copy)]
#[value()]
pub enum EnumOutputTypes {
#[value()]
Cli,
#[value()]
Csv,
}