use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Thread {
#[serde(rename = "thread_id")]
pub thread_id: uuid::Uuid,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "updated_at")]
pub updated_at: String,
#[serde(rename = "metadata")]
pub metadata: serde_json::Value,
#[serde(rename = "config", skip_serializing_if = "Option::is_none")]
pub config: Option<serde_json::Value>,
#[serde(rename = "status")]
pub status: Status,
#[serde(rename = "values", skip_serializing_if = "Option::is_none")]
pub values: Option<serde_json::Value>,
#[serde(rename = "interrupts", skip_serializing_if = "Option::is_none")]
pub interrupts: Option<serde_json::Value>,
}
impl Thread {
pub fn new(
thread_id: uuid::Uuid,
created_at: String,
updated_at: String,
metadata: serde_json::Value,
status: Status,
) -> Thread {
Thread {
thread_id,
created_at,
updated_at,
metadata,
config: None,
status,
values: None,
interrupts: None,
}
}
}
#[derive(
Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum Status {
#[serde(rename = "idle")]
#[default]
Idle,
#[serde(rename = "busy")]
Busy,
#[serde(rename = "interrupted")]
Interrupted,
#[serde(rename = "error")]
Error,
}