use crate::common::{ActorPayload, AffectedObject, SourcePayload, TargetRef}; #[derive(Debug, Clone, PartialEq, Eq)] pub struct CommandEnvelope { pub name: String, pub command_id: String, pub idempotency_key: Option, pub actor: ActorPayload, pub source: SourcePayload, pub target: Option, pub payload: T, pub reason: Option, pub refs: Vec, pub dry_run: bool, pub validate_only: bool, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct CommandResult { pub ok: bool, pub command_id: String, pub event_ids: Vec, pub affected_objects: Vec, pub revision: Option, pub warnings: Vec, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct CreateWorkspace { pub name: String, pub slug: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct CreatePage { pub title: String, pub parent_page_id: Option, pub position: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct UpdatePageTitle { pub page_id: String, pub title: String, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct CreateDocumentPage { pub page_id: String, pub parent_page_id: Option, pub title: String, pub workspace_seed_id: String, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct MoveDocumentPage { pub page_id: String, pub parent_page_id: Option, pub sort_order: i64, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct DeleteDocumentPage { pub page_id: String, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct RestoreDocumentPage { pub page_id: String, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct DuplicateDocumentPage { pub source_page_id: String, pub new_page_id: String, pub title: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct CopyTreeDocumentPages { pub items_json: String, pub target_parent_page_id: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct UpdatePageStats { pub page_id: String, pub word_count: i64, pub character_count: i64, pub block_count: i64, pub todo_total: i64, pub todo_done: i64, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct UpdatePageOptions { pub page_id: String, pub wide_layout: Option, pub small_text: Option, pub show_heading_numbers: Option, pub show_toc: Option, pub show_structure: Option, pub protect_editing: Option, pub show_word_count: Option, pub collapse_backlinks: Option, pub page_font: Option, pub layout_density: Option, pub hide_child_pages: Option, pub show_block_ref_count: Option, pub embed_default_block_id: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct ReplaceMediaAssetStorage { pub asset_id: String, pub storage_id: String, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct SavePageContent { pub page_id: String, pub workspace_id: Option, pub revision: Option, pub content_json: String, pub conflict_detection_key: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct PatchBlock { pub page_id: String, pub block_id: String, pub workspace_id: Option, pub revision: Option, pub block_snapshot_json: String, pub conflict_detection_key: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct PatchPageBlock { pub page_id: String, pub block_id: String, pub workspace_id: Option, pub revision: Option, pub block_snapshot_json: String, pub conflict_detection_key: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct PutMindmap { pub document_id: String, pub mindmap_id: String, pub data_json: String, pub create_only: bool, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct InsertBlock { pub page_id: String, pub block_type: String, pub content: String, pub parent_block_id: Option, pub prev_block_id: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct UpdateBlock { pub block_id: String, pub patch_content: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct MoveBlock { pub block_id: String, pub new_parent_block_id: Option, pub new_page_id: Option, pub prev_block_id: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct EmbedBlock { pub source_document_id: String, pub source_block_id: String, pub target_document_id: String, pub target_block_id: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct DeleteBlock { pub block_id: String, }