osdm_sys/models/
refund_offer.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct RefundOffer {
16 #[serde(rename = "id")]
18 pub id: String,
19 #[serde(rename = "summary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
21 pub summary: Option<Option<String>>,
22 #[serde(rename = "createdOn")]
23 pub created_on: String,
24 #[serde(rename = "validFrom")]
25 pub valid_from: String,
26 #[serde(rename = "validUntil")]
28 pub valid_until: String,
29 #[serde(rename = "confirmedOn", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
30 pub confirmed_on: Option<Option<String>>,
31 #[serde(rename = "status")]
32 pub status: models::RefundStatus,
33 #[serde(rename = "reimbursementStatus", skip_serializing_if = "Option::is_none")]
34 pub reimbursement_status: Option<models::ReimbursementStatus>,
35 #[serde(rename = "reimbursementDateTime", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
36 pub reimbursement_date_time: Option<Option<String>>,
37 #[serde(rename = "appliedOverruleCode", skip_serializing_if = "Option::is_none")]
39 pub applied_overrule_code: Option<String>,
40 #[serde(rename = "fulfillments")]
42 pub fulfillments: Vec<models::Fulfillment>,
43 #[serde(rename = "issuedFulfillments", skip_serializing_if = "Option::is_none")]
45 pub issued_fulfillments: Option<Vec<models::Fulfillment>>,
46 #[serde(rename = "issuedVouchers", skip_serializing_if = "Option::is_none")]
47 pub issued_vouchers: Option<Vec<models::VoucherInformation>>,
48 #[serde(rename = "refundFee")]
49 pub refund_fee: Box<models::Price>,
50 #[serde(rename = "accountingRef", skip_serializing_if = "Option::is_none")]
51 pub accounting_ref: Option<Box<models::AccountingRef>>,
52 #[serde(rename = "refundableAmount")]
53 pub refundable_amount: Box<models::Price>,
54 #[serde(rename = "refundOfferBreakdown", skip_serializing_if = "Option::is_none")]
56 pub refund_offer_breakdown: Option<Vec<models::RefundOfferBreakdownItem>>,
57 #[serde(rename = "reimbursementMethod", skip_serializing_if = "Option::is_none")]
58 pub reimbursement_method: Option<Box<models::ReimbursementMethod>>,
59 #[serde(rename = "_links", skip_serializing_if = "Option::is_none")]
61 pub _links: Option<Vec<models::Link>>,
62}
63
64impl RefundOffer {
65 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 {
66 RefundOffer {
67 id,
68 summary: None,
69 created_on,
70 valid_from,
71 valid_until,
72 confirmed_on: None,
73 status,
74 reimbursement_status: None,
75 reimbursement_date_time: None,
76 applied_overrule_code: None,
77 fulfillments,
78 issued_fulfillments: None,
79 issued_vouchers: None,
80 refund_fee: Box::new(refund_fee),
81 accounting_ref: None,
82 refundable_amount: Box::new(refundable_amount),
83 refund_offer_breakdown: None,
84 reimbursement_method: None,
85 _links: None,
86 }
87 }
88}
89