#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(remote = "Self")]
pub struct SdkUpdateBookingConfigurationRequestApplicationJson {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub conflict_scope: Option<SdkUpdateBookingConfigurationRequestApplicationJsonConflictScope>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub timezone: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub duration_minutes: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub capacity_per_slot: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub min_notice_minutes: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_advance_days: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub buffer_before_minutes: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub buffer_after_minutes: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub availability:
Option<Vec<UpdateBookingConfigurationRequestApplicationJsonPropertyAvailabilityItem>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub provider_connection_ids: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub video_provider: Option<SdkUpdateBookingConfigurationRequestApplicationJsonVideoProvider>,
#[serde(
skip_serializing_if = "Option::is_none",
default,
deserialize_with = "crate::runtime_schema::present_nullable"
)]
pub video_provider_connection_id: Option<Option<i64>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reminders_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reminder_offset_value: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reminder_offset_unit:
Option<SdkUpdateBookingConfigurationRequestApplicationJsonReminderOffsetUnit>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub meta: Option<UpdateBookingConfigurationRequestApplicationJsonPropertyMeta>,
#[serde(default, flatten)]
pub additional_properties: std::collections::HashMap<String, serde_json::Value>,
}
impl Serialize for SdkUpdateBookingConfigurationRequestApplicationJson {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
Self::serialize(self, serializer)
}
}
impl<'de> Deserialize<'de> for SdkUpdateBookingConfigurationRequestApplicationJson {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let mut value = serde_json::Value::deserialize(deserializer)?;
crate::runtime_schema::model(
&value,
"SdkUpdateBookingConfigurationRequestApplicationJson",
false,
)
.map_err(serde::de::Error::custom)?;
crate::runtime_schema::retain_model_fields(
&mut value,
"SdkUpdateBookingConfigurationRequestApplicationJson",
);
Self::deserialize(value).map_err(serde::de::Error::custom)
}
}
impl SdkUpdateBookingConfigurationRequestApplicationJson {
pub fn validate_request(&self) -> Result<(), crate::error::Error> {
let value = serde_json::to_value(self)
.map_err(|e| crate::error::Error::Serialization(e.to_string()))?;
crate::runtime_schema::model(
&value,
"SdkUpdateBookingConfigurationRequestApplicationJson",
true,
)
}
}