/*
 * Zernio API
 *
 * API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
 *
 * The version of the OpenAPI document: 1.0.1
 * Contact: support@zernio.com
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GetGoogleBusinessLocationDetails200Response {
    #[serde(rename = "success", skip_serializing_if = "Option::is_none")]
    pub success: Option<bool>,
    #[serde(rename = "accountId", skip_serializing_if = "Option::is_none")]
    pub account_id: Option<String>,
    #[serde(rename = "locationId", skip_serializing_if = "Option::is_none")]
    pub location_id: Option<String>,
    #[serde(rename = "location", skip_serializing_if = "Option::is_none")]
    pub location: Option<Box<models::GetGoogleBusinessLocationDetails200ResponseLocation>>,
    /// Business name
    #[serde(rename = "title", skip_serializing_if = "Option::is_none")]
    pub title: Option<String>,
    #[serde(rename = "regularHours", skip_serializing_if = "Option::is_none")]
    pub regular_hours: Option<Box<models::GetGoogleBusinessLocationDetails200ResponseRegularHours>>,
    #[serde(rename = "specialHours", skip_serializing_if = "Option::is_none")]
    pub special_hours: Option<Box<models::GetGoogleBusinessLocationDetails200ResponseSpecialHours>>,
    #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
    pub profile: Option<Box<models::GetGoogleBusinessLocationDetails200ResponseProfile>>,
    #[serde(rename = "websiteUri", skip_serializing_if = "Option::is_none")]
    pub website_uri: Option<String>,
    #[serde(rename = "phoneNumbers", skip_serializing_if = "Option::is_none")]
    pub phone_numbers: Option<Box<models::GetGoogleBusinessLocationDetails200ResponsePhoneNumbers>>,
    #[serde(rename = "categories", skip_serializing_if = "Option::is_none")]
    pub categories: Option<Box<models::GetGoogleBusinessLocationDetails200ResponseCategories>>,
    /// Services offered (returned when readMask includes 'serviceItems')
    #[serde(rename = "serviceItems", skip_serializing_if = "Option::is_none")]
    pub service_items:
        Option<Vec<models::GetGoogleBusinessLocationDetails200ResponseServiceItemsInner>>,
}

impl GetGoogleBusinessLocationDetails200Response {
    pub fn new() -> GetGoogleBusinessLocationDetails200Response {
        GetGoogleBusinessLocationDetails200Response {
            success: None,
            account_id: None,
            location_id: None,
            location: None,
            title: None,
            regular_hours: None,
            special_hours: None,
            profile: None,
            website_uri: None,
            phone_numbers: None,
            categories: None,
            service_items: None,
        }
    }
}
