osdm_sys/models/
refund_offer.rs1use 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 RefundOffer {
17 #[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 = "createdOn")]
24 pub created_on: String,
25 #[serde(rename = "validFrom")]
26 pub valid_from: String,
27 #[serde(rename = "validUntil")]
29 pub valid_until: String,
30 #[serde(rename = "confirmedOn", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
31 pub confirmed_on: Option<Option<String>>,
32 #[serde(rename = "status")]
33 pub status: models::RefundStatus,
34 #[serde(rename = "reimbursementStatus", skip_serializing_if = "Option::is_none")]
35 pub reimbursement_status: Option<models::ReimbursementStatus>,
36 #[serde(rename = "reimbursementDateTime", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
37 pub reimbursement_date_time: Option<Option<String>>,
38 #[serde(rename = "appliedOverruleCode", skip_serializing_if = "Option::is_none")]
40 pub applied_overrule_code: Option<String>,
41 #[serde(rename = "fulfillments")]
43 pub fulfillments: Vec<models::Fulfillment>,
44 #[serde(rename = "issuedFulfillments", skip_serializing_if = "Option::is_none")]
46 pub issued_fulfillments: Option<Vec<models::Fulfillment>>,
47 #[serde(rename = "issuedVouchers", skip_serializing_if = "Option::is_none")]
48 pub issued_vouchers: Option<Vec<models::VoucherInformation>>,
49 #[serde(rename = "refundFee")]
50 pub refund_fee: Box<models::Price>,
51 #[serde(rename = "accountingRef", skip_serializing_if = "Option::is_none")]
52 pub accounting_ref: Option<Box<models::AccountingRef>>,
53 #[serde(rename = "refundableAmount")]
54 pub refundable_amount: Box<models::Price>,
55 #[serde(rename = "refundOfferBreakdown", skip_serializing_if = "Option::is_none")]
57 pub refund_offer_breakdown: Option<Vec<models::RefundOfferBreakdownItem>>,
58 #[serde(rename = "reimbursementMethod", skip_serializing_if = "Option::is_none")]
59 pub reimbursement_method: Option<Box<models::ReimbursementMethod>>,
60 #[serde(rename = "_links", skip_serializing_if = "Option::is_none")]
62 pub _links: Option<Vec<models::Link>>,
63}
64
65impl RefundOffer {
66 pub fn new(id: String, created_on: String, valid_from: String, valid_until: String, status: models::RefundStatus, fulfillments: Vec<models::Fulfillment>, refund_fee: models::Price, refundable_amount: models::Price) -> RefundOffer {
67 RefundOffer {
68 id,
69 summary: None,
70 created_on,
71 valid_from,
72 valid_until,
73 confirmed_on: None,
74 status,
75 reimbursement_status: None,
76 reimbursement_date_time: None,
77 applied_overrule_code: None,
78 fulfillments,
79 issued_fulfillments: None,
80 issued_vouchers: None,
81 refund_fee: Box::new(refund_fee),
82 accounting_ref: None,
83 refundable_amount: Box::new(refundable_amount),
84 refund_offer_breakdown: None,
85 reimbursement_method: None,
86 _links: None,
87 }
88 }
89}
90