use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum CallFinishReason {
#[serde(rename = "unknown")]
Unknown,
#[serde(rename = "hangup")]
Hangup,
#[serde(rename = "passive-hangup")]
PassiveHangup,
#[serde(rename = "system-hangup")]
SystemHangup,
#[serde(rename = "failed")]
Failed,
#[serde(rename = "timeout")]
Timeout,
#[serde(rename = "unreachable")]
Unreachable,
#[serde(rename = "busy")]
Busy,
#[serde(rename = "declined")]
Declined,
#[serde(rename = "canceled")]
Canceled,
#[serde(rename = "transferred")]
Transferred,
#[serde(rename = "network-unreachable")]
NetworkUnreachable,
#[serde(rename = "unallocated-number")]
UnallocatedNumber,
#[serde(rename = "invalid-number")]
InvalidNumber,
#[serde(rename = "no-answer")]
NoAnswer,
#[serde(rename = "dropped")]
Dropped,
}
impl std::fmt::Display for CallFinishReason {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Unknown => write!(f, "unknown"),
Self::Hangup => write!(f, "hangup"),
Self::PassiveHangup => write!(f, "passive-hangup"),
Self::SystemHangup => write!(f, "system-hangup"),
Self::Failed => write!(f, "failed"),
Self::Timeout => write!(f, "timeout"),
Self::Unreachable => write!(f, "unreachable"),
Self::Busy => write!(f, "busy"),
Self::Declined => write!(f, "declined"),
Self::Canceled => write!(f, "canceled"),
Self::Transferred => write!(f, "transferred"),
Self::NetworkUnreachable => write!(f, "network-unreachable"),
Self::UnallocatedNumber => write!(f, "unallocated-number"),
Self::InvalidNumber => write!(f, "invalid-number"),
Self::NoAnswer => write!(f, "no-answer"),
Self::Dropped => write!(f, "dropped"),
}
}
}
impl Default for CallFinishReason {
fn default() -> CallFinishReason {
Self::Unknown
}
}