use clap::Subcommand;
use crate::models::Priority;
#[derive(Subcommand, Debug)]
pub enum TaskCommands {
#[command(alias = "ls")]
List {
#[arg(long, short)]
project_id: Option<String>,
#[arg(long, short = 'n')]
project_name: Option<String>,
#[arg(long)]
priority: Option<Priority>,
#[arg(long)]
tag: Option<String>,
#[arg(long)]
status: Option<String>,
},
Show {
id: String,
#[arg(long, short)]
project_id: Option<String>,
#[arg(long, short = 'n')]
project_name: Option<String>,
},
#[command(alias = "add")]
Create {
#[arg(long, short)]
title: String,
#[arg(long, short)]
project_id: Option<String>,
#[arg(long, short = 'n')]
project_name: Option<String>,
#[arg(long, short)]
content: Option<String>,
#[arg(long)]
priority: Option<Priority>,
#[arg(long)]
tags: Option<String>,
#[arg(long)]
date: Option<String>,
#[arg(long)]
start: Option<String>,
#[arg(long)]
due: Option<String>,
#[arg(long)]
all_day: bool,
#[arg(long)]
timezone: Option<String>,
#[arg(long)]
items: Option<String>,
},
Update {
id: String,
#[arg(long, short)]
project_id: Option<String>,
#[arg(long, short = 'n')]
project_name: Option<String>,
#[arg(long, short)]
title: Option<String>,
#[arg(long, short)]
content: Option<String>,
#[arg(long)]
priority: Option<Priority>,
#[arg(long)]
tags: Option<String>,
#[arg(long)]
date: Option<String>,
#[arg(long)]
start: Option<String>,
#[arg(long)]
due: Option<String>,
#[arg(long)]
all_day: Option<bool>,
#[arg(long)]
timezone: Option<String>,
#[arg(long)]
items: Option<String>,
},
Delete {
id: String,
#[arg(long, short)]
project_id: Option<String>,
#[arg(long, short = 'n')]
project_name: Option<String>,
#[arg(long)]
force: bool,
},
Complete {
id: String,
#[arg(long, short)]
project_id: Option<String>,
#[arg(long, short = 'n')]
project_name: Option<String>,
},
Uncomplete {
id: String,
#[arg(long, short)]
project_id: Option<String>,
#[arg(long, short = 'n')]
project_name: Option<String>,
},
}