1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
17pub struct Fee {
18 #[serde(rename = "id")]
19 pub id: String,
20 #[serde(rename = "summary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
22 pub summary: Option<Option<String>>,
23 #[serde(rename = "price")]
24 pub price: Box<models::Price>,
25 #[serde(rename = "applicability", skip_serializing_if = "Option::is_none")]
26 pub applicability: Option<String>,
27 #[serde(rename = "transactionContext", skip_serializing_if = "Option::is_none")]
28 pub transaction_context: Option<String>,
29 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
30 pub status: Option<models::FeeStatus>,
31 #[serde(rename = "distributorBookingRef", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33 pub distributor_booking_ref: Option<Option<String>>,
34 #[serde(rename = "refundable", skip_serializing_if = "Option::is_none")]
35 pub refundable: Option<models::RefundType>,
36 #[serde(rename = "conditions", skip_serializing_if = "Option::is_none")]
38 pub conditions: Option<Vec<models::Condition>>,
39 #[serde(rename = "productCode", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
41 pub product_code: Option<Option<String>>,
42 #[serde(rename = "productRef", skip_serializing_if = "Option::is_none")]
44 pub product_ref: Option<String>,
45 #[serde(rename = "accountingRef", skip_serializing_if = "Option::is_none")]
46 pub accounting_ref: Option<Box<models::AccountingRef>>,
47}
48
49impl Fee {
50 pub fn new(id: String, price: models::Price) -> Fee {
52 Fee {
53 id,
54 summary: None,
55 price: Box::new(price),
56 applicability: None,
57 transaction_context: None,
58 status: None,
59 distributor_booking_ref: None,
60 refundable: None,
61 conditions: None,
62 product_code: None,
63 product_ref: None,
64 accounting_ref: None,
65 }
66 }
67}
68