@foodtolls/common 2.5.1 → 2.6.0

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