crmlib/jsonb/
ongoing_cost.rsuse serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct OngoingCost {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<Uuid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename(serialize = "type", deserialize = "type"))]
pub _type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub count: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub basic: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub videocalls: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cards: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subtotal: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub discount: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gst: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total: Option<i32>,
}
impl OngoingCost {
pub fn normalize(&self) -> OngoingCost {
OngoingCost {
id: Option::from(if self.id.is_none() {
Uuid::new_v4()
} else {
self.id.unwrap()
}),
_type: self._type.clone(),
count: self.count,
basic: self.basic,
videocalls: self.videocalls,
cards: self.videocalls,
subtotal: self.subtotal,
discount: self.discount,
gst: self.gst,
total: self.total,
}
}
}