osdm_sys/models/
booked_offer.rs1use 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 BookedOffer {
18 #[serde(rename = "offerId")]
20 pub offer_id: String,
21 #[serde(rename = "externalRef", skip_serializing_if = "Option::is_none")]
23 pub external_ref: Option<String>,
24 #[serde(rename = "summary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
26 pub summary: Option<Option<String>>,
27 #[serde(rename = "admissions", skip_serializing_if = "Option::is_none")]
28 pub admissions: Option<Vec<models::Admission>>,
29 #[serde(rename = "reservations", skip_serializing_if = "Option::is_none")]
30 pub reservations: Option<Vec<models::Reservation>>,
31 #[serde(rename = "ancillaries", skip_serializing_if = "Option::is_none")]
32 pub ancillaries: Option<Vec<models::Ancillary>>,
33 #[serde(rename = "continuousServices", skip_serializing_if = "Option::is_none")]
34 pub continuous_services: Option<Vec<models::ContinuousServiceBookingPart>>,
35 #[serde(rename = "fees", skip_serializing_if = "Option::is_none")]
36 pub fees: Option<Vec<models::Fee>>,
37 #[serde(rename = "fares", skip_serializing_if = "Option::is_none")]
38 pub fares: Option<Vec<models::Fare>>,
39 #[serde(rename = "tripCoverage", skip_serializing_if = "Option::is_none")]
40 pub trip_coverage: Option<Box<models::TripCoverage>>,
41 #[serde(rename = "inboundTripCoverage", skip_serializing_if = "Option::is_none")]
42 pub inbound_trip_coverage: Option<Box<models::TripCoverage>>,
43 #[serde(rename = "appliedThroughTicketTags", skip_serializing_if = "Option::is_none")]
44 pub applied_through_ticket_tags: Option<Vec<String>>,
45 #[serde(rename = "products", skip_serializing_if = "Option::is_none")]
46 pub products: Option<Vec<models::Product>>,
47}
48
49impl BookedOffer {
50 pub fn new(offer_id: String) -> BookedOffer {
52 BookedOffer {
53 offer_id,
54 external_ref: None,
55 summary: None,
56 admissions: None,
57 reservations: None,
58 ancillaries: None,
59 continuous_services: None,
60 fees: None,
61 fares: None,
62 trip_coverage: None,
63 inbound_trip_coverage: None,
64 applied_through_ticket_tags: None,
65 products: None,
66 }
67 }
68}
69