use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Call {
#[serde(rename = "id")]
pub id: uuid::Uuid,
#[serde(rename = "parentId", skip_serializing_if = "Option::is_none")]
pub parent_id: Option<uuid::Uuid>,
#[serde(rename = "sessionId")]
pub session_id: uuid::Uuid,
#[serde(rename = "conversationId", skip_serializing_if = "Option::is_none")]
pub conversation_id: Option<uuid::Uuid>,
#[serde(rename = "dateCreated", skip_serializing_if = "Option::is_none")]
pub date_created: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "lastUpdated", skip_serializing_if = "Option::is_none")]
pub last_updated: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "dateEstablished", skip_serializing_if = "Option::is_none")]
pub date_established: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "dateFinished", skip_serializing_if = "Option::is_none")]
pub date_finished: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "state")]
pub state: models::CallState,
#[serde(rename = "finishReason", skip_serializing_if = "Option::is_none")]
pub finish_reason: Option<models::CallFinishReason>,
#[serde(rename = "type")]
pub r#type: models::CallType,
#[serde(rename = "from")]
pub from: String,
#[serde(rename = "to")]
pub to: String,
#[serde(rename = "source")]
pub source: models::CallSource,
#[serde(rename = "domain")]
pub domain: models::CallDomain,
#[serde(rename = "duration", skip_serializing_if = "Option::is_none")]
pub duration: Option<i32>,
#[serde(rename = "anonymous", skip_serializing_if = "Option::is_none")]
pub anonymous: Option<bool>,
#[serde(rename = "recordings", skip_serializing_if = "Option::is_none")]
pub recordings: Option<Vec<models::Recording>>,
#[serde(rename = "bridged", skip_serializing_if = "Option::is_none")]
pub bridged: Option<Box<models::CallBridged>>,
}
impl Call {
pub fn new(
id: uuid::Uuid,
session_id: uuid::Uuid,
state: models::CallState,
r#type: models::CallType,
from: String,
to: String,
source: models::CallSource,
domain: models::CallDomain,
) -> Call {
Call {
id,
parent_id: None,
session_id,
conversation_id: None,
date_created: None,
last_updated: None,
date_established: None,
date_finished: None,
state,
finish_reason: None,
r#type,
from,
to,
source,
domain,
duration: None,
anonymous: None,
recordings: None,
bridged: None,
}
}
}