use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct ExchangeOperation {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<models::ExchangeStatus>,
#[serde(rename = "exchangeOffers", skip_serializing_if = "Option::is_none")]
pub exchange_offers: Option<Vec<models::ExchangeOffer>>,
#[serde(rename = "ticketTimeLimit", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub ticket_time_limit: Option<Option<String>>,
#[serde(rename = "fulfillmentType", skip_serializing_if = "Option::is_none")]
pub fulfillment_type: Option<String>,
#[serde(rename = "fulfillments", skip_serializing_if = "Option::is_none")]
pub fulfillments: Option<Vec<models::Fulfillment>>,
#[serde(rename = "issuedVouchers", skip_serializing_if = "Option::is_none")]
pub issued_vouchers: Option<Vec<models::VoucherInformation>>,
#[serde(rename = "trips", skip_serializing_if = "Option::is_none")]
pub trips: Option<Vec<models::Trip>>,
}
impl ExchangeOperation {
pub fn new(id: String) -> ExchangeOperation {
ExchangeOperation {
id,
status: None,
exchange_offers: None,
ticket_time_limit: None,
fulfillment_type: None,
fulfillments: None,
issued_vouchers: None,
trips: None,
}
}
}