Skip to main content

kagi_sync/domain/
remote_config.rs

1use 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}