1use radicle::cob::{ObjectId, Timestamp, TypeName};
2use radicle::crypto::PublicKey;
3use radicle::git::Oid;
4use radicle::identity::RepoId;
5use radicle::node::Alias;
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Serialize, Deserialize, Clone)]
9#[serde(rename_all = "camelCase")]
10pub struct TimelineEntry {
11 pub repo: RepoId,
12 pub node: PublicKey,
13 pub cob_id: ObjectId,
14 pub cob_title: String,
15 pub cob_status: String,
16 pub typename: TypeName,
17 pub last_operation_id: Option<Oid>,
18 pub operations: Vec<String>,
19}
20
21#[derive(Debug, Serialize, Deserialize, Clone)]
22#[serde(rename_all = "camelCase")]
23pub struct OperationEntry {
24 pub operation_id: Oid,
25 pub cob_id: ObjectId,
26 pub rid: RepoId,
27 pub timestamp: Timestamp,
28 pub actions: Vec<String>,
29 pub author: PublicKey,
30 pub author_alias: Option<Alias>,
31 pub typename: TypeName,
32}