use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize)]
pub struct SyncPullResponse {
pub patterns: Vec<RemotePattern>,
pub version: i64,
}
#[derive(Debug, Deserialize)]
pub struct RemotePattern {
pub id: String,
pub name: String,
pub content: String,
pub version: i64,
#[serde(default)]
pub deleted: bool,
}
#[derive(Debug, Serialize)]
pub struct SyncPushRequest {
pub base_version: i64,
pub changes: Vec<PatternChange>,
#[serde(default)]
pub force_local: bool,
}
#[derive(Debug, Serialize)]
pub struct PatternChange {
pub action: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pattern: Option<PatternPayload>,
}
#[derive(Debug, Serialize)]
pub struct PatternPayload {
pub name: String,
pub content: String,
}
#[derive(Debug, Deserialize)]
pub struct SyncPushResponse {
pub ok: bool,
#[serde(default)]
pub version: Option<i64>,
#[serde(default)]
pub conflict: Option<bool>,
}
#[derive(Debug, Deserialize)]
pub struct WorkflowListResponse {
pub data: Vec<serde_json::Value>,
}