use serde::{Deserialize, Serialize};
use super::Extras;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct MeshStatus {
#[serde(default)]
pub ap_active: bool,
#[serde(default)]
pub auto_mesh: bool,
#[serde(default)]
pub connected_to_seed: bool,
#[serde(default)]
pub device_id: String,
#[serde(default)]
pub has_mesh_password: bool,
#[serde(default)]
pub peer_count: u64,
#[serde(default)]
pub peers: Vec<serde_json::Value>,
#[serde(flatten)]
pub extras: Extras,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct MeshPeers {
#[serde(default)]
pub count: u64,
#[serde(default)]
pub discovery_active: bool,
#[serde(default)]
pub peers: Vec<serde_json::Value>,
#[serde(flatten)]
pub extras: Extras,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct SwarmStatus {
#[serde(default)]
pub device_id: String,
#[serde(default)]
pub discovery_active: bool,
#[serde(default)]
pub epoch: u64,
#[serde(default)]
pub peer_count: u64,
#[serde(default)]
pub total_vectors: u64,
#[serde(default)]
pub uptime_secs: u64,
#[serde(flatten)]
pub extras: Extras,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ClusterHealth {
#[serde(default)]
pub auto_sync_interval_secs: u64,
#[serde(default)]
pub cluster_enabled: bool,
#[serde(default)]
pub discovery_active: bool,
#[serde(default)]
pub last_sync_attempt: i64,
#[serde(default)]
pub peer_count: u64,
#[serde(default)]
pub peers: Vec<serde_json::Value>,
#[serde(flatten)]
pub extras: Extras,
}