use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CustomerEntity {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i32>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "number", skip_serializing_if = "Option::is_none")]
pub number: Option<String>,
#[serde(rename = "comment", skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(rename = "visible", skip_serializing_if = "Option::is_none")]
pub visible: Option<bool>,
#[serde(rename = "billable", skip_serializing_if = "Option::is_none")]
pub billable: Option<bool>,
#[serde(rename = "company", skip_serializing_if = "Option::is_none")]
pub company: Option<String>,
#[serde(rename = "vatId", skip_serializing_if = "Option::is_none")]
pub vat_id: Option<String>,
#[serde(rename = "contact", skip_serializing_if = "Option::is_none")]
pub contact: Option<String>,
#[serde(rename = "address", skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(rename = "country")]
pub country: String,
#[serde(rename = "currency", skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(rename = "phone", skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(rename = "fax", skip_serializing_if = "Option::is_none")]
pub fax: Option<String>,
#[serde(rename = "mobile", skip_serializing_if = "Option::is_none")]
pub mobile: Option<String>,
#[serde(rename = "email", skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(rename = "homepage", skip_serializing_if = "Option::is_none")]
pub homepage: Option<String>,
#[serde(rename = "timezone")]
pub timezone: String,
#[serde(rename = "metaFields", skip_serializing_if = "Option::is_none")]
pub meta_fields: Option<Vec<models::CustomerMeta>>,
#[serde(rename = "teams", skip_serializing_if = "Option::is_none")]
pub teams: Option<Vec<models::Team>>,
#[serde(rename = "budget", skip_serializing_if = "Option::is_none")]
pub budget: Option<f32>,
#[serde(rename = "timeBudget", skip_serializing_if = "Option::is_none")]
pub time_budget: Option<i32>,
#[serde(rename = "budgetType", skip_serializing_if = "Option::is_none")]
pub budget_type: Option<String>,
#[serde(rename = "color", skip_serializing_if = "Option::is_none")]
pub color: Option<String>,
}
impl CustomerEntity {
pub fn new(name: String, country: String, timezone: String) -> CustomerEntity {
CustomerEntity {
id: None,
name,
number: None,
comment: None,
visible: None,
billable: None,
company: None,
vat_id: None,
contact: None,
address: None,
country,
currency: None,
phone: None,
fax: None,
mobile: None,
email: None,
homepage: None,
timezone,
meta_fields: None,
teams: None,
budget: None,
time_budget: None,
budget_type: None,
color: None,
}
}
}