backbone_maintenance/exports/
events.rs1use serde::{Deserialize, Serialize};
9use chrono::{DateTime, Utc};
10
11use super::types::*;
12
13#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct MaintenanceRequestDeletedEvent {
36 pub id: MaintenanceRequestId,
37 pub occurred_at: DateTime<Utc>,
38}
39
40#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct MaintenanceScheduleDeletedEvent {
63 pub id: MaintenanceScheduleId,
64 pub occurred_at: DateTime<Utc>,
65}
66
67#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
89pub struct MaintenanceStageDeletedEvent {
90 pub id: MaintenanceStageId,
91 pub occurred_at: DateTime<Utc>,
92}
93
94#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
116pub struct MaintenanceVisitDeletedEvent {
117 pub id: MaintenanceVisitId,
118 pub occurred_at: DateTime<Utc>,
119}
120
121#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
143pub struct MaintenanceVisitPartDeletedEvent {
144 pub id: MaintenanceVisitPartId,
145 pub occurred_at: DateTime<Utc>,
146}
147
148#[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#[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