kimai_client_lib 1.0.0

JSON API for the Kimai time-tracking software. Read our [API documentation](https://www.kimai.org/documentation/rest-api.html) and download the [Open API definition](doc.json) to import into your API client.
Documentation
/*
 * Kimai - API
 *
 * JSON API for the Kimai time-tracking software. Read our [API documentation](https://www.kimai.org/documentation/rest-api.html) and download the [Open API definition](doc.json) to import into your API client. 
 *
 * The version of the OpenAPI document: 1.0
 * 
 * Generated by: https://openapi-generator.tech
 */

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,
        }
    }
}