use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct BookingSearchResult {
#[serde(rename = "purchaser", skip_serializing_if = "Option::is_none")]
pub purchaser: Option<Box<models::Purchaser>>,
#[serde(rename = "passengers")]
pub passengers: Vec<models::Passenger>,
#[serde(rename = "tripSummaries", skip_serializing_if = "Option::is_none")]
pub trip_summaries: Option<Vec<models::TripSummary>>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "bookingCode", skip_serializing_if = "Option::is_none")]
pub booking_code: Option<String>,
#[serde(rename = "externalRef", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub external_ref: Option<Option<String>>,
#[serde(rename = "provisionalPrice", skip_serializing_if = "Option::is_none")]
pub provisional_price: Option<Box<models::Price>>,
#[serde(rename = "provisionalRefundAmount", skip_serializing_if = "Option::is_none")]
pub provisional_refund_amount: Option<Box<models::Price>>,
#[serde(rename = "confirmedPrice", skip_serializing_if = "Option::is_none")]
pub confirmed_price: Option<Box<models::Price>>,
#[serde(rename = "bookedOfferSummaries")]
pub booked_offer_summaries: Vec<models::BookedOfferSummary>,
}
impl BookingSearchResult {
pub fn new(passengers: Vec<models::Passenger>, id: String, booked_offer_summaries: Vec<models::BookedOfferSummary>) -> BookingSearchResult {
BookingSearchResult {
purchaser: None,
passengers,
trip_summaries: None,
id,
booking_code: None,
external_ref: None,
provisional_price: None,
provisional_refund_amount: None,
confirmed_price: None,
booked_offer_summaries,
}
}
}