/* * SPDX-FileCopyrightText: 2020 Stalwart Labs LLC * * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL */ use crate::object::email::{EmailProperty, EmailValue}; use crate::types::state::State; use jmap_tools::Value; use types::{id::Id, type_state::DataType}; use utils::map::vec_map::VecMap; #[derive(serde::Serialize, Debug)] #[serde(tag = "@type")] pub enum PushObject { StateChange { changed: VecMap>, }, EmailPush { #[serde(rename = "accountId")] account_id: Id, emails: Vec>, #[serde(skip_serializing_if = "Option::is_none")] state: Option, }, CalendarAlert { #[serde(rename = "accountId")] account_id: Id, #[serde(rename = "calendarEventId")] calendar_event_id: Id, uid: String, #[serde(rename = "recurrenceId")] recurrence_id: Option, #[serde(rename = "alertId")] alert_id: String, }, }