use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct InvoiceSummary {
#[serde(rename = "period", skip_serializing_if = "Option::is_none")]
pub period: Option<String>,
#[serde(rename = "dateOfInvoice", skip_serializing_if = "Option::is_none")]
pub date_of_invoice: Option<String>,
#[serde(rename = "amountType", skip_serializing_if = "Option::is_none")]
pub amount_type: Option<AmountType>,
#[serde(rename = "amount", skip_serializing_if = "Option::is_none")]
pub amount: Option<f64>,
#[serde(rename = "hoursPerDay", skip_serializing_if = "Option::is_none")]
pub hours_per_day: Option<f64>,
#[serde(rename = "subTotal", skip_serializing_if = "Option::is_none")]
pub sub_total: Option<f64>,
#[serde(rename = "client", skip_serializing_if = "Option::is_none")]
pub client: Option<String>,
}
impl InvoiceSummary {
pub fn new() -> InvoiceSummary {
InvoiceSummary {
period: None,
date_of_invoice: None,
amount_type: None,
amount: None,
hours_per_day: None,
sub_total: None,
client: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AmountType {
#[serde(rename = "DAYS")]
Days,
#[serde(rename = "HOURS")]
Hours,
}
impl Default for AmountType {
fn default() -> AmountType {
Self::Days
}
}