1use serde::{Deserialize, Serialize};
9use chrono::{DateTime, Utc};
10
11use super::types::*;
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct PosClosingEntryCreatedEvent {
20 pub id: PosClosingEntryId,
21 pub data: PosClosingEntryDto,
22 pub occurred_at: DateTime<Utc>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct PosClosingEntryUpdatedEvent {
28 pub id: PosClosingEntryId,
29 pub data: PosClosingEntryDto,
30 pub occurred_at: DateTime<Utc>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct PosClosingEntryDeletedEvent {
36 pub id: PosClosingEntryId,
37 pub occurred_at: DateTime<Utc>,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct PosInvoiceCreatedEvent {
47 pub id: PosInvoiceId,
48 pub data: PosInvoiceDto,
49 pub occurred_at: DateTime<Utc>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct PosInvoiceUpdatedEvent {
55 pub id: PosInvoiceId,
56 pub data: PosInvoiceDto,
57 pub occurred_at: DateTime<Utc>,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct PosInvoiceDeletedEvent {
63 pub id: PosInvoiceId,
64 pub occurred_at: DateTime<Utc>,
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct PosInvoiceItemCreatedEvent {
74 pub id: PosInvoiceItemId,
75 pub data: PosInvoiceItemDto,
76 pub occurred_at: DateTime<Utc>,
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct PosInvoiceItemUpdatedEvent {
82 pub id: PosInvoiceItemId,
83 pub data: PosInvoiceItemDto,
84 pub occurred_at: DateTime<Utc>,
85}
86
87#[derive(Debug, Clone, Serialize, Deserialize)]
89pub struct PosInvoiceItemDeletedEvent {
90 pub id: PosInvoiceItemId,
91 pub occurred_at: DateTime<Utc>,
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize)]
100pub struct PosPaymentCreatedEvent {
101 pub id: PosPaymentId,
102 pub data: PosPaymentDto,
103 pub occurred_at: DateTime<Utc>,
104}
105
106#[derive(Debug, Clone, Serialize, Deserialize)]
108pub struct PosPaymentUpdatedEvent {
109 pub id: PosPaymentId,
110 pub data: PosPaymentDto,
111 pub occurred_at: DateTime<Utc>,
112}
113
114#[derive(Debug, Clone, Serialize, Deserialize)]
116pub struct PosPaymentDeletedEvent {
117 pub id: PosPaymentId,
118 pub occurred_at: DateTime<Utc>,
119}
120
121#[derive(Debug, Clone, Serialize, Deserialize)]
127pub struct PosProfileCreatedEvent {
128 pub id: PosProfileId,
129 pub data: PosProfileDto,
130 pub occurred_at: DateTime<Utc>,
131}
132
133#[derive(Debug, Clone, Serialize, Deserialize)]
135pub struct PosProfileUpdatedEvent {
136 pub id: PosProfileId,
137 pub data: PosProfileDto,
138 pub occurred_at: DateTime<Utc>,
139}
140
141#[derive(Debug, Clone, Serialize, Deserialize)]
143pub struct PosProfileDeletedEvent {
144 pub id: PosProfileId,
145 pub occurred_at: DateTime<Utc>,
146}
147
148#[derive(Debug, Clone, Serialize, Deserialize)]
154pub struct PosOpeningEntryCreatedEvent {
155 pub id: PosOpeningEntryId,
156 pub data: PosOpeningEntryDto,
157 pub occurred_at: DateTime<Utc>,
158}
159
160#[derive(Debug, Clone, Serialize, Deserialize)]
162pub struct PosOpeningEntryUpdatedEvent {
163 pub id: PosOpeningEntryId,
164 pub data: PosOpeningEntryDto,
165 pub occurred_at: DateTime<Utc>,
166}
167
168#[derive(Debug, Clone, Serialize, Deserialize)]
170pub struct PosOpeningEntryDeletedEvent {
171 pub id: PosOpeningEntryId,
172 pub occurred_at: DateTime<Utc>,
173}
174
175#[derive(Debug, Clone, Serialize, Deserialize)]
181pub struct PosCashMovementCreatedEvent {
182 pub id: PosCashMovementId,
183 pub data: PosCashMovementDto,
184 pub occurred_at: DateTime<Utc>,
185}
186
187#[derive(Debug, Clone, Serialize, Deserialize)]
189pub struct PosCashMovementUpdatedEvent {
190 pub id: PosCashMovementId,
191 pub data: PosCashMovementDto,
192 pub occurred_at: DateTime<Utc>,
193}
194
195#[derive(Debug, Clone, Serialize, Deserialize)]
197pub struct PosCashMovementDeletedEvent {
198 pub id: PosCashMovementId,
199 pub occurred_at: DateTime<Utc>,
200}
201
202#[derive(Debug, Clone, Serialize, Deserialize)]
208pub struct PosDiscountCreatedEvent {
209 pub id: PosDiscountId,
210 pub data: PosDiscountDto,
211 pub occurred_at: DateTime<Utc>,
212}
213
214#[derive(Debug, Clone, Serialize, Deserialize)]
216pub struct PosDiscountUpdatedEvent {
217 pub id: PosDiscountId,
218 pub data: PosDiscountDto,
219 pub occurred_at: DateTime<Utc>,
220}
221
222#[derive(Debug, Clone, Serialize, Deserialize)]
224pub struct PosDiscountDeletedEvent {
225 pub id: PosDiscountId,
226 pub occurred_at: DateTime<Utc>,
227}
228
229#[derive(Debug, Clone, Serialize, Deserialize)]
235pub struct PosManagerPinCreatedEvent {
236 pub id: PosManagerPinId,
237 pub data: PosManagerPinDto,
238 pub occurred_at: DateTime<Utc>,
239}
240
241#[derive(Debug, Clone, Serialize, Deserialize)]
243pub struct PosManagerPinUpdatedEvent {
244 pub id: PosManagerPinId,
245 pub data: PosManagerPinDto,
246 pub occurred_at: DateTime<Utc>,
247}
248
249#[derive(Debug, Clone, Serialize, Deserialize)]
251pub struct PosManagerPinDeletedEvent {
252 pub id: PosManagerPinId,
253 pub occurred_at: DateTime<Utc>,
254}
255
256#[derive(Debug, Clone, Serialize, Deserialize)]
262pub struct PosFloorPlanCreatedEvent {
263 pub id: PosFloorPlanId,
264 pub data: PosFloorPlanDto,
265 pub occurred_at: DateTime<Utc>,
266}
267
268#[derive(Debug, Clone, Serialize, Deserialize)]
270pub struct PosFloorPlanUpdatedEvent {
271 pub id: PosFloorPlanId,
272 pub data: PosFloorPlanDto,
273 pub occurred_at: DateTime<Utc>,
274}
275
276#[derive(Debug, Clone, Serialize, Deserialize)]
278pub struct PosFloorPlanDeletedEvent {
279 pub id: PosFloorPlanId,
280 pub occurred_at: DateTime<Utc>,
281}
282
283#[derive(Debug, Clone, Serialize, Deserialize)]
289pub struct PosTableCreatedEvent {
290 pub id: PosTableId,
291 pub data: PosTableDto,
292 pub occurred_at: DateTime<Utc>,
293}
294
295#[derive(Debug, Clone, Serialize, Deserialize)]
297pub struct PosTableUpdatedEvent {
298 pub id: PosTableId,
299 pub data: PosTableDto,
300 pub occurred_at: DateTime<Utc>,
301}
302
303#[derive(Debug, Clone, Serialize, Deserialize)]
305pub struct PosTableDeletedEvent {
306 pub id: PosTableId,
307 pub occurred_at: DateTime<Utc>,
308}
309
310#[derive(Debug, Clone, Serialize, Deserialize)]
316#[serde(tag = "type")]
317pub enum PosEvent {
318 PosClosingEntryCreated(PosClosingEntryCreatedEvent),
319 PosClosingEntryUpdated(PosClosingEntryUpdatedEvent),
320 PosClosingEntryDeleted(PosClosingEntryDeletedEvent),
321 PosInvoiceCreated(PosInvoiceCreatedEvent),
322 PosInvoiceUpdated(PosInvoiceUpdatedEvent),
323 PosInvoiceDeleted(PosInvoiceDeletedEvent),
324 PosInvoiceItemCreated(PosInvoiceItemCreatedEvent),
325 PosInvoiceItemUpdated(PosInvoiceItemUpdatedEvent),
326 PosInvoiceItemDeleted(PosInvoiceItemDeletedEvent),
327 PosPaymentCreated(PosPaymentCreatedEvent),
328 PosPaymentUpdated(PosPaymentUpdatedEvent),
329 PosPaymentDeleted(PosPaymentDeletedEvent),
330 PosProfileCreated(PosProfileCreatedEvent),
331 PosProfileUpdated(PosProfileUpdatedEvent),
332 PosProfileDeleted(PosProfileDeletedEvent),
333 PosOpeningEntryCreated(PosOpeningEntryCreatedEvent),
334 PosOpeningEntryUpdated(PosOpeningEntryUpdatedEvent),
335 PosOpeningEntryDeleted(PosOpeningEntryDeletedEvent),
336 PosCashMovementCreated(PosCashMovementCreatedEvent),
337 PosCashMovementUpdated(PosCashMovementUpdatedEvent),
338 PosCashMovementDeleted(PosCashMovementDeletedEvent),
339 PosDiscountCreated(PosDiscountCreatedEvent),
340 PosDiscountUpdated(PosDiscountUpdatedEvent),
341 PosDiscountDeleted(PosDiscountDeletedEvent),
342 PosManagerPinCreated(PosManagerPinCreatedEvent),
343 PosManagerPinUpdated(PosManagerPinUpdatedEvent),
344 PosManagerPinDeleted(PosManagerPinDeletedEvent),
345 PosFloorPlanCreated(PosFloorPlanCreatedEvent),
346 PosFloorPlanUpdated(PosFloorPlanUpdatedEvent),
347 PosFloorPlanDeleted(PosFloorPlanDeletedEvent),
348 PosTableCreated(PosTableCreatedEvent),
349 PosTableUpdated(PosTableUpdatedEvent),
350 PosTableDeleted(PosTableDeletedEvent),
351}
352
353#[derive(Debug, Clone, Serialize, Deserialize)]
355pub struct PosEventMetadata {
356 pub module: &'static str,
357 pub version: &'static str,
358}
359
360impl Default for PosEventMetadata {
361 fn default() -> Self {
362 Self {
363 module: "pos",
364 version: "1.0",
365 }
366 }
367}
368
369