use anyhow::Error; use collab::core::collab::DataSource; use collab_entity::CollabType; use lib_infra::future::FutureResult; use std::collections::HashMap; 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. /// /// returns the doc state of the object with the given object_id. /// None if the object is not found. pub trait DatabaseCloudService: Send + Sync { fn get_database_object_doc_state( &self, object_id: &str, collab_type: CollabType, workspace_id: &str, ) -> FutureResult>, Error>; 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, }