1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
16pub struct Price {
17 #[serde(rename = "currency")]
19 pub currency: String,
20 #[serde(rename = "amount")]
22 pub amount: i32,
23 #[serde(rename = "scale", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
25 pub scale: Option<Option<i32>>,
26 #[serde(rename = "vats", skip_serializing_if = "Option::is_none")]
27 pub vats: Option<Vec<models::Vat>>,
28 #[serde(rename = "appliedCurrencyConversion", skip_serializing_if = "Option::is_none")]
29 pub applied_currency_conversion: Option<Box<models::CurrencyConversion>>,
30}
31
32impl Price {
33 pub fn new(currency: String, amount: i32) -> Price {
34 Price {
35 currency,
36 amount,
37 scale: None,
38 vats: None,
39 applied_currency_conversion: None,
40 }
41 }
42}
43