Skip to main content

backbone_accounting/exports/
events.rs

1//! Public events for Accounting 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// ACCOUNT EVENTS
15// ============================================================================
16
17/// Event published when a Account is created
18#[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/// Event published when a Account is updated
26#[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/// Event published when a Account is deleted
34#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct AccountDeletedEvent {
36    pub id: AccountId,
37    pub occurred_at: DateTime<Utc>,
38}
39
40// ============================================================================
41// ACCOUNTINGPOST EVENTS
42// ============================================================================
43
44/// Event published when a AccountingPost is created
45#[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/// Event published when a AccountingPost is updated
53#[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/// Event published when a AccountingPost is deleted
61#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct AccountingPostDeletedEvent {
63    pub id: AccountingPostId,
64    pub occurred_at: DateTime<Utc>,
65}
66
67// ============================================================================
68// COSTCENTER EVENTS
69// ============================================================================
70
71/// Event published when a CostCenter is created
72#[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/// Event published when a CostCenter is updated
80#[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/// Event published when a CostCenter is deleted
88#[derive(Debug, Clone, Serialize, Deserialize)]
89pub struct CostCenterDeletedEvent {
90    pub id: CostCenterId,
91    pub occurred_at: DateTime<Utc>,
92}
93
94// ============================================================================
95// EMVQRCONFIG EVENTS
96// ============================================================================
97
98/// Event published when a EmvQrConfig is created
99#[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/// Event published when a EmvQrConfig is updated
107#[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/// Event published when a EmvQrConfig is deleted
115#[derive(Debug, Clone, Serialize, Deserialize)]
116pub struct EmvQrConfigDeletedEvent {
117    pub id: EmvQrConfigId,
118    pub occurred_at: DateTime<Utc>,
119}
120
121// ============================================================================
122// BANKCHECKSEQUENCE EVENTS
123// ============================================================================
124
125/// Event published when a BankCheckSequence is created
126#[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/// Event published when a BankCheckSequence is updated
134#[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/// Event published when a BankCheckSequence is deleted
142#[derive(Debug, Clone, Serialize, Deserialize)]
143pub struct BankCheckSequenceDeletedEvent {
144    pub id: BankCheckSequenceId,
145    pub occurred_at: DateTime<Utc>,
146}
147
148// ============================================================================
149// PRINTEDCHECK EVENTS
150// ============================================================================
151
152/// Event published when a PrintedCheck is created
153#[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/// Event published when a PrintedCheck is updated
161#[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/// Event published when a PrintedCheck is deleted
169#[derive(Debug, Clone, Serialize, Deserialize)]
170pub struct PrintedCheckDeletedEvent {
171    pub id: PrintedCheckId,
172    pub occurred_at: DateTime<Utc>,
173}
174
175// ============================================================================
176// TAXTAGREPAIRRUN EVENTS
177// ============================================================================
178
179/// Event published when a TaxTagRepairRun is created
180#[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/// Event published when a TaxTagRepairRun is updated
188#[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/// Event published when a TaxTagRepairRun is deleted
196#[derive(Debug, Clone, Serialize, Deserialize)]
197pub struct TaxTagRepairRunDeletedEvent {
198    pub id: TaxTagRepairRunId,
199    pub occurred_at: DateTime<Utc>,
200}
201
202// ============================================================================
203// FINANCIALSTATEMENT EVENTS
204// ============================================================================
205
206/// Event published when a FinancialStatement is created
207#[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/// Event published when a FinancialStatement is updated
215#[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/// Event published when a FinancialStatement is deleted
223#[derive(Debug, Clone, Serialize, Deserialize)]
224pub struct FinancialStatementDeletedEvent {
225    pub id: FinancialStatementId,
226    pub occurred_at: DateTime<Utc>,
227}
228
229// ============================================================================
230// FISCALPERIOD EVENTS
231// ============================================================================
232
233/// Event published when a FiscalPeriod is created
234#[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/// Event published when a FiscalPeriod is updated
242#[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/// Event published when a FiscalPeriod is deleted
250#[derive(Debug, Clone, Serialize, Deserialize)]
251pub struct FiscalPeriodDeletedEvent {
252    pub id: FiscalPeriodId,
253    pub occurred_at: DateTime<Utc>,
254}
255
256// ============================================================================
257// JOURNAL EVENTS
258// ============================================================================
259
260/// Event published when a Journal is created
261#[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/// Event published when a Journal is updated
269#[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/// Event published when a Journal is deleted
277#[derive(Debug, Clone, Serialize, Deserialize)]
278pub struct JournalDeletedEvent {
279    pub id: JournalId,
280    pub occurred_at: DateTime<Utc>,
281}
282
283// ============================================================================
284// JOURNALLINE EVENTS
285// ============================================================================
286
287/// Event published when a JournalLine is created
288#[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/// Event published when a JournalLine is updated
296#[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/// Event published when a JournalLine is deleted
304#[derive(Debug, Clone, Serialize, Deserialize)]
305pub struct JournalLineDeletedEvent {
306    pub id: JournalLineId,
307    pub occurred_at: DateTime<Utc>,
308}
309
310// ============================================================================
311// LEDGER EVENTS
312// ============================================================================
313
314/// Event published when a Ledger is created
315#[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/// Event published when a Ledger is updated
323#[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/// Event published when a Ledger is deleted
331#[derive(Debug, Clone, Serialize, Deserialize)]
332pub struct LedgerDeletedEvent {
333    pub id: LedgerId,
334    pub occurred_at: DateTime<Utc>,
335}
336
337// ============================================================================
338// RECONCILIATION EVENTS
339// ============================================================================
340
341/// Event published when a Reconciliation is created
342#[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/// Event published when a Reconciliation is updated
350#[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/// Event published when a Reconciliation is deleted
358#[derive(Debug, Clone, Serialize, Deserialize)]
359pub struct ReconciliationDeletedEvent {
360    pub id: ReconciliationId,
361    pub occurred_at: DateTime<Utc>,
362}
363
364// ============================================================================
365// RECONCILIATIONITEM EVENTS
366// ============================================================================
367
368/// Event published when a ReconciliationItem is created
369#[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/// Event published when a ReconciliationItem is updated
377#[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/// Event published when a ReconciliationItem is deleted
385#[derive(Debug, Clone, Serialize, Deserialize)]
386pub struct ReconciliationItemDeletedEvent {
387    pub id: ReconciliationItemId,
388    pub occurred_at: DateTime<Utc>,
389}
390
391// ============================================================================
392// FULLRECONCILE EVENTS
393// ============================================================================
394
395/// Event published when a FullReconcile is created
396#[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/// Event published when a FullReconcile is updated
404#[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/// Event published when a FullReconcile is deleted
412#[derive(Debug, Clone, Serialize, Deserialize)]
413pub struct FullReconcileDeletedEvent {
414    pub id: FullReconcileId,
415    pub occurred_at: DateTime<Utc>,
416}
417
418// ============================================================================
419// PARTIALRECONCILE EVENTS
420// ============================================================================
421
422/// Event published when a PartialReconcile is created
423#[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/// Event published when a PartialReconcile is updated
431#[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/// Event published when a PartialReconcile is deleted
439#[derive(Debug, Clone, Serialize, Deserialize)]
440pub struct PartialReconcileDeletedEvent {
441    pub id: PartialReconcileId,
442    pub occurred_at: DateTime<Utc>,
443}
444
445// ============================================================================
446// MODULE EVENT ENUM
447// ============================================================================
448
449/// All events published by Accounting module
450#[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/// Metadata for module events
504#[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// ============================================================================
520// CUSTOM EVENTS
521// ============================================================================
522
523// Add custom public events here