1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct ContinuousServiceBookingPart {
17 #[serde(rename = "objectType")]
19 pub object_type: String,
20 #[serde(rename = "id")]
21 pub id: String,
22 #[serde(rename = "summary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
23 pub summary: Option<Option<String>>,
24 #[serde(rename = "createdOn")]
26 pub created_on: String,
27 #[serde(rename = "confirmableUntil", skip_serializing_if = "Option::is_none")]
29 pub confirmable_until: Option<String>,
30 #[serde(rename = "validFrom")]
31 pub valid_from: String,
32 #[serde(rename = "validUntil", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
34 pub valid_until: Option<Option<String>>,
35 #[serde(rename = "confirmedOn", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
36 pub confirmed_on: Option<Option<String>>,
37 #[serde(rename = "confirmedFulfillmentOptions", skip_serializing_if = "Option::is_none")]
38 pub confirmed_fulfillment_options: Option<Box<models::FulfillmentOption>>,
39 #[serde(rename = "price")]
40 pub price: Box<models::Price>,
41 #[serde(rename = "refundAmount", skip_serializing_if = "Option::is_none")]
42 pub refund_amount: Option<Box<models::Price>>,
43 #[serde(rename = "tripCoverage", skip_serializing_if = "Option::is_none")]
44 pub trip_coverage: Option<Box<models::TripCoverage>>,
45 #[serde(rename = "inboundTripCoverage", skip_serializing_if = "Option::is_none")]
46 pub inbound_trip_coverage: Option<Box<models::TripCoverage>>,
47 #[serde(rename = "summaryProductId", skip_serializing_if = "Option::is_none")]
49 pub summary_product_id: Option<String>,
50 #[serde(rename = "products", skip_serializing_if = "Option::is_none")]
52 pub products: Option<Vec<models::ProductLegAssociation>>,
53 #[serde(rename = "status")]
54 pub status: models::BookingPartStatus,
55 #[serde(rename = "pricingStatus", skip_serializing_if = "Option::is_none")]
57 pub pricing_status: Option<String>,
58 #[serde(rename = "offerMode", skip_serializing_if = "Option::is_none")]
59 pub offer_mode: Option<models::OfferMode>,
60 #[serde(rename = "bookingPartCode", skip_serializing_if = "Option::is_none")]
62 pub booking_part_code: Option<String>,
63 #[serde(rename = "distributorBookingRef", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
65 pub distributor_booking_ref: Option<Option<String>>,
66 #[serde(rename = "retailerBookingRef", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
68 pub retailer_booking_ref: Option<Option<String>>,
69 #[serde(rename = "passengerIds")]
71 pub passenger_ids: Vec<String>,
72 #[serde(rename = "availableFulfillmentOptions", skip_serializing_if = "Option::is_none")]
73 pub available_fulfillment_options: Option<Vec<models::FulfillmentOption>>,
74 #[serde(rename = "refundable")]
75 pub refundable: models::RefundType,
76 #[serde(rename = "exchangeable")]
77 pub exchangeable: models::ExchangeableType,
78 #[serde(rename = "afterSaleConditions", skip_serializing_if = "Option::is_none")]
80 pub after_sale_conditions: Option<Vec<models::AfterSaleCondition>>,
81 #[serde(rename = "afterSalesOverrideDetails", skip_serializing_if = "Option::is_none")]
82 pub after_sales_override_details: Option<Box<models::AfterSalesOverrideDetails>>,
83 #[serde(rename = "appliedCorporateCodes", skip_serializing_if = "Option::is_none")]
84 pub applied_corporate_codes: Option<Vec<models::CorporateCode>>,
85 #[serde(rename = "appliedPassengerTypes", skip_serializing_if = "Option::is_none")]
86 pub applied_passenger_types: Option<Vec<models::AppliedPassengerType>>,
87 #[serde(rename = "appliedPromotionCodes", skip_serializing_if = "Option::is_none")]
88 pub applied_promotion_codes: Option<Vec<models::PromotionCode>>,
89 #[serde(rename = "appliedReductions", skip_serializing_if = "Option::is_none")]
90 pub applied_reductions: Option<Vec<models::CardReference>>,
91 #[serde(rename = "indicatedConsumption", skip_serializing_if = "Option::is_none")]
92 pub indicated_consumption: Option<Box<models::IndicatedConsumption>>,
93 #[serde(rename = "accountingRef", skip_serializing_if = "Option::is_none")]
94 pub accounting_ref: Option<Box<models::AccountingRef>>,
95 #[serde(rename = "grantedReductionAmounts", skip_serializing_if = "Option::is_none")]
96 pub granted_reduction_amounts: Option<Box<models::GrantedReductionAmounts>>,
97 #[serde(rename = "pickUpPlaces")]
99 pub pick_up_places: Vec<models::ContinuousServicePickUpPlace>,
100 #[serde(rename = "tipRef", skip_serializing_if = "Option::is_none")]
102 pub tip_ref: Option<String>,
103}
104
105impl ContinuousServiceBookingPart {
106 pub fn new(object_type: String, id: String, created_on: String, valid_from: String, price: models::Price, status: models::BookingPartStatus, passenger_ids: Vec<String>, refundable: models::RefundType, exchangeable: models::ExchangeableType, pick_up_places: Vec<models::ContinuousServicePickUpPlace>) -> ContinuousServiceBookingPart {
108 ContinuousServiceBookingPart {
109 object_type,
110 id,
111 summary: None,
112 created_on,
113 confirmable_until: None,
114 valid_from,
115 valid_until: None,
116 confirmed_on: None,
117 confirmed_fulfillment_options: None,
118 price: Box::new(price),
119 refund_amount: None,
120 trip_coverage: None,
121 inbound_trip_coverage: None,
122 summary_product_id: None,
123 products: None,
124 status,
125 pricing_status: None,
126 offer_mode: None,
127 booking_part_code: None,
128 distributor_booking_ref: None,
129 retailer_booking_ref: None,
130 passenger_ids,
131 available_fulfillment_options: None,
132 refundable,
133 exchangeable,
134 after_sale_conditions: None,
135 after_sales_override_details: None,
136 applied_corporate_codes: None,
137 applied_passenger_types: None,
138 applied_promotion_codes: None,
139 applied_reductions: None,
140 indicated_consumption: None,
141 accounting_ref: None,
142 granted_reduction_amounts: None,
143 pick_up_places,
144 tip_ref: None,
145 }
146 }
147}
148