use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum IvrModule {
#[serde(rename = "agentQueue")]
AgentQueue,
#[serde(rename = "agentic")]
Agentic,
#[serde(rename = "audioPlayer")]
AudioPlayer,
#[serde(rename = "consumerQueue")]
ConsumerQueue,
#[serde(rename = "inputReader")]
InputReader,
#[serde(rename = "inputReader.v2")]
InputReaderV2,
#[serde(rename = "promptPlayer")]
PromptPlayer,
#[serde(rename = "realtime")]
Realtime,
#[serde(rename = "recording")]
Recording,
#[serde(rename = "simpleMenu")]
SimpleMenu,
#[serde(rename = "speechToText")]
SpeechToText,
#[serde(rename = "switchNode")]
SwitchNode,
#[serde(rename = "textToSpeech")]
TextToSpeech,
#[serde(rename = "transfer")]
Transfer,
#[serde(other)]
Unknown,
}
impl std::fmt::Display for IvrModule {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Unknown => write!(f, "unknown"),
Self::AgentQueue => write!(f, "agentQueue"),
Self::Agentic => write!(f, "agentic"),
Self::AudioPlayer => write!(f, "audioPlayer"),
Self::ConsumerQueue => write!(f, "consumerQueue"),
Self::InputReader => write!(f, "inputReader"),
Self::InputReaderV2 => write!(f, "inputReader.v2"),
Self::PromptPlayer => write!(f, "promptPlayer"),
Self::Realtime => write!(f, "realtime"),
Self::Recording => write!(f, "recording"),
Self::SimpleMenu => write!(f, "simpleMenu"),
Self::SpeechToText => write!(f, "speechToText"),
Self::SwitchNode => write!(f, "switchNode"),
Self::TextToSpeech => write!(f, "textToSpeech"),
Self::Transfer => write!(f, "transfer"),
}
}
}
impl Default for IvrModule {
fn default() -> IvrModule {
Self::AgentQueue
}
}