#[allow(clippy::wildcard_imports)]
use super::*;
#[derive(Subcommand)]
pub enum CycleCommand {
Create {
#[arg(long)]
name: Option<String>,
#[arg(long)]
description: Option<String>,
#[arg(long = "start-date")]
start_date: Option<String>,
#[arg(long = "due-date")]
due_date: Option<String>,
},
List,
Edit {
#[arg(long)]
name: String,
#[arg(long = "new-name")]
new_name: Option<String>,
#[arg(long)]
description: Option<String>,
#[arg(long = "start-date")]
start_date: Option<String>,
#[arg(long = "due-date")]
due_date: Option<String>,
},
Delete {
#[arg(long)]
name: String,
#[arg(long)]
yes: bool,
},
Schedule {
#[command(subcommand)]
command: CycleScheduleCommand,
},
}
#[derive(Debug, Clone, Subcommand)]
pub enum CycleScheduleCommand {
List,
Show {
#[arg(value_name = "SCHEDULE")]
schedule: String,
},
Create(CycleScheduleCreateArgs),
Edit {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[command(flatten)]
args: CycleScheduleEditArgs,
#[arg(long)]
confirm: bool,
},
Delete {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[arg(long)]
confirm: bool,
},
Detect {
#[arg(long, value_name = "YYYY-MM-DD")]
date: Option<String>,
},
Generate {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[arg(long, value_name = "YYYY-MM-DD")]
through: Option<String>,
#[arg(long)]
confirm: bool,
},
Close {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[command(flatten)]
args: CycleScheduleReasonArgs,
},
Reopen {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[command(flatten)]
args: CycleScheduleReasonArgs,
},
Extend {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[command(flatten)]
args: CycleScheduleExtendArgs,
},
Skip {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[command(flatten)]
args: CycleScheduleReasonArgs,
},
Pause {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[command(flatten)]
args: CycleScheduleLifecycleArgs,
},
Resume {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[command(flatten)]
args: CycleScheduleLifecycleArgs,
},
AdjustFuture {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[command(flatten)]
args: CycleScheduleReasonArgs,
},
Ignore {
#[arg(value_name = "SCHEDULE")]
schedule: String,
#[command(flatten)]
args: CycleScheduleLifecycleArgs,
},
}
#[derive(Debug, Clone, Args)]
pub struct CycleScheduleCreateArgs {
#[arg(long, value_name = "ID")]
pub id: String,
#[arg(long, value_name = "NAME")]
pub name: String,
#[arg(long, value_name = "KIND")]
pub cadence: String,
#[arg(long, value_name = "N")]
pub interval: Option<u32>,
#[arg(long, value_name = "UNIT")]
pub unit: Option<String>,
#[arg(long, value_name = "N")]
pub duration: u32,
#[arg(long = "duration-unit", value_name = "UNIT")]
pub duration_unit: String,
#[arg(long = "start-date", value_name = "YYYY-MM-DD")]
pub start_date: String,
#[arg(long, value_name = "TZ", allow_hyphen_values = true)]
pub timezone: String,
#[arg(long = "look-ahead", value_name = "N")]
pub look_ahead: Option<u32>,
#[arg(long)]
pub confirm: bool,
}
#[derive(Debug, Clone, Args)]
pub struct CycleScheduleEditArgs {
#[arg(long, value_name = "NAME")]
pub name: Option<String>,
#[arg(long, value_name = "KIND")]
pub cadence: Option<String>,
#[arg(long, value_name = "N")]
pub interval: Option<u32>,
#[arg(long, value_name = "UNIT")]
pub unit: Option<String>,
#[arg(long, value_name = "N")]
pub duration: Option<u32>,
#[arg(long = "duration-unit", value_name = "UNIT")]
pub duration_unit: Option<String>,
#[arg(long = "start-date", value_name = "YYYY-MM-DD")]
pub start_date: Option<String>,
#[arg(long, value_name = "TZ", allow_hyphen_values = true)]
pub timezone: Option<String>,
#[arg(long = "look-ahead", value_name = "N")]
pub look_ahead: Option<u32>,
}
#[derive(Debug, Clone, Args)]
pub struct CycleScheduleLifecycleArgs {
#[arg(long, value_name = "CYCLE")]
pub cycle: Option<String>,
#[arg(long, value_name = "YYYY-MM-DD")]
pub from: Option<String>,
#[arg(long)]
pub confirm: bool,
}
#[derive(Debug, Clone, Args)]
pub struct CycleScheduleReasonArgs {
#[command(flatten)]
pub lifecycle: CycleScheduleLifecycleArgs,
#[arg(long, value_name = "TEXT")]
pub reason: Option<String>,
}
#[derive(Debug, Clone, Args)]
pub struct CycleScheduleExtendArgs {
#[command(flatten)]
pub reason: CycleScheduleReasonArgs,
#[arg(long, value_name = "N")]
pub by: Option<u32>,
}