/*
 * 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};

/// GoogleBusinessPlatformDataEventSchedule : Event date/time range. Uses Google's date format (NOT ISO 8601).
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GoogleBusinessPlatformDataEventSchedule {
    #[serde(rename = "startDate")]
    pub start_date: Box<models::GoogleBusinessPlatformDataEventScheduleStartDate>,
    #[serde(rename = "startTime", skip_serializing_if = "Option::is_none")]
    pub start_time: Option<Box<models::GoogleBusinessPlatformDataEventScheduleStartTime>>,
    #[serde(rename = "endDate")]
    pub end_date: Box<models::GoogleBusinessPlatformDataEventScheduleEndDate>,
    #[serde(rename = "endTime", skip_serializing_if = "Option::is_none")]
    pub end_time: Option<Box<models::GoogleBusinessPlatformDataEventScheduleEndTime>>,
}

impl GoogleBusinessPlatformDataEventSchedule {
    /// Event date/time range. Uses Google's date format (NOT ISO 8601).
    pub fn new(
        start_date: models::GoogleBusinessPlatformDataEventScheduleStartDate,
        end_date: models::GoogleBusinessPlatformDataEventScheduleEndDate,
    ) -> GoogleBusinessPlatformDataEventSchedule {
        GoogleBusinessPlatformDataEventSchedule {
            start_date: Box::new(start_date),
            start_time: None,
            end_date: Box::new(end_date),
            end_time: None,
        }
    }
}
