use schemars::JsonSchema;
use serde::Deserialize;
#[derive(Deserialize, JsonSchema)]
pub(super) struct IdInput {
pub(super) id: String,
}
#[derive(Deserialize, JsonSchema)]
pub(super) struct ListRoutinesParam {
pub(super) local_only: Option<bool>,
pub(super) include_prompts: Option<bool>,
}
#[derive(Deserialize, JsonSchema)]
pub(super) struct LockRoutinesInput {
pub(super) scope: String,
}
#[derive(Deserialize, JsonSchema)]
pub(super) struct UnlockRoutinesInput {
pub(super) scope: String,
}
#[derive(Deserialize, JsonSchema)]
pub(super) struct CreateFlagInput {
pub(super) id: String,
pub(super) r#type: String,
pub(super) description: String,
pub(super) scope: String,
}
#[derive(Deserialize, JsonSchema)]
pub(super) struct ResolveFlagInput {
pub(super) id: String,
pub(super) filename: String,
}
#[derive(Deserialize, JsonSchema)]
pub(super) struct SnoozeRoutineInput {
pub(super) id: String,
pub(super) snoozed_until: Option<u64>,
pub(super) skip_runs: Option<u32>,
}
#[derive(Deserialize, JsonSchema)]
pub(super) struct SetPowerSavingInput {
pub(super) id: String,
pub(super) active: bool,
}
#[derive(Deserialize, JsonSchema)]
pub(super) struct UpdateRoutineInput {
pub(super) id: String,
pub(super) schedule: Option<String>,
pub(super) title: Option<String>,
pub(super) agent: Option<String>,
pub(super) model: Option<String>,
pub(super) prompt: Option<String>,
pub(super) goal: Option<String>,
pub(super) repositories: Option<Vec<crate::routines::Repository>>,
pub(super) machines: Option<Vec<String>>,
pub(super) enabled: Option<bool>,
pub(super) ttl_secs: Option<u64>,
pub(super) max_runtime_secs: Option<u64>,
pub(super) tags: Option<Vec<String>>,
}