use schemars::JsonSchema;
use serde::Deserialize;
use crate::reviews::VerdictValue;
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[serde(deny_unknown_fields)]
pub struct CreateArgs {
pub change_id: String,
#[serde(default)]
#[schemars(with = "String")]
pub title: Option<String>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[serde(deny_unknown_fields)]
pub struct DisplayArgs {
pub change_id: String,
#[serde(default)]
pub full: bool,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[serde(deny_unknown_fields)]
pub struct ValidateArgs {
pub change_id: String,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[serde(deny_unknown_fields)]
pub struct RenderArgs {
pub change_id: String,
#[serde(default)]
pub diff: bool,
}
fn merge_gate() -> String {
crate::reviews::MERGE_GATE.to_string()
}
#[derive(Debug, Deserialize, JsonSchema)]
#[serde(deny_unknown_fields)]
pub struct ReviewArgs {
pub change_id: String,
#[serde(default = "merge_gate")]
pub gate: String,
pub verdict: VerdictValue,
#[serde(default)]
#[schemars(with = "String")]
pub comment: Option<String>,
#[serde(default)]
#[schemars(with = "String")]
pub reviewer: Option<String>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[serde(deny_unknown_fields)]
pub struct MergeArgs {
pub change_id: String,
#[serde(default)]
pub force: bool,
}