@foodtolls/common 2.5.1 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,497 @@
1
+ import { CancelledType, OrderStatus, OrderType } from "src/enums/order.enum";
2
+ import { PAYMENTSTATUS, REFUNDSTATUS } from "src/enums/payment.enum";
3
+ import { DistanceTimeToReach } from "src/interfaces/gmap.interface";
4
+ import { OrderTrackDTO } from "src/interfaces/orderTrack.interface";
5
+
6
+ /**
7
+ * Kafka Topic: Create.Order.Payment
8
+ * Producer: order-management-service
9
+ * Consumers: payment-service, user-service, notification-service
10
+ *
11
+ * Triggered when a new order is created and payment needs to be initiated
12
+ */
13
+ export interface CreateOrderPaymentEvent {
14
+ orderId: string;
15
+ orderDetails: {
16
+ foodItem: Array<{
17
+ count: number;
18
+ name: string;
19
+ }>;
20
+ orderType: string;
21
+ serviceType: string;
22
+ gstCharges: number;
23
+ packagingCharges: number;
24
+ platformFee: number;
25
+ orderFinalPrice: number;
26
+ };
27
+ restaurantId: string;
28
+ userId: string;
29
+ amount: number;
30
+ currency: string;
31
+ }
32
+
33
+ /**
34
+ * Kafka Topic: New.Order.Topic
35
+ * Producer: order-management-service
36
+ * Consumers: vendor-service, admin-service
37
+ *
38
+ * Triggered when order payment is successful and vendor needs to be notified
39
+ */
40
+ export interface NewOrderEvent {
41
+ orderId: string;
42
+ userId: string;
43
+ restaurantId: string;
44
+ totalAmount: number;
45
+ gst: number;
46
+ paymentStatus: PAYMENTSTATUS;
47
+ orderStatus: OrderStatus;
48
+ orderType: OrderType;
49
+ orderDateTime: Date;
50
+ orderReachTime: number;
51
+ serviceType: string;
52
+ orderItems: Array<{
53
+ foodId: string;
54
+ quantity: number;
55
+ categoryId: string;
56
+ subCategoryId?: string;
57
+ price: number;
58
+ gstAmount: number;
59
+ packagingCharges: number;
60
+ }>;
61
+ }
62
+
63
+ /**
64
+ * Kafka Topic: Order.PaymentStatus.Topic
65
+ * Producer: payment-service
66
+ * Consumers: order-management-service, user-service
67
+ *
68
+ * Triggered when payment status changes (success/failure)
69
+ */
70
+ export interface OrderPaymentStatusEvent {
71
+ orderId: string;
72
+ razorOrderId?: string;
73
+ orderStatus: OrderStatus;
74
+ paymentStatus: PAYMENTSTATUS;
75
+ }
76
+
77
+ /**
78
+ * Kafka Topic: Vendor.Create.Topic
79
+ * Producer: user-authentication-service
80
+ * Consumers: vendor-service
81
+ *
82
+ * Triggered when a new vendor is created in the system
83
+ */
84
+ export interface VendorCreateEvent {
85
+ mobileNumber: number;
86
+ vendorId: string;
87
+ // Generic payload - needs more analysis
88
+ }
89
+
90
+ /**
91
+ * Kafka Topic: Check.Food.Availability
92
+ * Producer: order-management-service
93
+ * Consumers: vendor-service
94
+ *
95
+ * Check if food items are available at a restaurant before order creation
96
+ */
97
+ export interface CheckFoodAvailabilityEvent {
98
+ redisId: string;
99
+ restaurantId: string;
100
+ src: {
101
+ latitude: number;
102
+ longitude: number;
103
+ };
104
+ foodItems: Array<{
105
+ foodId: string;
106
+ categoryId: string;
107
+ subCategoryId?: string;
108
+ status: "Available" | "Not Available";
109
+ }>;
110
+ orderCreateDate: Date;
111
+ }
112
+
113
+ /**
114
+ * Kafka Topic: Order.Inventory.Load
115
+ * Producer: order-management-service
116
+ * Consumers: vendor-service
117
+ *
118
+ * Load order into vendor's inventory system
119
+ */
120
+ export interface OrderInventoryLoadEvent {
121
+ Restaurant: string;
122
+ Order: string;
123
+ orderStatus: OrderStatus;
124
+ userId: string;
125
+ }
126
+
127
+ /**
128
+ * Kafka Topic: Order.Status.Ack.Update
129
+ * Producer: order-management-service
130
+ * Consumers: vendor-service
131
+ *
132
+ * Acknowledge order status update
133
+ */
134
+ export interface OrderStatusAckUpdateEvent {
135
+ orderId: string;
136
+ orderStatus: OrderStatus;
137
+ }
138
+
139
+ /**
140
+ * Kafka Topic: Update.Order.CancelledStatus
141
+ * Producer: order-management-service, order-handler-service
142
+ * Consumers: vendor-service, user-service, order-management-service
143
+ *
144
+ * Triggered when an order is cancelled
145
+ */
146
+ export interface UpdateOrderCancelledStatusEvent {
147
+ orderId: string;
148
+ cancelledType: CancelledType;
149
+ cancelledReason: string;
150
+ }
151
+
152
+ /**
153
+ * Kafka Topic: Track.Update.Order.Cancelled
154
+ * Producer: order-management-service, order-handler-service
155
+ * Consumers: vendor-service, user-service, order-management-service
156
+ *
157
+ * Triggered when an order is cancelled
158
+ */
159
+ export interface TrackUpdateOrderCancelledEvent {
160
+ userId: string;
161
+ orderId: string;
162
+ cancelledType: CancelledType;
163
+ cancelledReason: string;
164
+ }
165
+
166
+ /**
167
+ * Kafka Topic: Order.Item.Partial.Update
168
+ * Producer: order-management-service
169
+ * Consumers: vendor-service, user-service
170
+ *
171
+ * Triggered when some items in an order are not available
172
+ */
173
+ export interface OrderItemPartialUpdateEvent {
174
+ orderId: string;
175
+ refundId: string;
176
+ paymentId: string;
177
+ orderDetails: {
178
+ orderId: string;
179
+ orderStatus: OrderStatus;
180
+ foodItems: Array<{
181
+ foodId: string;
182
+ categoryId: string;
183
+ subCategoryId?: string;
184
+ status: string;
185
+ }>;
186
+ };
187
+ }
188
+
189
+ /**
190
+ * Kafka Topic: Initiate.Order.Refund
191
+ * Producer: order-management-service, order-handler-service
192
+ * Consumers: payment-service
193
+ *
194
+ * Initiate a full refund for an order
195
+ */
196
+ export interface InitiateOrderRefundEvent {
197
+ orderId: string;
198
+ refundedBy?: string;
199
+ }
200
+
201
+ /**
202
+ * Kafka Topic: Initiate.Partial.Order.Refund
203
+ * Producer: order-management-service, order-handler-service
204
+ * Consumers: payment-service
205
+ *
206
+ * Initiate a partial refund for an order
207
+ */
208
+ export interface InitiatePartialOrderRefundEvent {
209
+ orderId: string;
210
+ orderDetails: {
211
+ orderId: string;
212
+ orderStatus: OrderStatus;
213
+ foodItems: Array<{
214
+ foodId: string;
215
+ categoryId: string;
216
+ subCategoryId?: string;
217
+ status: string;
218
+ }>;
219
+ };
220
+ reason: string;
221
+ }
222
+
223
+ /**
224
+ * Kafka Topic: Check.Refund.Status
225
+ * Producer: order-handler-service
226
+ * Consumers: payment-service
227
+ *
228
+ * Check status of a refund
229
+ */
230
+ export interface CheckRefundStatusEvent {
231
+ orderId: string;
232
+ paymentId: string;
233
+ refundId: string;
234
+ }
235
+
236
+ /**
237
+ * Kafka Topic: Order.RefundStatus.Topic
238
+ * Producer: payment-service
239
+ * Consumers: order-management-service, user-service
240
+ *
241
+ * Update on refund status
242
+ */
243
+ export interface OrderRefundStatusEvent {
244
+ orderId: string;
245
+ orderStatus: OrderStatus;
246
+ paymentStatus: PAYMENTSTATUS;
247
+ refundStatus: REFUNDSTATUS;
248
+ refundAmount: number;
249
+ cancelledReason: string;
250
+ cancelledType: CancelledType;
251
+ refundId: string;
252
+ paymentId: string;
253
+ }
254
+
255
+ /**
256
+ * Kafka Topic: Order.PartialRefundStatus.Topic
257
+ * Producer: payment-service
258
+ * Consumers: order-management-service
259
+ *
260
+ * Update on partial refund status
261
+ */
262
+ export interface OrderPartialRefundStatusEvent {
263
+ orderId: string;
264
+ refundId: string;
265
+ paymentId: string;
266
+ orderStatus: OrderStatus;
267
+ paymentStatus: PAYMENTSTATUS;
268
+ refundStatus: REFUNDSTATUS;
269
+ refundAmount: number;
270
+ }
271
+
272
+ /**
273
+ * Kafka Topic: Order.Status.Topic
274
+ * Producer: vendor-service
275
+ * Consumers: order-management-service, user-service
276
+ *
277
+ * Vendor updates order status (preparing, ready, etc.)
278
+ */
279
+ export interface OrderStatusEvent {
280
+ orderId: string;
281
+ status: OrderStatus;
282
+ }
283
+
284
+ /**
285
+ * Kafka Topic: Order.RejectStatus.Topic
286
+ * Producer: vendor-service
287
+ * Consumers: order-management-service, user-service
288
+ *
289
+ * Vendor rejects an order
290
+ */
291
+ export interface OrderRejectStatusEvent {
292
+ orderId: string;
293
+ cancelledType: CancelledType;
294
+ cancelledReason: string;
295
+ }
296
+
297
+ /**
298
+ * Kafka Topic: Request.Order.Track.Order
299
+ * Producer: vendor-service
300
+ * Consumers: order-management-service
301
+ *
302
+ * Request order tracking information
303
+ */
304
+ export interface RequestOrderTrackOrderEvent {
305
+ userId: string;
306
+ orderId: string;
307
+ trackPayload: {
308
+ src: {
309
+ lat: number | undefined;
310
+ lng: number | undefined;
311
+ };
312
+ dest: {
313
+ lat: number | undefined;
314
+ lng: number | undefined;
315
+ };
316
+ firstUpdate: Date;
317
+ currentUpdates: Date | undefined;
318
+ distanceTimeToReach: DistanceTimeToReach | undefined;
319
+ orderStatus: OrderStatus;
320
+ orderCreateDate: Date;
321
+ };
322
+ }
323
+
324
+ /**
325
+ * Kafka Topic: Order.Payment.Failed
326
+ * Producer: payment-service
327
+ * Consumers: order-management-service, user-service
328
+ *
329
+ * Payment for an order failed
330
+ */
331
+ export interface OrderPaymentFailedEvent {
332
+ orderId: string;
333
+ orderStatus: OrderStatus;
334
+ paymentStatus: PAYMENTSTATUS;
335
+ paymentId: string;
336
+ razorOrderId: string;
337
+ cancelledReason: string;
338
+ cancelledType: CancelledType;
339
+ }
340
+
341
+ /**
342
+ * Kafka Topic: Notification.Event
343
+ * Producer: multiple services
344
+ * Consumers: notification-service
345
+ *
346
+ * Generic notification event
347
+ */
348
+ export interface NotificationEvent {
349
+ userId: string;
350
+ orderId: string;
351
+ type: "payment_timeout" | "payment_late_success" | "payment_failed" | string;
352
+ message: string;
353
+ amount?: number;
354
+ timestamp: number;
355
+ }
356
+
357
+ /**
358
+ * Kafka Topic: Refund.Update.Status
359
+ * Producer: payment-service
360
+ * Consumers: order-handler-service
361
+ *
362
+ * Update on refund processing status
363
+ */
364
+ export interface RefundUpdateStatusEvent {
365
+ orderId: string;
366
+ refundStatus: REFUNDSTATUS.REFUNDCOMPLETED;
367
+ }
368
+
369
+ /**
370
+ * Kafka Topic: User.Create.Topic
371
+ * Producer: user-authentication-service
372
+ * Consumers: user-service
373
+ *
374
+ * New user created in the system
375
+ */
376
+ export interface UserCreateEvent {
377
+ mobileNumber: number;
378
+ userId: string;
379
+ }
380
+
381
+ /**
382
+ * Kafka Topic: Vendor.RegStatus.Topic
383
+ * Producer: unknown
384
+ * Consumers: user-authentication-service
385
+ *
386
+ * Vendor registration status update
387
+ */
388
+ export interface VendorRegStatusEvent {
389
+ vendorId: string;
390
+ status: string;
391
+ // Additional fields need analysis from producer
392
+ }
393
+
394
+ /**
395
+ * Kafka Topic: Order.LongTrack.Cancel
396
+ * Producer: unknown
397
+ * Consumers: user-service
398
+ *
399
+ * Cancel long tracking for an order
400
+ */
401
+ export interface OrderLongTrackCancelEvent {
402
+ orderId: string;
403
+ orderStatus: OrderStatus;
404
+ reason: string;
405
+ }
406
+
407
+ /**
408
+ * Kafka Topic: Track.Update.Order.ONLAZYTRACK
409
+ * Producer: unknown
410
+ * Consumers: vendor-service, user-service
411
+ *
412
+ * Update order tracking status (lazy tracking mode)
413
+ */
414
+ export interface TrackUpdateOrderOnLazyTrackEvent {
415
+ userId: string;
416
+ orderId: string;
417
+ trackPayload: OrderTrackDTO;
418
+ }
419
+
420
+ /**
421
+ * Kafka Topic: Track.Update.Order.Preparing
422
+ * Producer: unknown
423
+ * Consumers: vendor-service
424
+ *
425
+ * Update order tracking when status is preparing
426
+ */
427
+ export interface TrackUpdateOrderPreparingEvent {
428
+ userId: string;
429
+ orderId: string;
430
+ trackPayload: OrderTrackDTO;
431
+ }
432
+
433
+ /**
434
+ * Kafka Topic: Check.Cart.Food.Availability
435
+ * Producer: unknown
436
+ * Consumers: vendor-service
437
+ *
438
+ * Check food availability for cart items
439
+ */
440
+ export interface CheckCartFoodAvailabilityEvent {
441
+ restaurantId: string;
442
+ foodItems: Array<{
443
+ foodId: string;
444
+ categoryId: string;
445
+ subCategoryId?: string;
446
+ }>;
447
+ userId: string;
448
+ }
449
+
450
+ /**
451
+ * Kafka Topic: Hotel.Inventory.Load
452
+ * Producer: unknown
453
+ * Consumers: vendor-service
454
+ *
455
+ * Load hotel/restaurant inventory
456
+ */
457
+ export interface HotelInventoryLoadEvent {
458
+ restaurantIds: string[];
459
+ }
460
+
461
+ /**
462
+ * Kafka Topic: Request.Order.Track.Vendor
463
+ * Producer: unknown
464
+ * Consumers: vendor-service
465
+ *
466
+ * Vendor-specific order tracking request
467
+ */
468
+ export interface RequestOrderTrackVendorEvent {
469
+ orderId: string;
470
+ restaurantId: string;
471
+ trackType: string;
472
+ }
473
+
474
+ /**
475
+ * Kafka Topic: Order.Queue.Add.Monitor
476
+ * Producer: unknown
477
+ * Consumers: order-management-service
478
+ *
479
+ * Add order to monitoring queue
480
+ */
481
+ export interface OrderQueueAddMonitorEvent {
482
+ orderId: string;
483
+ queueType: "ready" | "serving";
484
+ statusChangeDate: Date;
485
+ }
486
+
487
+ /**
488
+ * Kafka Topic: Vendor.Create.Rollback.Topic
489
+ * Producer: unknown
490
+ * Consumers: vendor-service
491
+ *
492
+ * Rollback vendor creation (saga pattern)
493
+ */
494
+ export interface VendorCreateRollbackEvent {
495
+ vendorId: string;
496
+ reason: string;
497
+ }