use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct BookedOffer {
#[serde(rename = "offerId")]
pub offer_id: String,
#[serde(rename = "externalRef", skip_serializing_if = "Option::is_none")]
pub external_ref: Option<String>,
#[serde(rename = "summary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub summary: Option<Option<String>>,
#[serde(rename = "admissions", skip_serializing_if = "Option::is_none")]
pub admissions: Option<Vec<models::Admission>>,
#[serde(rename = "reservations", skip_serializing_if = "Option::is_none")]
pub reservations: Option<Vec<models::Reservation>>,
#[serde(rename = "ancillaries", skip_serializing_if = "Option::is_none")]
pub ancillaries: Option<Vec<models::Ancillary>>,
#[serde(rename = "continuousServices", skip_serializing_if = "Option::is_none")]
pub continuous_services: Option<Vec<models::ContinuousServiceBookingPart>>,
#[serde(rename = "fees", skip_serializing_if = "Option::is_none")]
pub fees: Option<Vec<models::Fee>>,
#[serde(rename = "fares", skip_serializing_if = "Option::is_none")]
pub fares: Option<Vec<models::Fare>>,
#[serde(rename = "tripCoverage", skip_serializing_if = "Option::is_none")]
pub trip_coverage: Option<Box<models::TripCoverage>>,
#[serde(rename = "inboundTripCoverage", skip_serializing_if = "Option::is_none")]
pub inbound_trip_coverage: Option<Box<models::TripCoverage>>,
#[serde(rename = "appliedThroughTicketTags", skip_serializing_if = "Option::is_none")]
pub applied_through_ticket_tags: Option<Vec<String>>,
#[serde(rename = "products", skip_serializing_if = "Option::is_none")]
pub products: Option<Vec<models::Product>>,
}
impl BookedOffer {
pub fn new(offer_id: String) -> BookedOffer {
BookedOffer {
offer_id,
external_ref: None,
summary: None,
admissions: None,
reservations: None,
ancillaries: None,
continuous_services: None,
fees: None,
fares: None,
trip_coverage: None,
inbound_trip_coverage: None,
applied_through_ticket_tags: None,
products: None,
}
}
}