use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Lead {
#[serde(rename = "id")]
pub id: uuid::Uuid,
#[serde(rename = "uid", skip_serializing_if = "Option::is_none")]
pub uid: Option<String>,
#[serde(rename = "listId", skip_serializing_if = "Option::is_none")]
pub list_id: Option<uuid::Uuid>,
#[serde(rename = "campaignId", skip_serializing_if = "Option::is_none")]
pub campaign_id: Option<uuid::Uuid>,
#[serde(rename = "number")]
pub number: String,
#[serde(rename = "number2", skip_serializing_if = "Option::is_none")]
pub number2: Option<String>,
#[serde(rename = "number3", skip_serializing_if = "Option::is_none")]
pub number3: Option<String>,
#[serde(rename = "callerId", skip_serializing_if = "Option::is_none")]
pub caller_id: Option<String>,
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<models::DialStatus>,
#[serde(rename = "rank", skip_serializing_if = "Option::is_none")]
pub rank: Option<i32>,
#[serde(rename = "callCount", skip_serializing_if = "Option::is_none")]
pub call_count: Option<i32>,
#[serde(rename = "duration", skip_serializing_if = "Option::is_none")]
pub duration: Option<i32>,
#[serde(rename = "calledSinceReset", skip_serializing_if = "Option::is_none")]
pub called_since_reset: Option<bool>,
#[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 = "dateCalled", skip_serializing_if = "Option::is_none")]
pub date_called: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "data", skip_serializing_if = "Option::is_none")]
pub data: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(
rename = "callback",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub callback: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
}
impl Lead {
pub fn new(id: uuid::Uuid, number: String) -> Lead {
Lead {
id,
uid: None,
list_id: None,
campaign_id: None,
number,
number2: None,
number3: None,
caller_id: None,
status: None,
rank: None,
call_count: None,
duration: None,
called_since_reset: None,
date_created: None,
last_updated: None,
date_called: None,
data: None,
callback: None,
}
}
}