use std::time::SystemTime;
use crate::harness::ids::{
CheckpointId, EventId, ExecutionStatus, GraphId, InterruptId, NodeId, RunId, ThreadId,
};
#[derive(Clone, Debug)]
pub struct GraphRunStatus {
pub run_id: RunId,
pub root_run_id: RunId,
pub parent_run_id: Option<RunId>,
pub thread_id: Option<ThreadId>,
pub graph_id: GraphId,
pub checkpoint_id: Option<CheckpointId>,
pub checkpoint_namespace: Vec<String>,
pub status: ExecutionStatus,
pub current_step: usize,
pub active_nodes: Vec<NodeId>,
pub pending_interrupts: Vec<InterruptId>,
pub last_event_id: Option<EventId>,
pub started_at: SystemTime,
pub updated_at: SystemTime,
pub ended_at: Option<SystemTime>,
pub error: Option<String>,
}