use crate::schema::{ChangeDetails, PropertyChange, SchemaObjectType};
use linkrs_core::StorageResult;
use super::core::VertexTable;
impl VertexTable {
pub(super) fn record_schema_change(&mut self, details: ChangeDetails) -> StorageResult<()> {
let mut history_guard = self
.version_history
.lock()
.map_err(|_| linkrs_core::StorageError::db_error("Failed to lock version_history"))?;
let next_version = history_guard.latest_version() + 1;
self.schema.schema_version = next_version;
let change = PropertyChange::new(
next_version,
SchemaObjectType::Vertex,
self.label,
self.label_name.clone(),
details,
);
history_guard.add_change(change);
Ok(())
}
pub fn rebuild_schema_change_from_redo(&mut self, details: ChangeDetails) -> StorageResult<()> {
self.record_schema_change(details)
}
}