use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct AdminTopicSummary {
pub topic_name: String,
pub keyed_by: Option<String>,
pub schema_json: Value,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct AdminHandlerSummary {
pub topic_name: String,
pub subscription_name: Option<String>,
pub consumer_group: Option<String>,
pub registry_key: String,
pub mode: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct AdminCheckpointSummary {
pub subscription_name: String,
pub topic_name: String,
pub topic_key: Option<String>,
pub last_seq: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct AdminBackendSummary {
pub telemetry_label: String,
pub supports_get_event: bool,
pub max_replay_window_secs: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct AdminSnapshot {
pub backend: AdminBackendSummary,
pub topics: Vec<AdminTopicSummary>,
pub handlers: Vec<AdminHandlerSummary>,
pub checkpoints: Vec<AdminCheckpointSummary>,
}