use serde::{Deserialize, Serialize};
use crate::entity::crdt_event;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CrdtEventVO {
pub clock: i32,
pub peer: String,
pub payload: String,
pub revert: Option<String>,
}
impl From<crdt_event::Model> for CrdtEventVO {
fn from(value: crdt_event::Model) -> Self {
Self {
clock: value.clock,
peer: value.peer,
payload: value.payload,
revert: value.revert,
}
}
}
impl Into<crdt_event::Model> for CrdtEventVO {
fn into(self) -> crdt_event::Model {
crdt_event::Model {
clock: self.clock,
peer: self.peer,
payload: self.payload,
revert: self.revert.map(|d| serde_json::to_string(&d).unwrap()),
}
}
}