use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct SearchCodeParams {
pub query: String,
#[serde(default)]
pub path: Option<String>,
#[serde(default)]
pub extensions: Option<Vec<String>>,
#[serde(default)]
pub ignore_case: Option<bool>,
#[serde(default)]
pub fuzzy: Option<bool>,
#[serde(default)]
pub fuzzy_threshold: Option<f64>,
#[serde(default)]
pub max_results: Option<usize>,
#[serde(default)]
pub exclude: Option<Vec<String>>,
#[serde(default)]
pub rank: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ListFilesParams {
#[serde(default)]
pub path: Option<String>,
#[serde(default)]
pub extensions: Option<Vec<String>>,
#[serde(default)]
pub exclude: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct AnalyzeCodebaseParams {
#[serde(default)]
pub path: Option<String>,
#[serde(default)]
pub extensions: Option<Vec<String>>,
#[serde(default)]
pub exclude: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct ComplexityParams {
#[serde(default)]
pub path: Option<String>,
#[serde(default)]
pub extensions: Option<Vec<String>>,
#[serde(default)]
pub exclude: Option<Vec<String>>,
#[serde(default)]
pub threshold: Option<u32>,
#[serde(default)]
pub sort: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DuplicatesParams {
#[serde(default)]
pub path: Option<String>,
#[serde(default)]
pub extensions: Option<Vec<String>>,
#[serde(default)]
pub exclude: Option<Vec<String>>,
#[serde(default)]
pub min_lines: Option<usize>,
#[serde(default)]
pub similarity: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct DeadcodeParams {
#[serde(default)]
pub path: Option<String>,
#[serde(default)]
pub extensions: Option<Vec<String>>,
#[serde(default)]
pub exclude: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct CircularParams {
#[serde(default)]
pub path: Option<String>,
#[serde(default)]
pub extensions: Option<Vec<String>>,
#[serde(default)]
pub exclude: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct FindSymbolParams {
pub symbol: String,
#[serde(default)]
pub path: Option<String>,
#[serde(default)]
pub extensions: Option<Vec<String>>,
#[serde(default)]
pub exclude: Option<Vec<String>>,
#[serde(default)]
pub find_type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct GetHealthParams {
#[serde(default)]
pub path: Option<String>,
#[serde(default)]
pub extensions: Option<Vec<String>>,
#[serde(default)]
pub exclude: Option<Vec<String>>,
}