use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Deserialize, Serialize, JsonSchema)]
pub struct QueryParams {
#[serde(default)]
pub author: Option<String>,
#[serde(default)]
pub reviewer: Option<String>,
#[serde(default)]
pub repo: Option<String>,
#[serde(default)]
pub org: Option<String>,
#[serde(default)]
pub group: Option<String>,
#[serde(default)]
pub label: Option<String>,
#[serde(default)]
pub state: Option<String>,
#[serde(default)]
pub period: Option<String>,
#[serde(default)]
pub limit: Option<u32>,
#[serde(default)]
pub offset: Option<u32>,
#[serde(default)]
pub output: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize, JsonSchema)]
pub struct MetricsParams {
pub entity_type: String,
pub name: String,
pub period: String,
}
#[derive(Debug, Clone, Deserialize, Serialize, JsonSchema)]
pub struct SearchParams {
pub query: String,
#[serde(default)]
pub scope: Option<String>,
#[serde(default)]
pub repository: Option<String>,
#[serde(default)]
pub limit: Option<u32>,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize, JsonSchema)]
pub struct MonitorParams {
#[serde(default)]
pub action: Option<String>,
#[serde(default)]
pub entity_type: Option<String>,
#[serde(default)]
pub name: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize, JsonSchema)]
pub struct SyncParams {
pub entity_type: String,
pub name: String,
#[serde(default)]
pub days: Option<u32>,
}