backbone_integrations/exports/
events.rs1use serde::{Deserialize, Serialize};
9use chrono::{DateTime, Utc};
10
11use super::types::*;
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct IntegrationConnectorCreatedEvent {
20 pub id: IntegrationConnectorId,
21 pub data: IntegrationConnectorDto,
22 pub occurred_at: DateTime<Utc>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct IntegrationConnectorUpdatedEvent {
28 pub id: IntegrationConnectorId,
29 pub data: IntegrationConnectorDto,
30 pub occurred_at: DateTime<Utc>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct IntegrationConnectorDeletedEvent {
36 pub id: IntegrationConnectorId,
37 pub occurred_at: DateTime<Utc>,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct IntegrationAccountCreatedEvent {
47 pub id: IntegrationAccountId,
48 pub data: IntegrationAccountDto,
49 pub occurred_at: DateTime<Utc>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct IntegrationAccountUpdatedEvent {
55 pub id: IntegrationAccountId,
56 pub data: IntegrationAccountDto,
57 pub occurred_at: DateTime<Utc>,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct IntegrationAccountDeletedEvent {
63 pub id: IntegrationAccountId,
64 pub occurred_at: DateTime<Utc>,
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct IntegrationEventCreatedEvent {
74 pub id: IntegrationEventId,
75 pub data: IntegrationEventDto,
76 pub occurred_at: DateTime<Utc>,
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct IntegrationEventUpdatedEvent {
82 pub id: IntegrationEventId,
83 pub data: IntegrationEventDto,
84 pub occurred_at: DateTime<Utc>,
85}
86
87#[derive(Debug, Clone, Serialize, Deserialize)]
89pub struct IntegrationEventDeletedEvent {
90 pub id: IntegrationEventId,
91 pub occurred_at: DateTime<Utc>,
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize)]
100#[serde(tag = "type")]
101pub enum IntegrationsEvent {
102 IntegrationConnectorCreated(IntegrationConnectorCreatedEvent),
103 IntegrationConnectorUpdated(IntegrationConnectorUpdatedEvent),
104 IntegrationConnectorDeleted(IntegrationConnectorDeletedEvent),
105 IntegrationAccountCreated(IntegrationAccountCreatedEvent),
106 IntegrationAccountUpdated(IntegrationAccountUpdatedEvent),
107 IntegrationAccountDeleted(IntegrationAccountDeletedEvent),
108 IntegrationEventCreated(IntegrationEventCreatedEvent),
109 IntegrationEventUpdated(IntegrationEventUpdatedEvent),
110 IntegrationEventDeleted(IntegrationEventDeletedEvent),
111}
112
113#[derive(Debug, Clone, Serialize, Deserialize)]
115pub struct IntegrationsEventMetadata {
116 pub module: &'static str,
117 pub version: &'static str,
118}
119
120impl Default for IntegrationsEventMetadata {
121 fn default() -> Self {
122 Self {
123 module: "integrations",
124 version: "1.0",
125 }
126 }
127}
128
129