1use serde::{Deserialize, Serialize};
9use chrono::{DateTime, Utc};
10
11use super::types::*;
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct AccountCreatedEvent {
20 pub id: AccountId,
21 pub data: AccountDto,
22 pub occurred_at: DateTime<Utc>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct AccountUpdatedEvent {
28 pub id: AccountId,
29 pub data: AccountDto,
30 pub occurred_at: DateTime<Utc>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct AccountDeletedEvent {
36 pub id: AccountId,
37 pub occurred_at: DateTime<Utc>,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct AccountingPostCreatedEvent {
47 pub id: AccountingPostId,
48 pub data: AccountingPostDto,
49 pub occurred_at: DateTime<Utc>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct AccountingPostUpdatedEvent {
55 pub id: AccountingPostId,
56 pub data: AccountingPostDto,
57 pub occurred_at: DateTime<Utc>,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct AccountingPostDeletedEvent {
63 pub id: AccountingPostId,
64 pub occurred_at: DateTime<Utc>,
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct CostCenterCreatedEvent {
74 pub id: CostCenterId,
75 pub data: CostCenterDto,
76 pub occurred_at: DateTime<Utc>,
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct CostCenterUpdatedEvent {
82 pub id: CostCenterId,
83 pub data: CostCenterDto,
84 pub occurred_at: DateTime<Utc>,
85}
86
87#[derive(Debug, Clone, Serialize, Deserialize)]
89pub struct CostCenterDeletedEvent {
90 pub id: CostCenterId,
91 pub occurred_at: DateTime<Utc>,
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize)]
100pub struct EmvQrConfigCreatedEvent {
101 pub id: EmvQrConfigId,
102 pub data: EmvQrConfigDto,
103 pub occurred_at: DateTime<Utc>,
104}
105
106#[derive(Debug, Clone, Serialize, Deserialize)]
108pub struct EmvQrConfigUpdatedEvent {
109 pub id: EmvQrConfigId,
110 pub data: EmvQrConfigDto,
111 pub occurred_at: DateTime<Utc>,
112}
113
114#[derive(Debug, Clone, Serialize, Deserialize)]
116pub struct EmvQrConfigDeletedEvent {
117 pub id: EmvQrConfigId,
118 pub occurred_at: DateTime<Utc>,
119}
120
121#[derive(Debug, Clone, Serialize, Deserialize)]
127pub struct BankCheckSequenceCreatedEvent {
128 pub id: BankCheckSequenceId,
129 pub data: BankCheckSequenceDto,
130 pub occurred_at: DateTime<Utc>,
131}
132
133#[derive(Debug, Clone, Serialize, Deserialize)]
135pub struct BankCheckSequenceUpdatedEvent {
136 pub id: BankCheckSequenceId,
137 pub data: BankCheckSequenceDto,
138 pub occurred_at: DateTime<Utc>,
139}
140
141#[derive(Debug, Clone, Serialize, Deserialize)]
143pub struct BankCheckSequenceDeletedEvent {
144 pub id: BankCheckSequenceId,
145 pub occurred_at: DateTime<Utc>,
146}
147
148#[derive(Debug, Clone, Serialize, Deserialize)]
154pub struct PrintedCheckCreatedEvent {
155 pub id: PrintedCheckId,
156 pub data: PrintedCheckDto,
157 pub occurred_at: DateTime<Utc>,
158}
159
160#[derive(Debug, Clone, Serialize, Deserialize)]
162pub struct PrintedCheckUpdatedEvent {
163 pub id: PrintedCheckId,
164 pub data: PrintedCheckDto,
165 pub occurred_at: DateTime<Utc>,
166}
167
168#[derive(Debug, Clone, Serialize, Deserialize)]
170pub struct PrintedCheckDeletedEvent {
171 pub id: PrintedCheckId,
172 pub occurred_at: DateTime<Utc>,
173}
174
175#[derive(Debug, Clone, Serialize, Deserialize)]
181pub struct TaxTagRepairRunCreatedEvent {
182 pub id: TaxTagRepairRunId,
183 pub data: TaxTagRepairRunDto,
184 pub occurred_at: DateTime<Utc>,
185}
186
187#[derive(Debug, Clone, Serialize, Deserialize)]
189pub struct TaxTagRepairRunUpdatedEvent {
190 pub id: TaxTagRepairRunId,
191 pub data: TaxTagRepairRunDto,
192 pub occurred_at: DateTime<Utc>,
193}
194
195#[derive(Debug, Clone, Serialize, Deserialize)]
197pub struct TaxTagRepairRunDeletedEvent {
198 pub id: TaxTagRepairRunId,
199 pub occurred_at: DateTime<Utc>,
200}
201
202#[derive(Debug, Clone, Serialize, Deserialize)]
208pub struct FinancialStatementCreatedEvent {
209 pub id: FinancialStatementId,
210 pub data: FinancialStatementDto,
211 pub occurred_at: DateTime<Utc>,
212}
213
214#[derive(Debug, Clone, Serialize, Deserialize)]
216pub struct FinancialStatementUpdatedEvent {
217 pub id: FinancialStatementId,
218 pub data: FinancialStatementDto,
219 pub occurred_at: DateTime<Utc>,
220}
221
222#[derive(Debug, Clone, Serialize, Deserialize)]
224pub struct FinancialStatementDeletedEvent {
225 pub id: FinancialStatementId,
226 pub occurred_at: DateTime<Utc>,
227}
228
229#[derive(Debug, Clone, Serialize, Deserialize)]
235pub struct FiscalPeriodCreatedEvent {
236 pub id: FiscalPeriodId,
237 pub data: FiscalPeriodDto,
238 pub occurred_at: DateTime<Utc>,
239}
240
241#[derive(Debug, Clone, Serialize, Deserialize)]
243pub struct FiscalPeriodUpdatedEvent {
244 pub id: FiscalPeriodId,
245 pub data: FiscalPeriodDto,
246 pub occurred_at: DateTime<Utc>,
247}
248
249#[derive(Debug, Clone, Serialize, Deserialize)]
251pub struct FiscalPeriodDeletedEvent {
252 pub id: FiscalPeriodId,
253 pub occurred_at: DateTime<Utc>,
254}
255
256#[derive(Debug, Clone, Serialize, Deserialize)]
262pub struct JournalCreatedEvent {
263 pub id: JournalId,
264 pub data: JournalDto,
265 pub occurred_at: DateTime<Utc>,
266}
267
268#[derive(Debug, Clone, Serialize, Deserialize)]
270pub struct JournalUpdatedEvent {
271 pub id: JournalId,
272 pub data: JournalDto,
273 pub occurred_at: DateTime<Utc>,
274}
275
276#[derive(Debug, Clone, Serialize, Deserialize)]
278pub struct JournalDeletedEvent {
279 pub id: JournalId,
280 pub occurred_at: DateTime<Utc>,
281}
282
283#[derive(Debug, Clone, Serialize, Deserialize)]
289pub struct JournalLineCreatedEvent {
290 pub id: JournalLineId,
291 pub data: JournalLineDto,
292 pub occurred_at: DateTime<Utc>,
293}
294
295#[derive(Debug, Clone, Serialize, Deserialize)]
297pub struct JournalLineUpdatedEvent {
298 pub id: JournalLineId,
299 pub data: JournalLineDto,
300 pub occurred_at: DateTime<Utc>,
301}
302
303#[derive(Debug, Clone, Serialize, Deserialize)]
305pub struct JournalLineDeletedEvent {
306 pub id: JournalLineId,
307 pub occurred_at: DateTime<Utc>,
308}
309
310#[derive(Debug, Clone, Serialize, Deserialize)]
316pub struct LedgerCreatedEvent {
317 pub id: LedgerId,
318 pub data: LedgerDto,
319 pub occurred_at: DateTime<Utc>,
320}
321
322#[derive(Debug, Clone, Serialize, Deserialize)]
324pub struct LedgerUpdatedEvent {
325 pub id: LedgerId,
326 pub data: LedgerDto,
327 pub occurred_at: DateTime<Utc>,
328}
329
330#[derive(Debug, Clone, Serialize, Deserialize)]
332pub struct LedgerDeletedEvent {
333 pub id: LedgerId,
334 pub occurred_at: DateTime<Utc>,
335}
336
337#[derive(Debug, Clone, Serialize, Deserialize)]
343pub struct ReconciliationCreatedEvent {
344 pub id: ReconciliationId,
345 pub data: ReconciliationDto,
346 pub occurred_at: DateTime<Utc>,
347}
348
349#[derive(Debug, Clone, Serialize, Deserialize)]
351pub struct ReconciliationUpdatedEvent {
352 pub id: ReconciliationId,
353 pub data: ReconciliationDto,
354 pub occurred_at: DateTime<Utc>,
355}
356
357#[derive(Debug, Clone, Serialize, Deserialize)]
359pub struct ReconciliationDeletedEvent {
360 pub id: ReconciliationId,
361 pub occurred_at: DateTime<Utc>,
362}
363
364#[derive(Debug, Clone, Serialize, Deserialize)]
370pub struct ReconciliationItemCreatedEvent {
371 pub id: ReconciliationItemId,
372 pub data: ReconciliationItemDto,
373 pub occurred_at: DateTime<Utc>,
374}
375
376#[derive(Debug, Clone, Serialize, Deserialize)]
378pub struct ReconciliationItemUpdatedEvent {
379 pub id: ReconciliationItemId,
380 pub data: ReconciliationItemDto,
381 pub occurred_at: DateTime<Utc>,
382}
383
384#[derive(Debug, Clone, Serialize, Deserialize)]
386pub struct ReconciliationItemDeletedEvent {
387 pub id: ReconciliationItemId,
388 pub occurred_at: DateTime<Utc>,
389}
390
391#[derive(Debug, Clone, Serialize, Deserialize)]
397pub struct FullReconcileCreatedEvent {
398 pub id: FullReconcileId,
399 pub data: FullReconcileDto,
400 pub occurred_at: DateTime<Utc>,
401}
402
403#[derive(Debug, Clone, Serialize, Deserialize)]
405pub struct FullReconcileUpdatedEvent {
406 pub id: FullReconcileId,
407 pub data: FullReconcileDto,
408 pub occurred_at: DateTime<Utc>,
409}
410
411#[derive(Debug, Clone, Serialize, Deserialize)]
413pub struct FullReconcileDeletedEvent {
414 pub id: FullReconcileId,
415 pub occurred_at: DateTime<Utc>,
416}
417
418#[derive(Debug, Clone, Serialize, Deserialize)]
424pub struct PartialReconcileCreatedEvent {
425 pub id: PartialReconcileId,
426 pub data: PartialReconcileDto,
427 pub occurred_at: DateTime<Utc>,
428}
429
430#[derive(Debug, Clone, Serialize, Deserialize)]
432pub struct PartialReconcileUpdatedEvent {
433 pub id: PartialReconcileId,
434 pub data: PartialReconcileDto,
435 pub occurred_at: DateTime<Utc>,
436}
437
438#[derive(Debug, Clone, Serialize, Deserialize)]
440pub struct PartialReconcileDeletedEvent {
441 pub id: PartialReconcileId,
442 pub occurred_at: DateTime<Utc>,
443}
444
445#[derive(Debug, Clone, Serialize, Deserialize)]
451#[serde(tag = "type")]
452pub enum AccountingEvent {
453 AccountCreated(AccountCreatedEvent),
454 AccountUpdated(AccountUpdatedEvent),
455 AccountDeleted(AccountDeletedEvent),
456 AccountingPostCreated(AccountingPostCreatedEvent),
457 AccountingPostUpdated(AccountingPostUpdatedEvent),
458 AccountingPostDeleted(AccountingPostDeletedEvent),
459 CostCenterCreated(CostCenterCreatedEvent),
460 CostCenterUpdated(CostCenterUpdatedEvent),
461 CostCenterDeleted(CostCenterDeletedEvent),
462 EmvQrConfigCreated(EmvQrConfigCreatedEvent),
463 EmvQrConfigUpdated(EmvQrConfigUpdatedEvent),
464 EmvQrConfigDeleted(EmvQrConfigDeletedEvent),
465 BankCheckSequenceCreated(BankCheckSequenceCreatedEvent),
466 BankCheckSequenceUpdated(BankCheckSequenceUpdatedEvent),
467 BankCheckSequenceDeleted(BankCheckSequenceDeletedEvent),
468 PrintedCheckCreated(PrintedCheckCreatedEvent),
469 PrintedCheckUpdated(PrintedCheckUpdatedEvent),
470 PrintedCheckDeleted(PrintedCheckDeletedEvent),
471 TaxTagRepairRunCreated(TaxTagRepairRunCreatedEvent),
472 TaxTagRepairRunUpdated(TaxTagRepairRunUpdatedEvent),
473 TaxTagRepairRunDeleted(TaxTagRepairRunDeletedEvent),
474 FinancialStatementCreated(FinancialStatementCreatedEvent),
475 FinancialStatementUpdated(FinancialStatementUpdatedEvent),
476 FinancialStatementDeleted(FinancialStatementDeletedEvent),
477 FiscalPeriodCreated(FiscalPeriodCreatedEvent),
478 FiscalPeriodUpdated(FiscalPeriodUpdatedEvent),
479 FiscalPeriodDeleted(FiscalPeriodDeletedEvent),
480 JournalCreated(JournalCreatedEvent),
481 JournalUpdated(JournalUpdatedEvent),
482 JournalDeleted(JournalDeletedEvent),
483 JournalLineCreated(JournalLineCreatedEvent),
484 JournalLineUpdated(JournalLineUpdatedEvent),
485 JournalLineDeleted(JournalLineDeletedEvent),
486 LedgerCreated(LedgerCreatedEvent),
487 LedgerUpdated(LedgerUpdatedEvent),
488 LedgerDeleted(LedgerDeletedEvent),
489 ReconciliationCreated(ReconciliationCreatedEvent),
490 ReconciliationUpdated(ReconciliationUpdatedEvent),
491 ReconciliationDeleted(ReconciliationDeletedEvent),
492 ReconciliationItemCreated(ReconciliationItemCreatedEvent),
493 ReconciliationItemUpdated(ReconciliationItemUpdatedEvent),
494 ReconciliationItemDeleted(ReconciliationItemDeletedEvent),
495 FullReconcileCreated(FullReconcileCreatedEvent),
496 FullReconcileUpdated(FullReconcileUpdatedEvent),
497 FullReconcileDeleted(FullReconcileDeletedEvent),
498 PartialReconcileCreated(PartialReconcileCreatedEvent),
499 PartialReconcileUpdated(PartialReconcileUpdatedEvent),
500 PartialReconcileDeleted(PartialReconcileDeletedEvent),
501}
502
503#[derive(Debug, Clone, Serialize, Deserialize)]
505pub struct AccountingEventMetadata {
506 pub module: &'static str,
507 pub version: &'static str,
508}
509
510impl Default for AccountingEventMetadata {
511 fn default() -> Self {
512 Self {
513 module: "accounting",
514 version: "1.0",
515 }
516 }
517}
518
519