use crate::SpanId;
use chrono::{DateTime, Utc};
use serde::Deserialize;
use std::{fmt::Debug, net::IpAddr};
use uuid::Uuid;
#[derive(Debug, Deserialize)]
pub struct SessionRecord {
pub session_id: Uuid,
pub client: IpAddr,
pub command: String,
pub coordinator: IpAddr,
pub duration: i32,
pub parameters: String,
pub request: String,
pub started_at: DateTime<Utc>,
#[serde(default)]
pub request_size: Option<u32>, #[serde(default)]
pub response_size: Option<u32>, #[serde(default)]
pub username: Option<String>,
}
#[derive(Debug, Deserialize)]
pub struct EventRecord {
pub session_id: Uuid,
pub event_id: Uuid,
pub activity: String,
pub source: IpAddr,
pub source_elapsed: i32,
pub thread: String,
#[serde(default)]
pub scylla_parent_id: Option<SpanId>,
#[serde(default)]
pub scylla_span_id: Option<SpanId>,
}