use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "module")]
pub enum Application {
#[serde(rename = "agentQueue")]
AgentQueue(Box<models::QueueAgentApplication>),
#[serde(rename = "agentic")]
Agentic(Box<models::AgenticApplication>),
#[serde(rename = "audioPlayer")]
AudioPlayer(Box<models::AudioPlayerApplication>),
#[serde(rename = "consumerQueue")]
ConsumerQueue(Box<models::QueueConsumerApplication>),
#[serde(rename = "inputReader")]
InputReader(Box<models::InputReaderApplication>),
#[serde(rename = "inputReader.v2")]
InputReaderV2(Box<models::InputReaderV2Application>),
#[serde(rename = "promptPlayer")]
PromptPlayer(Box<models::PromptPlayerApplication>),
#[serde(rename = "recording")]
Recording(Box<models::RecordingApplication>),
#[serde(rename = "simpleMenu")]
SimpleMenu(Box<models::SimpleMenuApplication>),
#[serde(rename = "speechToText")]
SpeechToText(Box<models::SpeechToTextApplication>),
#[serde(rename = "switchNode")]
SwitchNode(Box<models::SwitchNodeApplication>),
#[serde(rename = "textToSpeech")]
TextToSpeech(Box<models::TextToSpeechApplication>),
#[serde(rename = "transfer")]
Transfer(Box<models::TransferApplication>),
}
impl Default for Application {
fn default() -> Self {
Self::AgentQueue(Default::default())
}
}