Skip to main content

backbone_maintenance/exports/
events.rs

1//! Public events for Maintenance 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// MAINTENANCEREQUEST EVENTS
15// ============================================================================
16
17/// Event published when a MaintenanceRequest is created
18#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct MaintenanceRequestCreatedEvent {
20    pub id: MaintenanceRequestId,
21    pub data: MaintenanceRequestDto,
22    pub occurred_at: DateTime<Utc>,
23}
24
25/// Event published when a MaintenanceRequest is updated
26#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct MaintenanceRequestUpdatedEvent {
28    pub id: MaintenanceRequestId,
29    pub data: MaintenanceRequestDto,
30    pub occurred_at: DateTime<Utc>,
31}
32
33/// Event published when a MaintenanceRequest is deleted
34#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct MaintenanceRequestDeletedEvent {
36    pub id: MaintenanceRequestId,
37    pub occurred_at: DateTime<Utc>,
38}
39
40// ============================================================================
41// MAINTENANCESCHEDULE EVENTS
42// ============================================================================
43
44/// Event published when a MaintenanceSchedule is created
45#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct MaintenanceScheduleCreatedEvent {
47    pub id: MaintenanceScheduleId,
48    pub data: MaintenanceScheduleDto,
49    pub occurred_at: DateTime<Utc>,
50}
51
52/// Event published when a MaintenanceSchedule is updated
53#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct MaintenanceScheduleUpdatedEvent {
55    pub id: MaintenanceScheduleId,
56    pub data: MaintenanceScheduleDto,
57    pub occurred_at: DateTime<Utc>,
58}
59
60/// Event published when a MaintenanceSchedule is deleted
61#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct MaintenanceScheduleDeletedEvent {
63    pub id: MaintenanceScheduleId,
64    pub occurred_at: DateTime<Utc>,
65}
66
67// ============================================================================
68// MAINTENANCESTAGE EVENTS
69// ============================================================================
70
71/// Event published when a MaintenanceStage is created
72#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct MaintenanceStageCreatedEvent {
74    pub id: MaintenanceStageId,
75    pub data: MaintenanceStageDto,
76    pub occurred_at: DateTime<Utc>,
77}
78
79/// Event published when a MaintenanceStage is updated
80#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct MaintenanceStageUpdatedEvent {
82    pub id: MaintenanceStageId,
83    pub data: MaintenanceStageDto,
84    pub occurred_at: DateTime<Utc>,
85}
86
87/// Event published when a MaintenanceStage is deleted
88#[derive(Debug, Clone, Serialize, Deserialize)]
89pub struct MaintenanceStageDeletedEvent {
90    pub id: MaintenanceStageId,
91    pub occurred_at: DateTime<Utc>,
92}
93
94// ============================================================================
95// MAINTENANCEVISIT EVENTS
96// ============================================================================
97
98/// Event published when a MaintenanceVisit is created
99#[derive(Debug, Clone, Serialize, Deserialize)]
100pub struct MaintenanceVisitCreatedEvent {
101    pub id: MaintenanceVisitId,
102    pub data: MaintenanceVisitDto,
103    pub occurred_at: DateTime<Utc>,
104}
105
106/// Event published when a MaintenanceVisit is updated
107#[derive(Debug, Clone, Serialize, Deserialize)]
108pub struct MaintenanceVisitUpdatedEvent {
109    pub id: MaintenanceVisitId,
110    pub data: MaintenanceVisitDto,
111    pub occurred_at: DateTime<Utc>,
112}
113
114/// Event published when a MaintenanceVisit is deleted
115#[derive(Debug, Clone, Serialize, Deserialize)]
116pub struct MaintenanceVisitDeletedEvent {
117    pub id: MaintenanceVisitId,
118    pub occurred_at: DateTime<Utc>,
119}
120
121// ============================================================================
122// MAINTENANCEVISITPART EVENTS
123// ============================================================================
124
125/// Event published when a MaintenanceVisitPart is created
126#[derive(Debug, Clone, Serialize, Deserialize)]
127pub struct MaintenanceVisitPartCreatedEvent {
128    pub id: MaintenanceVisitPartId,
129    pub data: MaintenanceVisitPartDto,
130    pub occurred_at: DateTime<Utc>,
131}
132
133/// Event published when a MaintenanceVisitPart is updated
134#[derive(Debug, Clone, Serialize, Deserialize)]
135pub struct MaintenanceVisitPartUpdatedEvent {
136    pub id: MaintenanceVisitPartId,
137    pub data: MaintenanceVisitPartDto,
138    pub occurred_at: DateTime<Utc>,
139}
140
141/// Event published when a MaintenanceVisitPart is deleted
142#[derive(Debug, Clone, Serialize, Deserialize)]
143pub struct MaintenanceVisitPartDeletedEvent {
144    pub id: MaintenanceVisitPartId,
145    pub occurred_at: DateTime<Utc>,
146}
147
148// ============================================================================
149// MODULE EVENT ENUM
150// ============================================================================
151
152/// All events published by Maintenance module
153#[derive(Debug, Clone, Serialize, Deserialize)]
154#[serde(tag = "type")]
155pub enum MaintenanceEvent {
156    MaintenanceRequestCreated(MaintenanceRequestCreatedEvent),
157    MaintenanceRequestUpdated(MaintenanceRequestUpdatedEvent),
158    MaintenanceRequestDeleted(MaintenanceRequestDeletedEvent),
159    MaintenanceScheduleCreated(MaintenanceScheduleCreatedEvent),
160    MaintenanceScheduleUpdated(MaintenanceScheduleUpdatedEvent),
161    MaintenanceScheduleDeleted(MaintenanceScheduleDeletedEvent),
162    MaintenanceStageCreated(MaintenanceStageCreatedEvent),
163    MaintenanceStageUpdated(MaintenanceStageUpdatedEvent),
164    MaintenanceStageDeleted(MaintenanceStageDeletedEvent),
165    MaintenanceVisitCreated(MaintenanceVisitCreatedEvent),
166    MaintenanceVisitUpdated(MaintenanceVisitUpdatedEvent),
167    MaintenanceVisitDeleted(MaintenanceVisitDeletedEvent),
168    MaintenanceVisitPartCreated(MaintenanceVisitPartCreatedEvent),
169    MaintenanceVisitPartUpdated(MaintenanceVisitPartUpdatedEvent),
170    MaintenanceVisitPartDeleted(MaintenanceVisitPartDeletedEvent),
171}
172
173/// Metadata for module events
174#[derive(Debug, Clone, Serialize, Deserialize)]
175pub struct MaintenanceEventMetadata {
176    pub module: &'static str,
177    pub version: &'static str,
178}
179
180impl Default for MaintenanceEventMetadata {
181    fn default() -> Self {
182        Self {
183            module: "maintenance",
184            version: "1.0",
185        }
186    }
187}
188
189// ============================================================================
190// CUSTOM EVENTS
191// ============================================================================
192
193// <<< CUSTOM EVENTS START >>>
194// Add custom public events here
195// <<< CUSTOM EVENTS END >>>