1use serde::{Deserialize, Serialize};
2
3pub const TARGET_PREFIX: &str = "/app/plugin";
4pub const CATALOG_LIST_TARGET: &str = "/app/plugin/catalog/list";
5pub const SYSTEM_CATALOG_JSON: &str = include_str!("../manifest/plugin-catalog.v1.json");
6pub const EXTENSION_VERSION: &str = "v1";
7pub const INSTALLED_LIST_TARGET: &str = "/app/plugin/installed/list";
8pub const DETAIL_GET_TARGET: &str = "/app/plugin/detail/get";
9pub const CANDIDATE_LIST_TARGET: &str = "/app/plugin/candidate/list";
10pub const ADD_START_TARGET: &str = "/app/plugin/add/start";
11pub const ADD_STATUS_TARGET: &str = "/app/plugin/add/status";
12pub const ADD_CANCEL_TARGET: &str = "/app/plugin/add/cancel";
13pub const REMOVE_TARGET: &str = "/app/plugin/remove";
14pub const PROFILE_UPDATE_TARGET: &str = "/app/plugin/profile/update";
15pub const SETTINGS_CHANGED_TARGET: &str = "/app/plugin/settings/changed";
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(rename_all = "camelCase", deny_unknown_fields)]
19pub struct PluginNodeRequest<T> {
20 pub node_id: String,
21 pub version: String,
22 pub payload: T,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct PluginNodeResponse<T> {
28 pub node_id: String,
29 pub node_type: String,
30 pub version: String,
31 pub data: T,
32}
33
34#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
35#[serde(rename_all = "camelCase")]
36pub struct SettingsChangedEvent {
37 pub version: String,
38 pub node_id: String,
39 pub node_type: String,
40 pub event_seq: u64,
41 pub section: String,
42 pub revision: u64,
43}