jetstream_oxide/events/
commit.rs1use atrium_api::record::KnownRecord;
2use serde::Deserialize;
3
4use crate::{
5 events::EventInfo,
6 exports,
7};
8
9#[derive(Deserialize, Debug)]
11#[serde(untagged, rename_all = "snake_case")]
12pub enum CommitEvent {
13 Create {
14 #[serde(flatten)]
15 info: EventInfo,
16 commit: CommitData,
17 },
18 Update {
19 #[serde(flatten)]
20 info: EventInfo,
21 commit: CommitData,
22 },
23 Delete {
24 #[serde(flatten)]
25 info: EventInfo,
26 commit: CommitInfo,
27 },
28}
29
30#[derive(Deserialize, Debug)]
32#[serde(rename_all = "snake_case")]
33pub enum CommitType {
34 Create,
35 Update,
36 Delete,
37}
38
39#[derive(Deserialize, Debug)]
42pub struct CommitInfo {
43 pub operation: CommitType,
45 pub rev: String,
46 pub rkey: String,
47 pub collection: exports::Nsid,
49}
50
51#[derive(Deserialize, Debug)]
54pub struct CommitData {
55 #[serde(flatten)]
56 pub info: CommitInfo,
57 pub cid: exports::Cid,
59 pub record: KnownRecord,
61}