use clap::Subcommand;
use std::path::PathBuf;
#[derive(Subcommand)]
pub(crate) enum MonitorCommand {
Start {
#[arg(value_name = "TARGET")]
target: String,
#[arg(long)]
db_path: Option<PathBuf>,
#[arg(long, default_value = "1000")]
interval_ms: u64,
#[arg(long)]
system_metrics: bool,
#[arg(long)]
quality_metrics: bool,
},
Status {
#[arg(long)]
db_path: Option<PathBuf>,
#[arg(long)]
detailed: bool,
},
Alerts {
#[arg(long)]
db_path: Option<PathBuf>,
#[arg(long, default_value = "20")]
count: usize,
#[arg(long)]
severity: Option<String>,
},
Config {
#[arg(long)]
db_path: Option<PathBuf>,
#[arg(long)]
cpu_threshold: Option<f64>,
#[arg(long)]
memory_threshold: Option<f64>,
#[arg(long)]
quality_threshold: Option<f64>,
#[arg(long)]
show: bool,
},
Dashboard {
#[arg(long)]
db_path: Option<PathBuf>,
#[arg(long, default_value = "5")]
refresh_secs: u64,
#[arg(long, default_value = "60")]
history_points: usize,
},
}