use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ResponseOutputMessage {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "content")]
pub content: Vec<models::ResponseOutputText>,
#[serde(rename = "role")]
pub role: RoleTrue,
#[serde(rename = "status")]
pub status: StatusTrue,
#[serde(rename = "type")]
pub r#type: TypeTrue,
}
impl ResponseOutputMessage {
pub fn new(
id: String,
content: Vec<models::ResponseOutputText>,
role: RoleTrue,
status: StatusTrue,
r#type: TypeTrue,
) -> ResponseOutputMessage {
ResponseOutputMessage {
id,
content,
role,
status,
r#type,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RoleTrue {
#[serde(rename = "assistant")]
Assistant,
}
impl Default for RoleTrue {
fn default() -> RoleTrue {
Self::Assistant
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum StatusTrue {
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "incomplete")]
Incomplete,
}
impl Default for StatusTrue {
fn default() -> StatusTrue {
Self::InProgress
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TypeTrue {
#[serde(rename = "message")]
Message,
}
impl Default for TypeTrue {
fn default() -> TypeTrue {
Self::Message
}
}