stasis-rs 0.9.3

Durable AI orchestration framework with runtime jobs, lineage, and memory integration
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use serde_json::Value;

#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum TurnWaitStatus {
    Pending,
    Completed,
    Failed,
    Cancelled,
    TimedOut,
}

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct TurnWaitRecord {
    pub turn_id: String,
    pub job_id: String,
    pub session_id: String,
    pub correlation_id: String,
    pub participant_id: String,
    pub status: TurnWaitStatus,
    pub deadline_at: DateTime<Utc>,
    pub created_at: DateTime<Utc>,
    pub updated_at: DateTime<Utc>,
    pub result_payload: Option<Value>,
    pub error_message: Option<String>,
}