use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Run {
#[serde(rename = "run_id")]
pub run_id: uuid::Uuid,
#[serde(rename = "thread_id")]
pub thread_id: uuid::Uuid,
#[serde(rename = "assistant_id")]
pub assistant_id: uuid::Uuid,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "updated_at")]
pub updated_at: String,
#[serde(rename = "status")]
pub status: Status,
#[serde(rename = "metadata")]
pub metadata: serde_json::Value,
#[serde(rename = "kwargs")]
pub kwargs: serde_json::Value,
#[serde(rename = "multitask_strategy")]
pub multitask_strategy: MultitaskStrategy,
}
impl Run {
pub fn new(
run_id: uuid::Uuid,
thread_id: uuid::Uuid,
assistant_id: uuid::Uuid,
created_at: String,
updated_at: String,
status: Status,
metadata: serde_json::Value,
kwargs: serde_json::Value,
multitask_strategy: MultitaskStrategy,
) -> Run {
Run {
run_id,
thread_id,
assistant_id,
created_at,
updated_at,
status,
metadata,
kwargs,
multitask_strategy,
}
}
}
#[derive(
Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum Status {
#[serde(rename = "pending")]
#[default]
Pending,
#[serde(rename = "running")]
Running,
#[serde(rename = "error")]
Error,
#[serde(rename = "success")]
Success,
#[serde(rename = "timeout")]
Timeout,
#[serde(rename = "interrupted")]
Interrupted,
}
#[derive(
Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum MultitaskStrategy {
#[serde(rename = "reject")]
#[default]
Reject,
#[serde(rename = "rollback")]
Rollback,
#[serde(rename = "interrupt")]
Interrupt,
#[serde(rename = "enqueue")]
Enqueue,
}