use std::path::PathBuf;
use clap::Args;
use crate::cli::queue::{QueueExportFormat, StatusArg};
#[derive(Args)]
#[command(
after_long_help = "Examples:\n ralph queue export\n ralph queue export --format csv --output tasks.csv\n ralph queue export --format json --status done\n ralph queue export --format tsv --tag rust --tag cli\n ralph queue export --include-archive --format csv\n ralph queue export --format csv --created-after 2026-01-01\n ralph queue export --format md --status todo\n ralph queue export --format gh --status doing"
)]
pub struct QueueExportArgs {
#[arg(long, value_enum, default_value_t = QueueExportFormat::Csv)]
pub format: QueueExportFormat,
#[arg(long, short)]
pub output: Option<PathBuf>,
#[arg(long, value_enum)]
pub status: Vec<StatusArg>,
#[arg(long)]
pub tag: Vec<String>,
#[arg(long)]
pub scope: Vec<String>,
#[arg(long)]
pub id_pattern: Option<String>,
#[arg(long)]
pub created_after: Option<String>,
#[arg(long)]
pub created_before: Option<String>,
#[arg(long)]
pub include_archive: bool,
#[arg(long)]
pub only_archive: bool,
#[arg(long, short)]
pub quiet: bool,
}