use serde::{Deserialize, Serialize};
use turnframe_core::ids::WorkflowKey;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum TranscriptRole {
User,
Assistant,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RecentMessage {
pub role: TranscriptRole,
pub text: String,
}
impl RecentMessage {
#[must_use]
pub fn user(text: impl Into<String>) -> Self {
Self {
role: TranscriptRole::User,
text: text.into(),
}
}
#[must_use]
pub fn assistant(text: impl Into<String>) -> Self {
Self {
role: TranscriptRole::Assistant,
text: text.into(),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct UnavailableWorkflow {
pub workflow: WorkflowKey,
pub reason: String,
}