osdm_sys/models/
travel_validity.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 TravelValidity {
18 #[serde(rename = "validTravelDates", skip_serializing_if = "Option::is_none")]
19 pub valid_travel_dates: Option<Box<models::Calendar>>,
20 #[serde(rename = "validityRange")]
21 pub validity_range: Box<models::ValidityRange>,
22 #[serde(rename = "excludedTimeRanges", skip_serializing_if = "Option::is_none")]
24 pub excluded_time_ranges: Option<Vec<models::ExcludedTimeRange>>,
25 #[serde(rename = "numberOfTravelDays", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
27 pub number_of_travel_days: Option<Option<i32>>,
28 #[serde(rename = "returnConstraint", skip_serializing_if = "Option::is_none")]
29 pub return_constraint: Option<Box<models::ReturnConstraint>>,
30 #[serde(rename = "trainValidity", skip_serializing_if = "Option::is_none")]
31 pub train_validity: Option<Box<models::TrainValidity>>,
32 #[serde(rename = "validityType", skip_serializing_if = "Option::is_none")]
34 pub validity_type: Option<String>,
35 #[serde(rename = "tripAllocationConstraint", skip_serializing_if = "Option::is_none")]
36 pub trip_allocation_constraint: Option<Box<models::TripAllocationConstraint>>,
37 #[serde(rename = "tripInterruptionConstraint", skip_serializing_if = "Option::is_none")]
38 pub trip_interruption_constraint: Option<Box<models::TripInterruptionConstraint>>,
39}
40
41impl TravelValidity {
42 pub fn new(validity_range: models::ValidityRange) -> TravelValidity {
44 TravelValidity {
45 valid_travel_dates: None,
46 validity_range: Box::new(validity_range),
47 excluded_time_ranges: None,
48 number_of_travel_days: None,
49 return_constraint: None,
50 train_validity: None,
51 validity_type: None,
52 trip_allocation_constraint: None,
53 trip_interruption_constraint: None,
54 }
55 }
56}
57