kagi_sync/domain/
remote_config.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug, Clone)]
4pub struct AdminRemoteConfig {
5 pub version: u8,
6 pub remote: String,
7 pub server_fingerprint: String,
8}
9
10#[derive(Serialize, Deserialize, Debug, Clone)]
11pub struct ServerKeyResponse {
12 pub version: u8,
13 pub server_key_id: String,
14 pub recipient: String,
15 pub fingerprint: String,
16}
17
18#[derive(Serialize, Deserialize, Debug, Clone)]
19pub struct RemoteMetadata {
20 pub version: u8,
21 pub project_id: String,
22 pub remote: String,
23 pub server_key_id: String,
24 pub server_fingerprint: String,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub local_revision: Option<i64>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub last_pulled_at: Option<String>,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub last_pushed_at: Option<String>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub last_manifest_hash: Option<String>,
33 #[serde(default, skip_serializing_if = "Option::is_none")]
34 pub pending_token_ids: Option<Vec<String>>,
35 #[serde(default, skip_serializing_if = "Option::is_none")]
36 pub pending_accepted_member_ids: Option<Vec<String>>,
37}