1use serde::{Deserialize, Serialize};
9use chrono::{DateTime, Utc};
10
11use super::types::*;
12
13#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct AccessLogDeletedEvent {
36 pub id: AccessLogId,
37 pub occurred_at: DateTime<Utc>,
38}
39
40#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct BucketDeletedEvent {
63 pub id: BucketId,
64 pub occurred_at: DateTime<Utc>,
65}
66
67#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
89pub struct ContentHashDeletedEvent {
90 pub id: ContentHashId,
91 pub occurred_at: DateTime<Utc>,
92}
93
94#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
116pub struct ConversionJobDeletedEvent {
117 pub id: ConversionJobId,
118 pub occurred_at: DateTime<Utc>,
119}
120
121#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
143pub struct FileCommentDeletedEvent {
144 pub id: FileCommentId,
145 pub occurred_at: DateTime<Utc>,
146}
147
148#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
170pub struct FileLockDeletedEvent {
171 pub id: FileLockId,
172 pub occurred_at: DateTime<Utc>,
173}
174
175#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
197pub struct FileShareDeletedEvent {
198 pub id: FileShareId,
199 pub occurred_at: DateTime<Utc>,
200}
201
202#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
224pub struct FileVersionDeletedEvent {
225 pub id: FileVersionId,
226 pub occurred_at: DateTime<Utc>,
227}
228
229#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
251pub struct ProcessingJobDeletedEvent {
252 pub id: ProcessingJobId,
253 pub occurred_at: DateTime<Utc>,
254}
255
256#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
278pub struct StoredFileDeletedEvent {
279 pub id: StoredFileId,
280 pub occurred_at: DateTime<Utc>,
281}
282
283#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
305pub struct ThumbnailDeletedEvent {
306 pub id: ThumbnailId,
307 pub occurred_at: DateTime<Utc>,
308}
309
310#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
332pub struct UploadSessionDeletedEvent {
333 pub id: UploadSessionId,
334 pub occurred_at: DateTime<Utc>,
335}
336
337#[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#[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#[derive(Debug, Clone, Serialize, Deserialize)]
359pub struct UserQuotaDeletedEvent {
360 pub id: UserQuotaId,
361 pub occurred_at: DateTime<Utc>,
362}
363
364#[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#[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