use serde::Deserialize;
use super::common::*;

#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ReverseGeocodeResponse {
    pub latitude: Option<f64>,
    pub longitude: Option<f64>,
    pub plus_code: Option<String>,
    pub city: Option<String>,
    #[serde(rename = "localityName")]
    pub locality: Option<String>,
    pub postcode: Option<String>,
    pub principal_subdivision: Option<String>,
    pub principal_subdivision_code: Option<String>,
    pub country_name: Option<String>,
    pub country_code: Option<String>,
    pub continent: Option<String>,
    pub continent_code: Option<String>,
    pub is_european_union: Option<bool>,
    pub locality_info: Option<LocalityInfo>,
}

#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ReverseGeocodeWithTimezoneResponse {
    pub latitude: Option<f64>,
    pub longitude: Option<f64>,
    pub plus_code: Option<String>,
    pub city: Option<String>,
    #[serde(rename = "localityName")]
    pub locality: Option<String>,
    pub postcode: Option<String>,
    pub principal_subdivision: Option<String>,
    pub principal_subdivision_code: Option<String>,
    pub country_name: Option<String>,
    pub country_code: Option<String>,
    pub continent: Option<String>,
    pub continent_code: Option<String>,
    pub is_european_union: Option<bool>,
    pub locality_info: Option<LocalityInfo>,
    pub time_zone: Option<TimezoneResponse>,
}
