Skip to main content

edgequake_sdk/types/
workspaces.rs

1//! Workspace types.
2
3use serde::{Deserialize, Serialize};
4
5/// Create workspace request.
6#[derive(Debug, Clone, Serialize)]
7pub struct CreateWorkspaceRequest {
8    pub name: String,
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub slug: Option<String>,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub description: Option<String>,
13}
14
15/// Workspace summary.
16#[derive(Debug, Clone, Deserialize)]
17pub struct WorkspaceInfo {
18    pub id: String,
19    pub name: String,
20    #[serde(default)]
21    pub slug: Option<String>,
22    #[serde(default)]
23    pub description: Option<String>,
24    #[serde(default)]
25    pub tenant_id: Option<String>,
26    #[serde(default)]
27    pub created_at: Option<String>,
28}
29
30/// Workspace statistics.
31#[derive(Debug, Clone, Deserialize)]
32pub struct WorkspaceStats {
33    pub workspace_id: String,
34    #[serde(default)]
35    pub document_count: u32,
36    #[serde(default)]
37    pub entity_count: u32,
38    #[serde(default)]
39    pub relationship_count: u32,
40    #[serde(default)]
41    pub chunk_count: u32,
42    #[serde(default)]
43    pub query_count: u32,
44    #[serde(default)]
45    pub storage_size_bytes: u64,
46}
47
48/// Rebuild response.
49#[derive(Debug, Clone, Deserialize)]
50pub struct RebuildResponse {
51    pub status: String,
52    #[serde(default)]
53    pub message: Option<String>,
54    #[serde(default)]
55    pub track_id: Option<String>,
56}