use jmap_types::UTCDate;
use serde::{Deserialize, Serialize};
#[non_exhaustive]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum BusyStatus {
Confirmed,
Tentative,
#[default]
Unavailable,
}
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BusyPeriod {
pub utc_start: UTCDate,
pub utc_end: UTCDate,
#[serde(default)]
pub busy_status: BusyStatus,
#[serde(skip_serializing_if = "Option::is_none")]
pub event: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<jmap_types::Id>,
#[serde(flatten, default, skip_serializing_if = "serde_json::Map::is_empty")]
pub extra: serde_json::Map<String, serde_json::Value>,
}