gistools/readers/gbfs/schema_v1/
station_information.rs1use crate::readers::GBFSRentalUri;
2use alloc::{string::String, vec::Vec};
3use serde::{Deserialize, Serialize};
4
5pub type GBFSStationInformationV1 = GBFSStationInformationV11;
12
13#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
15pub enum GBFSStationInformationRentalMethodsV1 {
16 #[default]
18 KEY,
19 CREDITCARD,
21 PAYPASS,
23 APPLEPAY,
25 ANDROIDPAY,
27 TRANSITCARD,
29 ACCOUNTNUMBER,
31 PHONE,
33}
34
35#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
37pub struct GBFSStationInformationV11Station {
38 pub station_id: String,
40 pub name: String,
42 pub short_name: Option<String>,
44 pub lat: f64,
46 pub lon: f64,
48 pub address: Option<String>,
50 pub cross_street: Option<String>,
52 pub region_id: Option<String>,
54 pub post_code: Option<String>,
56 pub rental_methods: Option<Vec<GBFSStationInformationRentalMethodsV1>>,
58 pub capacity: Option<u64>,
60 pub rental_uris: Option<GBFSRentalUri>,
62}
63
64#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
66pub struct GBFSStationInformationDataV11 {
67 pub stations: Vec<GBFSStationInformationV11Station>,
69}
70
71#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
73pub struct GBFSStationInformationV11 {
74 pub last_updated: u64,
76 pub ttl: u64,
78 pub version: String,
80 pub data: GBFSStationInformationDataV11,
82}
83
84#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
86pub struct GBFSStationInformationV10Station {
87 pub station_id: String,
89 pub name: String,
91 pub short_name: Option<String>,
93 pub lat: f64,
95 pub lon: f64,
97 pub address: Option<String>,
99 pub cross_street: Option<String>,
101 pub region_id: Option<String>,
103 pub post_code: Option<String>,
105 pub rental_methods: Option<Vec<GBFSStationInformationRentalMethodsV1>>,
107 pub capacity: Option<u64>,
109}
110
111#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
113pub struct GBFSStationInformationDataV10 {
114 pub stations: Vec<GBFSStationInformationV10Station>,
116}
117
118#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
120pub struct GBFSStationInformationV10 {
121 pub last_updated: u64,
123 pub ttl: u64,
125 pub data: GBFSStationInformationDataV10,
127}