use std::collections::HashMap; use anyhow::Error; use collab::core::collab::CollabDocState; use collab_entity::CollabType; use lib_infra::future::FutureResult; pub type CollabDocStateByOid = HashMap; /// A trait for database cloud service. /// Each kind of server should implement this trait. Check out the [AppFlowyServerProvider] of /// [flowy-server] crate for more information. pub trait DatabaseCloudService: Send + Sync { fn get_database_object_doc_state( &self, object_id: &str, collab_type: CollabType, workspace_id: &str, ) -> FutureResult; fn batch_get_database_object_doc_state( &self, object_ids: Vec, object_ty: CollabType, workspace_id: &str, ) -> FutureResult; fn get_database_collab_object_snapshots( &self, object_id: &str, limit: usize, ) -> FutureResult, Error>; } pub struct DatabaseSnapshot { pub snapshot_id: i64, pub database_id: String, pub data: Vec, pub created_at: i64, }