use serde::{Serialize, Deserialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum ServiceName {
#[default]
BackgroundFetch,
BackgroundSync,
PushMessaging,
Notifications,
PaymentHandler,
PeriodicBackgroundSync,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct EventMetadata {
pub key: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct BackgroundServiceEvent {
pub timestamp: crate::network::TimeSinceEpoch,
pub origin: String,
pub serviceWorkerRegistrationId: crate::serviceworker::RegistrationID,
pub service: ServiceName,
pub eventName: String,
pub instanceId: String,
pub eventMetadata: Vec<EventMetadata>,
pub storageKey: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct StartObservingParams {
pub service: ServiceName,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct StopObservingParams {
pub service: ServiceName,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetRecordingParams {
pub shouldRecord: bool,
pub service: ServiceName,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClearEventsParams {
pub service: ServiceName,
}