use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AgentStatus {
#[serde(rename = "enabled")]
pub enabled: bool,
#[serde(rename = "available")]
pub available: bool,
#[serde(rename = "outbound_status")]
pub outbound_status: models::AgentStatusOutboundStatus,
#[serde(rename = "line_status")]
pub line_status: models::AgentLineStatus,
#[serde(rename = "presence")]
pub presence: Box<models::AgentPresence>,
#[serde(
rename = "activity",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub activity: Option<Option<serde_json::Value>>,
#[serde(rename = "display_status")]
pub display_status: String,
}
impl AgentStatus {
pub fn new(
enabled: bool,
available: bool,
outbound_status: models::AgentStatusOutboundStatus,
line_status: models::AgentLineStatus,
presence: models::AgentPresence,
display_status: String,
) -> AgentStatus {
AgentStatus {
enabled,
available,
outbound_status,
line_status,
presence: Box::new(presence),
activity: None,
display_status,
}
}
}