Skip to main content

backbone_integrations/exports/
events.rs

1//! Public events for Integrations module
2//!
3//! Generated by metaphor-schema. Do not edit manually.
4//!
5//! These events are published by this module for other modules to subscribe to.
6//! Events are the primary mechanism for cross-module communication.
7
8use serde::{Deserialize, Serialize};
9use chrono::{DateTime, Utc};
10
11use super::types::*;
12
13// ============================================================================
14// INTEGRATIONCONNECTOR EVENTS
15// ============================================================================
16
17/// Event published when a IntegrationConnector is created
18#[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/// Event published when a IntegrationConnector is updated
26#[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/// Event published when a IntegrationConnector is deleted
34#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct IntegrationConnectorDeletedEvent {
36    pub id: IntegrationConnectorId,
37    pub occurred_at: DateTime<Utc>,
38}
39
40// ============================================================================
41// INTEGRATIONACCOUNT EVENTS
42// ============================================================================
43
44/// Event published when a IntegrationAccount is created
45#[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/// Event published when a IntegrationAccount is updated
53#[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/// Event published when a IntegrationAccount is deleted
61#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct IntegrationAccountDeletedEvent {
63    pub id: IntegrationAccountId,
64    pub occurred_at: DateTime<Utc>,
65}
66
67// ============================================================================
68// INTEGRATIONEVENT EVENTS
69// ============================================================================
70
71/// Event published when a IntegrationEvent is created
72#[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/// Event published when a IntegrationEvent is updated
80#[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/// Event published when a IntegrationEvent is deleted
88#[derive(Debug, Clone, Serialize, Deserialize)]
89pub struct IntegrationEventDeletedEvent {
90    pub id: IntegrationEventId,
91    pub occurred_at: DateTime<Utc>,
92}
93
94// ============================================================================
95// MODULE EVENT ENUM
96// ============================================================================
97
98/// All events published by Integrations module
99#[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/// Metadata for module events
114#[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// ============================================================================
130// CUSTOM EVENTS
131// ============================================================================
132
133// <<< CUSTOM EVENTS START >>>
134// Add custom public events here
135// <<< CUSTOM EVENTS END >>>