use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Invoice {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i32>,
#[serde(rename = "invoiceNumber")]
pub invoice_number: String,
#[serde(rename = "comment", skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(rename = "customer")]
pub customer: Box<models::Customer>,
#[serde(rename = "user")]
pub user: Box<models::User>,
#[serde(rename = "createdAt")]
pub created_at: String,
#[serde(rename = "total", skip_serializing_if = "Option::is_none")]
pub total: Option<f32>,
#[serde(rename = "tax", skip_serializing_if = "Option::is_none")]
pub tax: Option<f32>,
#[serde(rename = "currency")]
pub currency: String,
#[serde(rename = "dueDays", skip_serializing_if = "Option::is_none")]
pub due_days: Option<i32>,
#[serde(rename = "vat", skip_serializing_if = "Option::is_none")]
pub vat: Option<f32>,
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "paymentDate", skip_serializing_if = "Option::is_none")]
pub payment_date: Option<String>,
#[serde(rename = "metaFields", skip_serializing_if = "Option::is_none")]
pub meta_fields: Option<Vec<models::InvoiceMeta>>,
}
impl Invoice {
pub fn new(invoice_number: String, customer: models::Customer, user: models::User, created_at: String, currency: String) -> Invoice {
Invoice {
id: None,
invoice_number,
comment: None,
customer: Box::new(customer),
user: Box::new(user),
created_at,
total: None,
tax: None,
currency,
due_days: None,
vat: None,
status: None,
payment_date: None,
meta_fields: None,
}
}
}