use std::sync::Arc;
use clap::{Args, Subcommand};
use color_eyre::eyre::Result;
use super::clockify::{HaltArgs, ResumeArgs};
#[derive(Clone, Debug, Subcommand)]
pub enum Command {
Add {
name: String,
#[arg(short = 'n', long)]
nested: bool,
#[arg(short = 'u', long)]
urgent: bool,
},
Pop {
#[arg(short = 'p', long = "parent", action = clap::ArgAction::Count)]
parents: u8,
},
Set { name: String },
List,
Current {
#[arg(short = 'f', long)]
fully_qualified: bool,
},
Open {
pattern: Option<String>,
#[arg(short = 's', long)]
set_after: bool,
#[arg(short = 'u', long)]
urgent: bool,
},
#[command(subcommand)]
Move(MoveCommand),
Resume(ResumeArgs),
Halt(HaltArgs),
CurrentProject,
}
#[derive(Clone, Debug, Subcommand)]
pub enum MoveCommand {
Up,
Down,
To { pattern: Option<String> },
}
#[derive(Args, Clone, Debug)]
pub struct BlockerArgs {
#[command(subcommand)]
pub command: Command,
}
pub async fn main(args: BlockerArgs, offline: bool, settings: Arc<crate::config::LiveSettings>) -> Result<()> {
super::integration::main_integrated(args.command, offline, settings).await
}