osdm_sys/models/
trip_summary.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 TripSummary {
18 #[serde(rename = "id")]
20 pub id: String,
21 #[serde(rename = "summary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
22 pub summary: Option<Option<String>>,
23 #[serde(rename = "externalRef", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
24 pub external_ref: Option<Option<String>>,
25 #[serde(rename = "startTime", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
27 pub start_time: Option<Option<String>>,
28 #[serde(rename = "endTime", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
30 pub end_time: Option<Option<String>>,
31 #[serde(rename = "duration", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33 pub duration: Option<Option<String>>,
34 #[serde(rename = "origin", skip_serializing_if = "Option::is_none")]
35 pub origin: Option<Box<models::PlaceRef>>,
36 #[serde(rename = "originName", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
38 pub origin_name: Option<Option<String>>,
39 #[serde(rename = "destination", skip_serializing_if = "Option::is_none")]
40 pub destination: Option<Box<models::PlaceRef>>,
41 #[serde(rename = "destinationName", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
43 pub destination_name: Option<Option<String>>,
44 #[serde(rename = "transfers", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
45 pub transfers: Option<Option<i32>>,
46 #[serde(rename = "distance", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
47 pub distance: Option<Option<i32>>,
48}
49
50impl TripSummary {
51 pub fn new(id: String) -> TripSummary {
53 TripSummary {
54 id,
55 summary: None,
56 external_ref: None,
57 start_time: None,
58 end_time: None,
59 duration: None,
60 origin: None,
61 origin_name: None,
62 destination: None,
63 destination_name: None,
64 transfers: None,
65 distance: None,
66 }
67 }
68}
69