1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
16#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
17#[serde(tag = "objectType")]
18pub enum Place {
19 #[serde(rename="Address")]
20 Address {
21 #[serde(rename = "id")]
23 id: String,
24 #[serde(rename = "alternativeIds", skip_serializing_if = "Option::is_none")]
26 alternative_ids: Option<Vec<String>>,
27 #[serde(rename = "geoPosition", skip_serializing_if = "Option::is_none")]
28 geo_position: Option<Box<models::GeoPosition>>,
29 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
30 r#ref: Option<Box<models::PlaceRef>>,
31 #[serde(rename = "_links", skip_serializing_if = "Option::is_none")]
33 _links: Option<Vec<models::Link>>,
34 },
35 #[serde(rename="FareConnectionPoint")]
36 FareConnectionPoint {
37 #[serde(rename = "id")]
39 id: String,
40 #[serde(rename = "alternativeIds", skip_serializing_if = "Option::is_none")]
42 alternative_ids: Option<Vec<String>>,
43 #[serde(rename = "geoPosition", skip_serializing_if = "Option::is_none")]
44 geo_position: Option<Box<models::GeoPosition>>,
45 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
46 r#ref: Option<Box<models::PlaceRef>>,
47 #[serde(rename = "_links", skip_serializing_if = "Option::is_none")]
49 _links: Option<Vec<models::Link>>,
50 },
51 #[serde(rename="PointOfInterest")]
52 PointOfInterest {
53 #[serde(rename = "id")]
55 id: String,
56 #[serde(rename = "alternativeIds", skip_serializing_if = "Option::is_none")]
58 alternative_ids: Option<Vec<String>>,
59 #[serde(rename = "geoPosition", skip_serializing_if = "Option::is_none")]
60 geo_position: Option<Box<models::GeoPosition>>,
61 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
62 r#ref: Option<Box<models::PlaceRef>>,
63 #[serde(rename = "_links", skip_serializing_if = "Option::is_none")]
65 _links: Option<Vec<models::Link>>,
66 },
67 #[serde(rename="StopPlace")]
68 StopPlace {
69 #[serde(rename = "id")]
71 id: String,
72 #[serde(rename = "alternativeIds", skip_serializing_if = "Option::is_none")]
74 alternative_ids: Option<Vec<String>>,
75 #[serde(rename = "geoPosition", skip_serializing_if = "Option::is_none")]
76 geo_position: Option<Box<models::GeoPosition>>,
77 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
78 r#ref: Option<Box<models::PlaceRef>>,
79 #[serde(rename = "_links", skip_serializing_if = "Option::is_none")]
81 _links: Option<Vec<models::Link>>,
82 },
83}
84
85impl Default for Place {
86 fn default() -> Self {
87 Self::Address {
88 id: Default::default(),
89 alternative_ids: Default::default(),
90 geo_position: Default::default(),
91 r#ref: Default::default(),
92 _links: Default::default(),
93 }
94
95 }
96}
97
98