use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug)] pub struct Data { pub data: T, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteDataCategory { pub id: u32, pub name: String, pub name_plural: String, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteDataLocationCoordinates { pub latitude: f64, pub longitude: f64, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteDataLocationAddress { pub route: String, pub city: String, pub zip_code: String, pub region: String, pub country_code: String, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteDataLocation { pub coordinates: SiteDataLocationCoordinates, pub address: SiteDataLocationAddress, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteDataForecast { pub opened: bool, pub occupancy: Option, // waiting_time pub waiting_time_overflow: bool, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteDataNotice { pub message: String, pub url: Option, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteDataService { pub id: u32, pub name: String, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteDataInfo { pub title: String, pub description: String, pub url: Option, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteDataStatus { pub state: String, pub text: String, pub color: String, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteData { pub id: uuid::Uuid, pub slug: String, pub parent: Option, pub primary_name: String, pub secondary_name: String, pub concat_name: String, pub categories: Vec, pub time_zone: String, pub location: SiteDataLocation, pub phone_number: Option, pub email: Option, pub url: Option, pub notices: Vec, // messages pub estimated_distance: f64, pub current_forecast: SiteDataForecast, pub today_forecasts: Vec, // events pub children: Vec, // actions pub services: Vec, pub infos: Vec, pub poster_image: String, pub image: Option>, // status pub closed: bool, pub booking_available: bool, pub extended_forecasts: bool, pub booking_url: Option, pub validated: bool, #[serde(rename = "validationStatus")] pub validation_status: String, #[serde(rename = "publicationStatus")] pub publication_status: String, } #[derive(Serialize, Debug)] pub struct SiteSearch { pub search_query: String, } #[derive(Serialize, Deserialize, Debug)] pub struct SiteSearchResponse { pub page: u32, pub max_size: u32, pub results: Vec, }