use async_trait::async_trait;
use crate::document::DocumentId;
use crate::entry::LogId;
use crate::identity::PublicKey;
use crate::schema::SchemaId;
use crate::storage_provider::error::LogStorageError;
#[async_trait]
pub trait LogStore {
async fn insert_log(
&self,
log_id: &LogId,
public_key: &PublicKey,
schema: &SchemaId,
document: &DocumentId,
) -> Result<bool, LogStorageError>;
async fn get_log_id(
&self,
public_key: &PublicKey,
document_id: &DocumentId,
) -> Result<Option<LogId>, LogStorageError>;
async fn latest_log_id(&self, public_key: &PublicKey)
-> Result<Option<LogId>, LogStorageError>;
}