Skip to main content

backbone_bucket/exports/
events.rs

1//! Public events for Bucket 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// ACCESSLOG EVENTS
15// ============================================================================
16
17/// Event published when a AccessLog is created
18#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct AccessLogCreatedEvent {
20    pub id: AccessLogId,
21    pub data: AccessLogDto,
22    pub occurred_at: DateTime<Utc>,
23}
24
25/// Event published when a AccessLog is updated
26#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct AccessLogUpdatedEvent {
28    pub id: AccessLogId,
29    pub data: AccessLogDto,
30    pub occurred_at: DateTime<Utc>,
31}
32
33/// Event published when a AccessLog is deleted
34#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct AccessLogDeletedEvent {
36    pub id: AccessLogId,
37    pub occurred_at: DateTime<Utc>,
38}
39
40// ============================================================================
41// BUCKET EVENTS
42// ============================================================================
43
44/// Event published when a Bucket is created
45#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct BucketCreatedEvent {
47    pub id: BucketId,
48    pub data: BucketDto,
49    pub occurred_at: DateTime<Utc>,
50}
51
52/// Event published when a Bucket is updated
53#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct BucketUpdatedEvent {
55    pub id: BucketId,
56    pub data: BucketDto,
57    pub occurred_at: DateTime<Utc>,
58}
59
60/// Event published when a Bucket is deleted
61#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct BucketDeletedEvent {
63    pub id: BucketId,
64    pub occurred_at: DateTime<Utc>,
65}
66
67// ============================================================================
68// CONTENTHASH EVENTS
69// ============================================================================
70
71/// Event published when a ContentHash is created
72#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct ContentHashCreatedEvent {
74    pub id: ContentHashId,
75    pub data: ContentHashDto,
76    pub occurred_at: DateTime<Utc>,
77}
78
79/// Event published when a ContentHash is updated
80#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct ContentHashUpdatedEvent {
82    pub id: ContentHashId,
83    pub data: ContentHashDto,
84    pub occurred_at: DateTime<Utc>,
85}
86
87/// Event published when a ContentHash is deleted
88#[derive(Debug, Clone, Serialize, Deserialize)]
89pub struct ContentHashDeletedEvent {
90    pub id: ContentHashId,
91    pub occurred_at: DateTime<Utc>,
92}
93
94// ============================================================================
95// CONVERSIONJOB EVENTS
96// ============================================================================
97
98/// Event published when a ConversionJob is created
99#[derive(Debug, Clone, Serialize, Deserialize)]
100pub struct ConversionJobCreatedEvent {
101    pub id: ConversionJobId,
102    pub data: ConversionJobDto,
103    pub occurred_at: DateTime<Utc>,
104}
105
106/// Event published when a ConversionJob is updated
107#[derive(Debug, Clone, Serialize, Deserialize)]
108pub struct ConversionJobUpdatedEvent {
109    pub id: ConversionJobId,
110    pub data: ConversionJobDto,
111    pub occurred_at: DateTime<Utc>,
112}
113
114/// Event published when a ConversionJob is deleted
115#[derive(Debug, Clone, Serialize, Deserialize)]
116pub struct ConversionJobDeletedEvent {
117    pub id: ConversionJobId,
118    pub occurred_at: DateTime<Utc>,
119}
120
121// ============================================================================
122// FILECOMMENT EVENTS
123// ============================================================================
124
125/// Event published when a FileComment is created
126#[derive(Debug, Clone, Serialize, Deserialize)]
127pub struct FileCommentCreatedEvent {
128    pub id: FileCommentId,
129    pub data: FileCommentDto,
130    pub occurred_at: DateTime<Utc>,
131}
132
133/// Event published when a FileComment is updated
134#[derive(Debug, Clone, Serialize, Deserialize)]
135pub struct FileCommentUpdatedEvent {
136    pub id: FileCommentId,
137    pub data: FileCommentDto,
138    pub occurred_at: DateTime<Utc>,
139}
140
141/// Event published when a FileComment is deleted
142#[derive(Debug, Clone, Serialize, Deserialize)]
143pub struct FileCommentDeletedEvent {
144    pub id: FileCommentId,
145    pub occurred_at: DateTime<Utc>,
146}
147
148// ============================================================================
149// FILELOCK EVENTS
150// ============================================================================
151
152/// Event published when a FileLock is created
153#[derive(Debug, Clone, Serialize, Deserialize)]
154pub struct FileLockCreatedEvent {
155    pub id: FileLockId,
156    pub data: FileLockDto,
157    pub occurred_at: DateTime<Utc>,
158}
159
160/// Event published when a FileLock is updated
161#[derive(Debug, Clone, Serialize, Deserialize)]
162pub struct FileLockUpdatedEvent {
163    pub id: FileLockId,
164    pub data: FileLockDto,
165    pub occurred_at: DateTime<Utc>,
166}
167
168/// Event published when a FileLock is deleted
169#[derive(Debug, Clone, Serialize, Deserialize)]
170pub struct FileLockDeletedEvent {
171    pub id: FileLockId,
172    pub occurred_at: DateTime<Utc>,
173}
174
175// ============================================================================
176// FILESHARE EVENTS
177// ============================================================================
178
179/// Event published when a FileShare is created
180#[derive(Debug, Clone, Serialize, Deserialize)]
181pub struct FileShareCreatedEvent {
182    pub id: FileShareId,
183    pub data: FileShareDto,
184    pub occurred_at: DateTime<Utc>,
185}
186
187/// Event published when a FileShare is updated
188#[derive(Debug, Clone, Serialize, Deserialize)]
189pub struct FileShareUpdatedEvent {
190    pub id: FileShareId,
191    pub data: FileShareDto,
192    pub occurred_at: DateTime<Utc>,
193}
194
195/// Event published when a FileShare is deleted
196#[derive(Debug, Clone, Serialize, Deserialize)]
197pub struct FileShareDeletedEvent {
198    pub id: FileShareId,
199    pub occurred_at: DateTime<Utc>,
200}
201
202// ============================================================================
203// FILEVERSION EVENTS
204// ============================================================================
205
206/// Event published when a FileVersion is created
207#[derive(Debug, Clone, Serialize, Deserialize)]
208pub struct FileVersionCreatedEvent {
209    pub id: FileVersionId,
210    pub data: FileVersionDto,
211    pub occurred_at: DateTime<Utc>,
212}
213
214/// Event published when a FileVersion is updated
215#[derive(Debug, Clone, Serialize, Deserialize)]
216pub struct FileVersionUpdatedEvent {
217    pub id: FileVersionId,
218    pub data: FileVersionDto,
219    pub occurred_at: DateTime<Utc>,
220}
221
222/// Event published when a FileVersion is deleted
223#[derive(Debug, Clone, Serialize, Deserialize)]
224pub struct FileVersionDeletedEvent {
225    pub id: FileVersionId,
226    pub occurred_at: DateTime<Utc>,
227}
228
229// ============================================================================
230// PROCESSINGJOB EVENTS
231// ============================================================================
232
233/// Event published when a ProcessingJob is created
234#[derive(Debug, Clone, Serialize, Deserialize)]
235pub struct ProcessingJobCreatedEvent {
236    pub id: ProcessingJobId,
237    pub data: ProcessingJobDto,
238    pub occurred_at: DateTime<Utc>,
239}
240
241/// Event published when a ProcessingJob is updated
242#[derive(Debug, Clone, Serialize, Deserialize)]
243pub struct ProcessingJobUpdatedEvent {
244    pub id: ProcessingJobId,
245    pub data: ProcessingJobDto,
246    pub occurred_at: DateTime<Utc>,
247}
248
249/// Event published when a ProcessingJob is deleted
250#[derive(Debug, Clone, Serialize, Deserialize)]
251pub struct ProcessingJobDeletedEvent {
252    pub id: ProcessingJobId,
253    pub occurred_at: DateTime<Utc>,
254}
255
256// ============================================================================
257// STOREDFILE EVENTS
258// ============================================================================
259
260/// Event published when a StoredFile is created
261#[derive(Debug, Clone, Serialize, Deserialize)]
262pub struct StoredFileCreatedEvent {
263    pub id: StoredFileId,
264    pub data: StoredFileDto,
265    pub occurred_at: DateTime<Utc>,
266}
267
268/// Event published when a StoredFile is updated
269#[derive(Debug, Clone, Serialize, Deserialize)]
270pub struct StoredFileUpdatedEvent {
271    pub id: StoredFileId,
272    pub data: StoredFileDto,
273    pub occurred_at: DateTime<Utc>,
274}
275
276/// Event published when a StoredFile is deleted
277#[derive(Debug, Clone, Serialize, Deserialize)]
278pub struct StoredFileDeletedEvent {
279    pub id: StoredFileId,
280    pub occurred_at: DateTime<Utc>,
281}
282
283// ============================================================================
284// THUMBNAIL EVENTS
285// ============================================================================
286
287/// Event published when a Thumbnail is created
288#[derive(Debug, Clone, Serialize, Deserialize)]
289pub struct ThumbnailCreatedEvent {
290    pub id: ThumbnailId,
291    pub data: ThumbnailDto,
292    pub occurred_at: DateTime<Utc>,
293}
294
295/// Event published when a Thumbnail is updated
296#[derive(Debug, Clone, Serialize, Deserialize)]
297pub struct ThumbnailUpdatedEvent {
298    pub id: ThumbnailId,
299    pub data: ThumbnailDto,
300    pub occurred_at: DateTime<Utc>,
301}
302
303/// Event published when a Thumbnail is deleted
304#[derive(Debug, Clone, Serialize, Deserialize)]
305pub struct ThumbnailDeletedEvent {
306    pub id: ThumbnailId,
307    pub occurred_at: DateTime<Utc>,
308}
309
310// ============================================================================
311// UPLOADSESSION EVENTS
312// ============================================================================
313
314/// Event published when a UploadSession is created
315#[derive(Debug, Clone, Serialize, Deserialize)]
316pub struct UploadSessionCreatedEvent {
317    pub id: UploadSessionId,
318    pub data: UploadSessionDto,
319    pub occurred_at: DateTime<Utc>,
320}
321
322/// Event published when a UploadSession is updated
323#[derive(Debug, Clone, Serialize, Deserialize)]
324pub struct UploadSessionUpdatedEvent {
325    pub id: UploadSessionId,
326    pub data: UploadSessionDto,
327    pub occurred_at: DateTime<Utc>,
328}
329
330/// Event published when a UploadSession is deleted
331#[derive(Debug, Clone, Serialize, Deserialize)]
332pub struct UploadSessionDeletedEvent {
333    pub id: UploadSessionId,
334    pub occurred_at: DateTime<Utc>,
335}
336
337// ============================================================================
338// USERQUOTA EVENTS
339// ============================================================================
340
341/// Event published when a UserQuota is created
342#[derive(Debug, Clone, Serialize, Deserialize)]
343pub struct UserQuotaCreatedEvent {
344    pub id: UserQuotaId,
345    pub data: UserQuotaDto,
346    pub occurred_at: DateTime<Utc>,
347}
348
349/// Event published when a UserQuota is updated
350#[derive(Debug, Clone, Serialize, Deserialize)]
351pub struct UserQuotaUpdatedEvent {
352    pub id: UserQuotaId,
353    pub data: UserQuotaDto,
354    pub occurred_at: DateTime<Utc>,
355}
356
357/// Event published when a UserQuota is deleted
358#[derive(Debug, Clone, Serialize, Deserialize)]
359pub struct UserQuotaDeletedEvent {
360    pub id: UserQuotaId,
361    pub occurred_at: DateTime<Utc>,
362}
363
364// ============================================================================
365// MODULE EVENT ENUM
366// ============================================================================
367
368/// All events published by Bucket module
369#[derive(Debug, Clone, Serialize, Deserialize)]
370#[serde(tag = "type")]
371pub enum BucketEvent {
372    AccessLogCreated(AccessLogCreatedEvent),
373    AccessLogUpdated(AccessLogUpdatedEvent),
374    AccessLogDeleted(AccessLogDeletedEvent),
375    BucketCreated(BucketCreatedEvent),
376    BucketUpdated(BucketUpdatedEvent),
377    BucketDeleted(BucketDeletedEvent),
378    ContentHashCreated(ContentHashCreatedEvent),
379    ContentHashUpdated(ContentHashUpdatedEvent),
380    ContentHashDeleted(ContentHashDeletedEvent),
381    ConversionJobCreated(ConversionJobCreatedEvent),
382    ConversionJobUpdated(ConversionJobUpdatedEvent),
383    ConversionJobDeleted(ConversionJobDeletedEvent),
384    FileCommentCreated(FileCommentCreatedEvent),
385    FileCommentUpdated(FileCommentUpdatedEvent),
386    FileCommentDeleted(FileCommentDeletedEvent),
387    FileLockCreated(FileLockCreatedEvent),
388    FileLockUpdated(FileLockUpdatedEvent),
389    FileLockDeleted(FileLockDeletedEvent),
390    FileShareCreated(FileShareCreatedEvent),
391    FileShareUpdated(FileShareUpdatedEvent),
392    FileShareDeleted(FileShareDeletedEvent),
393    FileVersionCreated(FileVersionCreatedEvent),
394    FileVersionUpdated(FileVersionUpdatedEvent),
395    FileVersionDeleted(FileVersionDeletedEvent),
396    ProcessingJobCreated(ProcessingJobCreatedEvent),
397    ProcessingJobUpdated(ProcessingJobUpdatedEvent),
398    ProcessingJobDeleted(ProcessingJobDeletedEvent),
399    StoredFileCreated(StoredFileCreatedEvent),
400    StoredFileUpdated(StoredFileUpdatedEvent),
401    StoredFileDeleted(StoredFileDeletedEvent),
402    ThumbnailCreated(ThumbnailCreatedEvent),
403    ThumbnailUpdated(ThumbnailUpdatedEvent),
404    ThumbnailDeleted(ThumbnailDeletedEvent),
405    UploadSessionCreated(UploadSessionCreatedEvent),
406    UploadSessionUpdated(UploadSessionUpdatedEvent),
407    UploadSessionDeleted(UploadSessionDeletedEvent),
408    UserQuotaCreated(UserQuotaCreatedEvent),
409    UserQuotaUpdated(UserQuotaUpdatedEvent),
410    UserQuotaDeleted(UserQuotaDeletedEvent),
411}
412
413/// Metadata for module events
414#[derive(Debug, Clone, Serialize, Deserialize)]
415pub struct BucketEventMetadata {
416    pub module: &'static str,
417    pub version: &'static str,
418}
419
420impl Default for BucketEventMetadata {
421    fn default() -> Self {
422        Self {
423            module: "bucket",
424            version: "1.0",
425        }
426    }
427}
428
429// ============================================================================
430// CUSTOM EVENTS
431// ============================================================================
432
433// Add custom public events here