use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use super::{command::Command, verdict::SignedVerdict};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Trace {
pub id: String,
pub episode: u64,
pub environment_id: u32,
pub scenario: String,
pub profile_name: String,
pub steps: Vec<TraceStep>,
pub metadata: HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct TraceStep {
pub step: u64,
pub timestamp: DateTime<Utc>,
pub command: Command,
pub verdict: SignedVerdict,
pub simulation_state: Option<serde_json::Value>,
}