safing-portmaster/desktop/tauri/src-tauri/src/portapi/models/notification.rs

70 lines
1.5 KiB
Rust

use serde::*;
#[derive(Serialize, Deserialize, Debug, PartialEq)]
pub struct Notification {
#[serde(rename = "EventID")]
pub event_id: String,
#[serde(rename = "GUID")]
pub guid: String,
#[serde(rename = "Type")]
pub notification_type: NotificationType,
#[serde(rename = "Message")]
pub message: String,
#[serde(rename = "Title")]
pub title: String,
#[serde(rename = "Category")]
pub category: String,
#[serde(rename = "EventData")]
pub data: serde_json::Value,
#[serde(rename = "Expires")]
pub expires: u64,
#[serde(rename = "State")]
pub state: String,
#[serde(rename = "AvailableActions")]
pub actions: Vec<Action>,
#[serde(rename = "SelectedActionID")]
pub selected_action_id: String,
#[serde(rename = "ShowOnSystem")]
pub show_on_system: bool,
}
#[derive(Serialize, Deserialize, Debug, PartialEq)]
pub struct Action {
#[serde(rename = "ID")]
pub id: String,
#[serde(rename = "Text")]
pub text: String,
#[serde(rename = "Type")]
pub action_type: String,
#[serde(rename = "Payload")]
pub payload: serde_json::Value,
}
#[derive(Serialize, Deserialize, Debug, PartialEq)]
pub struct NotificationType(i32);
#[allow(dead_code)]
pub const INFO: NotificationType = NotificationType(0);
#[allow(dead_code)]
pub const WARN: NotificationType = NotificationType(1);
#[allow(dead_code)]
pub const PROMPT: NotificationType = NotificationType(2);
#[allow(dead_code)]
pub const ERROR: NotificationType = NotificationType(3);