use crate::storage::StreamConfig;
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
pub const FORMAT_VERSION: u32 = 1;
#[derive(Debug, Serialize, Deserialize)]
pub struct ExportDocument {
pub format_version: u32,
pub exported_at: DateTime<Utc>,
pub server_version: String,
pub streams: Vec<ExportedStream>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ExportedStream {
pub name: String,
pub config: StreamConfig,
pub closed: bool,
pub created_at: DateTime<Utc>,
#[serde(default)]
pub updated_at: Option<DateTime<Utc>>,
pub total_bytes: u64,
pub message_count: u64,
pub next_offset: String,
pub messages: Vec<ExportedMessage>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ExportedMessage {
pub offset: String,
pub data_base64: String,
}