use std::collections::HashMap;
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use super::capabilities::PingOrigin;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PingContext {
pub origin: PingOrigin,
pub response_threshold_ms: Option<u64>,
pub payload: Option<serde_json::Value>,
pub health_metadata: HashMap<String, serde_json::Value>,
pub connection_metrics: Option<ConnectionMetrics>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ConnectionMetrics {
pub rtt_ms: Option<f64>,
pub packet_loss: Option<f64>,
pub uptime_seconds: Option<u64>,
pub bytes_sent: Option<u64>,
pub bytes_received: Option<u64>,
pub last_success: Option<DateTime<Utc>>,
}