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 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 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 DeleteBlock { pub block_id: String, }