use radicle::cob::{ObjectId, Timestamp, TypeName};
use radicle::crypto::PublicKey;
use radicle::git::Oid;
use radicle::identity::RepoId;
use radicle::node::Alias;
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Clone)]
#[serde(rename_all = "camelCase")]
pub struct TimelineEntry {
pub repo: RepoId,
pub node: PublicKey,
pub cob_id: ObjectId,
pub cob_title: String,
pub cob_status: String,
pub typename: TypeName,
pub last_operation_id: Option<Oid>,
pub operations: Vec<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
#[serde(rename_all = "camelCase")]
pub struct OperationEntry {
pub operation_id: Oid,
pub cob_id: ObjectId,
pub rid: RepoId,
pub timestamp: Timestamp,
pub actions: Vec<String>,
pub author: PublicKey,
pub author_alias: Option<Alias>,
pub typename: TypeName,
}