use crate::ids::{EdgeId, NodeId, Scope};
use crate::props::{PropValue, Props};
use serde::{Deserialize, Serialize};
use smol_str::SmolStr;
use std::collections::BTreeMap;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum Op {
CreateNode { id: NodeId, scope: Scope, label: SmolStr, props: Props },
SetNodeProps { id: NodeId, props: BTreeMap<String, Option<PropValue>> },
SetEmbedding { id: NodeId, model: String, vector: Vec<f32> },
RemoveNode { id: NodeId },
CreateEdge {
id: EdgeId, scope: Scope, ty: SmolStr,
from: NodeId, to: NodeId, props: Props,
valid_from: Option<i64>,
},
CloseEdge { id: EdgeId, valid_to: Option<i64> },
}