babelforce-manager-sdk 0.42.3

Rust SDK for the babelforce manager APIs — auth, user & agent management, call reporting, metrics, and task automations.
Documentation
/*
 * Manager API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 0.0.0-dev
 * Contact: support@babelforce.com
 * Generated by: https://openapi-generator.tech
 */

use crate::gen::manager::models;
use serde::{Deserialize, Serialize};

/// AgentStatus : An agent's composite status — account, availability, line, and outbound state.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AgentStatus {
    /// Whether the agent's account is enabled.
    #[serde(rename = "enabled")]
    pub enabled: bool,
    /// Whether the agent is currently available to take calls.
    #[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 {
    /// An agent's composite status — account, availability, line, and outbound state.
    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,
        }
    }
}