use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct DatedJourney {
#[serde(rename = "operatingDayRef", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub operating_day_ref: Option<Option<String>>,
#[serde(rename = "mode", skip_serializing_if = "Option::is_none")]
pub mode: Option<Box<models::Mode>>,
#[serde(rename = "productCategory", skip_serializing_if = "Option::is_none")]
pub product_category: Option<Box<models::ProductCategory>>,
#[serde(rename = "publishedServiceName", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub published_service_name: Option<Option<String>>,
#[serde(rename = "vehicleNumbers")]
pub vehicle_numbers: Vec<String>,
#[serde(rename = "lineNumbers", skip_serializing_if = "Option::is_none")]
pub line_numbers: Option<Vec<String>>,
#[serde(rename = "serviceStatus", skip_serializing_if = "Option::is_none")]
pub service_status: Option<Box<models::ServiceStatus>>,
#[serde(rename = "situationFullRefs", skip_serializing_if = "Option::is_none")]
pub situation_full_refs: Option<Vec<String>>,
#[serde(rename = "carriers")]
pub carriers: Vec<models::NamedCompany>,
#[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
pub attributes: Option<Vec<models::GeneralAttribute>>,
}
impl DatedJourney {
pub fn new(vehicle_numbers: Vec<String>, carriers: Vec<models::NamedCompany>) -> DatedJourney {
DatedJourney {
operating_day_ref: None,
mode: None,
product_category: None,
published_service_name: None,
vehicle_numbers,
line_numbers: None,
service_status: None,
situation_full_refs: None,
carriers,
attributes: None,
}
}
}