@novha/anlia-core-lib 0.1.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.
- package/cdk/bin/infrastructure.ts +18 -0
- package/cdk/bin/project-names.ts +7 -0
- package/cdk/lib/infrastructure.ts +37 -0
- package/cdk.json +70 -0
- package/dist/cdk/bin/infrastructure.d.ts +1 -0
- package/dist/cdk/bin/infrastructure.js +20 -0
- package/dist/cdk/bin/project-names.d.ts +6 -0
- package/dist/cdk/bin/project-names.js +4 -0
- package/dist/cdk/lib/infrastructure.d.ts +6 -0
- package/dist/cdk/lib/infrastructure.js +32 -0
- package/dist/src/enums/domain/DayOfWeek.d.ts +9 -0
- package/dist/src/enums/domain/DayOfWeek.js +13 -0
- package/dist/src/enums/domain/Delivery.d.ts +19 -0
- package/dist/src/enums/domain/Delivery.js +24 -0
- package/dist/src/enums/domain/Employee.d.ts +12 -0
- package/dist/src/enums/domain/Employee.js +16 -0
- package/dist/src/enums/domain/Ingredient.d.ts +31 -0
- package/dist/src/enums/domain/Ingredient.js +37 -0
- package/dist/src/enums/domain/Inventory.d.ts +29 -0
- package/dist/src/enums/domain/Inventory.js +36 -0
- package/dist/src/enums/domain/Kitchen.d.ts +49 -0
- package/dist/src/enums/domain/Kitchen.js +59 -0
- package/dist/src/enums/domain/Menu.d.ts +13 -0
- package/dist/src/enums/domain/Menu.js +18 -0
- package/dist/src/enums/domain/Payments.d.ts +21 -0
- package/dist/src/enums/domain/Payments.js +26 -0
- package/dist/src/enums/domain/Recipe.d.ts +14 -0
- package/dist/src/enums/domain/Recipe.js +19 -0
- package/dist/src/enums/domain/Reservation.d.ts +17 -0
- package/dist/src/enums/domain/Reservation.js +22 -0
- package/dist/src/enums/domain/Restaurant.d.ts +39 -0
- package/dist/src/enums/domain/Restaurant.js +45 -0
- package/dist/src/enums/domain/Table.d.ts +23 -0
- package/dist/src/enums/domain/Table.js +29 -0
- package/dist/src/enums/domain/Vendors.d.ts +29 -0
- package/dist/src/enums/domain/Vendors.js +35 -0
- package/dist/src/enums/index.d.ts +13 -0
- package/dist/src/enums/index.js +29 -0
- package/dist/src/eventBridge/EventBridgeModule.d.ts +2 -0
- package/dist/src/eventBridge/EventBridgeModule.js +26 -0
- package/dist/src/eventBridge/domain/EventBridgeOptions.d.ts +8 -0
- package/dist/src/eventBridge/domain/EventBridgeOptions.js +2 -0
- package/dist/src/eventBridge/ioc/index.d.ts +3 -0
- package/dist/src/eventBridge/ioc/index.js +6 -0
- package/dist/src/eventBridge/ioc.d.ts +3 -0
- package/dist/src/eventBridge/ioc.js +6 -0
- package/dist/src/eventBridge/service/EventBridgeService.d.ts +5 -0
- package/dist/src/eventBridge/service/EventBridgeService.js +2 -0
- package/dist/src/eventBridge/service/EventBridgeServiceImpl.d.ts +13 -0
- package/dist/src/eventBridge/service/EventBridgeServiceImpl.js +63 -0
- package/dist/src/events/domain/CustomerEvents.d.ts +54 -0
- package/dist/src/events/domain/CustomerEvents.js +2 -0
- package/dist/src/events/domain/DeliveryEvents.d.ts +61 -0
- package/dist/src/events/domain/DeliveryEvents.js +2 -0
- package/dist/src/events/domain/DomainEvent.d.ts +12 -0
- package/dist/src/events/domain/DomainEvent.js +2 -0
- package/dist/src/events/domain/DomainEventType.d.ts +119 -0
- package/dist/src/events/domain/DomainEventType.js +136 -0
- package/dist/src/events/domain/EmployeeEvents.d.ts +51 -0
- package/dist/src/events/domain/EmployeeEvents.js +2 -0
- package/dist/src/events/domain/InventoryEvents.d.ts +141 -0
- package/dist/src/events/domain/InventoryEvents.js +2 -0
- package/dist/src/events/domain/OrderEvents.d.ts +105 -0
- package/dist/src/events/domain/OrderEvents.js +2 -0
- package/dist/src/events/domain/PaymentEvents.d.ts +73 -0
- package/dist/src/events/domain/PaymentEvents.js +2 -0
- package/dist/src/events/domain/RecipeEvents.d.ts +45 -0
- package/dist/src/events/domain/RecipeEvents.js +2 -0
- package/dist/src/events/domain/ReservationEvents.d.ts +93 -0
- package/dist/src/events/domain/ReservationEvents.js +2 -0
- package/dist/src/events/domain/RestaurantEvents.d.ts +62 -0
- package/dist/src/events/domain/RestaurantEvents.js +2 -0
- package/dist/src/events/domain/TableEvents.d.ts +71 -0
- package/dist/src/events/domain/TableEvents.js +2 -0
- package/dist/src/events/domain/VendorEvents.d.ts +28 -0
- package/dist/src/events/domain/VendorEvents.js +2 -0
- package/dist/src/events/index.d.ts +13 -0
- package/dist/src/events/index.js +29 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +20 -0
- package/dist/src/interfaces/Address.d.ts +7 -0
- package/dist/src/interfaces/Address.js +2 -0
- package/dist/src/interfaces/Customer.d.ts +21 -0
- package/dist/src/interfaces/Customer.js +2 -0
- package/dist/src/interfaces/Delivery.d.ts +62 -0
- package/dist/src/interfaces/Delivery.js +2 -0
- package/dist/src/interfaces/Employee.d.ts +19 -0
- package/dist/src/interfaces/Employee.js +2 -0
- package/dist/src/interfaces/Ingredient.d.ts +42 -0
- package/dist/src/interfaces/Ingredient.js +2 -0
- package/dist/src/interfaces/Inventory.d.ts +26 -0
- package/dist/src/interfaces/Inventory.js +2 -0
- package/dist/src/interfaces/Kitchen.d.ts +72 -0
- package/dist/src/interfaces/Kitchen.js +2 -0
- package/dist/src/interfaces/Location.d.ts +14 -0
- package/dist/src/interfaces/Location.js +2 -0
- package/dist/src/interfaces/Menu.d.ts +72 -0
- package/dist/src/interfaces/Menu.js +2 -0
- package/dist/src/interfaces/Money.d.ts +5 -0
- package/dist/src/interfaces/Money.js +2 -0
- package/dist/src/interfaces/OpeningHours.d.ts +7 -0
- package/dist/src/interfaces/OpeningHours.js +2 -0
- package/dist/src/interfaces/Payment.d.ts +36 -0
- package/dist/src/interfaces/Payment.js +2 -0
- package/dist/src/interfaces/Recipe.d.ts +58 -0
- package/dist/src/interfaces/Recipe.js +2 -0
- package/dist/src/interfaces/Resevation.d.ts +25 -0
- package/dist/src/interfaces/Resevation.js +2 -0
- package/dist/src/interfaces/Restaurant.d.ts +24 -0
- package/dist/src/interfaces/Restaurant.js +2 -0
- package/dist/src/interfaces/Table.d.ts +54 -0
- package/dist/src/interfaces/Table.js +2 -0
- package/dist/src/interfaces/Vendor.d.ts +19 -0
- package/dist/src/interfaces/Vendor.js +2 -0
- package/dist/src/interfaces/domain/Address.d.ts +7 -0
- package/dist/src/interfaces/domain/Address.js +2 -0
- package/dist/src/interfaces/domain/Customer.d.ts +21 -0
- package/dist/src/interfaces/domain/Customer.js +2 -0
- package/dist/src/interfaces/domain/Delivery.d.ts +62 -0
- package/dist/src/interfaces/domain/Delivery.js +2 -0
- package/dist/src/interfaces/domain/Employee.d.ts +19 -0
- package/dist/src/interfaces/domain/Employee.js +2 -0
- package/dist/src/interfaces/domain/Ingredient.d.ts +42 -0
- package/dist/src/interfaces/domain/Ingredient.js +2 -0
- package/dist/src/interfaces/domain/Inventory.d.ts +26 -0
- package/dist/src/interfaces/domain/Inventory.js +2 -0
- package/dist/src/interfaces/domain/Kitchen.d.ts +72 -0
- package/dist/src/interfaces/domain/Kitchen.js +2 -0
- package/dist/src/interfaces/domain/Location.d.ts +14 -0
- package/dist/src/interfaces/domain/Location.js +2 -0
- package/dist/src/interfaces/domain/Menu.d.ts +72 -0
- package/dist/src/interfaces/domain/Menu.js +2 -0
- package/dist/src/interfaces/domain/Money.d.ts +5 -0
- package/dist/src/interfaces/domain/Money.js +2 -0
- package/dist/src/interfaces/domain/OpeningHours.d.ts +7 -0
- package/dist/src/interfaces/domain/OpeningHours.js +2 -0
- package/dist/src/interfaces/domain/Payment.d.ts +36 -0
- package/dist/src/interfaces/domain/Payment.js +2 -0
- package/dist/src/interfaces/domain/Recipe.d.ts +58 -0
- package/dist/src/interfaces/domain/Recipe.js +2 -0
- package/dist/src/interfaces/domain/Reservation.d.ts +25 -0
- package/dist/src/interfaces/domain/Reservation.js +2 -0
- package/dist/src/interfaces/domain/Restaurant.d.ts +24 -0
- package/dist/src/interfaces/domain/Restaurant.js +2 -0
- package/dist/src/interfaces/domain/Table.d.ts +54 -0
- package/dist/src/interfaces/domain/Table.js +2 -0
- package/dist/src/interfaces/domain/Vendor.d.ts +19 -0
- package/dist/src/interfaces/domain/Vendor.js +2 -0
- package/dist/src/interfaces/index.d.ts +17 -0
- package/dist/src/interfaces/index.js +33 -0
- package/dist/src/orders/OrderModule.d.ts +2 -0
- package/dist/src/orders/OrderModule.js +28 -0
- package/dist/src/orders/domain/Enums.d.ts +16 -0
- package/dist/src/orders/domain/Enums.js +21 -0
- package/dist/src/orders/domain/Order.d.ts +89 -0
- package/dist/src/orders/domain/Order.js +2 -0
- package/dist/src/orders/domain/OrderItem.d.ts +53 -0
- package/dist/src/orders/domain/OrderItem.js +2 -0
- package/dist/src/orders/domain/posDto/SquareOrder.d.ts +347 -0
- package/dist/src/orders/domain/posDto/SquareOrder.js +8 -0
- package/dist/src/orders/index.d.ts +7 -0
- package/dist/src/orders/index.js +25 -0
- package/dist/src/orders/ioc/index.d.ts +3 -0
- package/dist/src/orders/ioc/index.js +6 -0
- package/dist/src/orders/services/square/SquareOrderService.d.ts +22 -0
- package/dist/src/orders/services/square/SquareOrderService.js +4 -0
- package/dist/src/orders/services/square/SquareOrderServiceImpl.d.ts +32 -0
- package/dist/src/orders/services/square/SquareOrderServiceImpl.js +308 -0
- package/jest.config.js +8 -0
- package/package.json +43 -0
- package/src/enums/domain/DayOfWeek.ts +9 -0
- package/src/enums/domain/Delivery.ts +20 -0
- package/src/enums/domain/Employee.ts +12 -0
- package/src/enums/domain/Ingredient.ts +33 -0
- package/src/enums/domain/Inventory.ts +39 -0
- package/src/enums/domain/Kitchen.ts +89 -0
- package/src/enums/domain/Menu.ts +14 -0
- package/src/enums/domain/Payments.ts +41 -0
- package/src/enums/domain/Recipe.ts +15 -0
- package/src/enums/domain/Reservation.ts +18 -0
- package/src/enums/domain/Restaurant.ts +41 -0
- package/src/enums/domain/Table.ts +39 -0
- package/src/enums/domain/Vendors.ts +45 -0
- package/src/enums/index.ts +13 -0
- package/src/eventBridge/EventBridgeModule.ts +14 -0
- package/src/eventBridge/domain/EventBridgeOptions.ts +8 -0
- package/src/eventBridge/ioc/index.ts +3 -0
- package/src/eventBridge/ioc.ts +3 -0
- package/src/eventBridge/service/EventBridgeService.ts +8 -0
- package/src/eventBridge/service/EventBridgeServiceImpl.ts +67 -0
- package/src/events/domain/CustomerEvents.ts +79 -0
- package/src/events/domain/DeliveryEvents.ts +82 -0
- package/src/events/domain/DomainEvent.ts +17 -0
- package/src/events/domain/DomainEventType.ts +143 -0
- package/src/events/domain/EmployeeEvents.ts +74 -0
- package/src/events/domain/InventoryEvents.ts +184 -0
- package/src/events/domain/OrderEvents.ts +142 -0
- package/src/events/domain/PaymentEvents.ts +92 -0
- package/src/events/domain/RecipeEvents.ts +64 -0
- package/src/events/domain/ReservationEvents.ts +133 -0
- package/src/events/domain/RestaurantEvents.ts +89 -0
- package/src/events/domain/TableEvents.ts +102 -0
- package/src/events/domain/VendorEvents.ts +42 -0
- package/src/events/index.ts +13 -0
- package/src/index.ts +4 -0
- package/src/interfaces/domain/Address.ts +7 -0
- package/src/interfaces/domain/Customer.ts +33 -0
- package/src/interfaces/domain/Delivery.ts +96 -0
- package/src/interfaces/domain/Employee.ts +29 -0
- package/src/interfaces/domain/Ingredient.ts +68 -0
- package/src/interfaces/domain/Inventory.ts +52 -0
- package/src/interfaces/domain/Kitchen.ts +128 -0
- package/src/interfaces/domain/Location.ts +20 -0
- package/src/interfaces/domain/Menu.ts +121 -0
- package/src/interfaces/domain/Money.ts +6 -0
- package/src/interfaces/domain/OpeningHours.ts +11 -0
- package/src/interfaces/domain/Payment.ts +45 -0
- package/src/interfaces/domain/Recipe.ts +91 -0
- package/src/interfaces/domain/Reservation.ts +45 -0
- package/src/interfaces/domain/Restaurant.ts +45 -0
- package/src/interfaces/domain/Table.ts +69 -0
- package/src/interfaces/domain/Vendor.ts +35 -0
- package/src/interfaces/index.ts +17 -0
- package/src/orders/OrderModule.ts +17 -0
- package/src/orders/domain/Enums.ts +17 -0
- package/src/orders/domain/Order.ts +109 -0
- package/src/orders/domain/OrderItem.ts +68 -0
- package/src/orders/domain/posDto/SquareOrder.ts +346 -0
- package/src/orders/index.ts +7 -0
- package/src/orders/ioc/index.ts +3 -0
- package/src/orders/services/square/SquareOrderService.ts +27 -0
- package/src/orders/services/square/SquareOrderServiceImpl.ts +330 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
export declare enum AggregateType {
|
|
2
|
+
Customer = "Customer",
|
|
3
|
+
Delivery = "Delivery",
|
|
4
|
+
Employee = "Employee",
|
|
5
|
+
InventoryItem = "InventoryItem",
|
|
6
|
+
Order = "Order",
|
|
7
|
+
Payment = "Payment",
|
|
8
|
+
Recipe = "Recipe",
|
|
9
|
+
Reservation = "Reservation",
|
|
10
|
+
Restaurant = "Restaurant",
|
|
11
|
+
Table = "Table",
|
|
12
|
+
Vendor = "Vendor"
|
|
13
|
+
}
|
|
14
|
+
export declare enum DomainEventType {
|
|
15
|
+
CustomerCreated = "CustomerCreated",
|
|
16
|
+
CustomerUpdated = "CustomerUpdated",
|
|
17
|
+
CustomerDeleted = "CustomerDeleted",
|
|
18
|
+
CustomerBlocked = "CustomerBlocked",
|
|
19
|
+
CustomerMerged = "CustomerMerged",
|
|
20
|
+
CustomerLoyaltyPointsAdded = "CustomerLoyaltyPointsAdded",
|
|
21
|
+
CustomerLoyaltyPointsRedeemed = "CustomerLoyaltyPointsRedeemed",
|
|
22
|
+
CustomerMembershipCreated = "CustomerMembershipCreated",
|
|
23
|
+
DeliveryCreated = "DeliveryCreated",
|
|
24
|
+
DeliveryAssigned = "DeliveryAssigned",
|
|
25
|
+
DeliveryAccepted = "DeliveryAccepted",
|
|
26
|
+
DeliveryPickedUp = "DeliveryPickedUp",
|
|
27
|
+
DeliveryInTransit = "DeliveryInTransit",
|
|
28
|
+
DeliveryDelivered = "DeliveryDelivered",
|
|
29
|
+
DeliveryCancelled = "DeliveryCancelled",
|
|
30
|
+
DeliveryFailed = "DeliveryFailed",
|
|
31
|
+
EmployeeCreated = "EmployeeCreated",
|
|
32
|
+
EmployeeUpdated = "EmployeeUpdated",
|
|
33
|
+
EmployeeDeleted = "EmployeeDeleted",
|
|
34
|
+
EmployeeClockedIn = "EmployeeClockedIn",
|
|
35
|
+
EmployeeClockedOut = "EmployeeClockedOut",
|
|
36
|
+
EmployeeRoleChanged = "EmployeeRoleChanged",
|
|
37
|
+
EmployeeAssignedTable = "EmployeeAssignedTable",
|
|
38
|
+
InventoryItemCreated = "InventoryItemCreated",
|
|
39
|
+
InventoryItemUpdated = "InventoryItemUpdated",
|
|
40
|
+
InventoryItemDeleted = "InventoryItemDeleted",
|
|
41
|
+
InventoryAdjusted = "InventoryAdjusted",
|
|
42
|
+
InventoryConsumed = "InventoryConsumed",
|
|
43
|
+
InventoryReceived = "InventoryReceived",
|
|
44
|
+
InventoryTransferred = "InventoryTransferred",
|
|
45
|
+
InventoryReturned = "InventoryReturned",
|
|
46
|
+
InventoryExpired = "InventoryExpired",
|
|
47
|
+
InventorySpoiled = "InventorySpoiled",
|
|
48
|
+
InventoryLowStock = "InventoryLowStock",
|
|
49
|
+
InventoryOutOfStock = "InventoryOutOfStock",
|
|
50
|
+
InventoryReplenished = "InventoryReplenished",
|
|
51
|
+
InventoryTransactionCreated = "InventoryTransactionCreated",
|
|
52
|
+
InventoryTransactionReversed = "InventoryTransactionReversed",
|
|
53
|
+
OrderCreated = "OrderCreated",
|
|
54
|
+
OrderUpdated = "OrderUpdated",
|
|
55
|
+
OrderSubmitted = "OrderSubmitted",
|
|
56
|
+
OrderConfirmed = "OrderConfirmed",
|
|
57
|
+
OrderRejected = "OrderRejected",
|
|
58
|
+
OrderCancelled = "OrderCancelled",
|
|
59
|
+
OrderCompleted = "OrderCompleted",
|
|
60
|
+
OrderReopened = "OrderReopened",
|
|
61
|
+
OrderClosed = "OrderClosed",
|
|
62
|
+
OrderItemAdded = "OrderItemAdded",
|
|
63
|
+
OrderItemUpdated = "OrderItemUpdated",
|
|
64
|
+
OrderItemRemoved = "OrderItemRemoved",
|
|
65
|
+
OrderItemPrepared = "OrderItemPrepared",
|
|
66
|
+
OrderItemServed = "OrderItemServed",
|
|
67
|
+
OrderItemVoided = "OrderItemVoided",
|
|
68
|
+
PaymentCreated = "PaymentCreated",
|
|
69
|
+
PaymentAuthorized = "PaymentAuthorized",
|
|
70
|
+
PaymentCaptured = "PaymentCaptured",
|
|
71
|
+
PaymentDeclined = "PaymentDeclined",
|
|
72
|
+
PaymentRefunded = "PaymentRefunded",
|
|
73
|
+
PaymentVoided = "PaymentVoided",
|
|
74
|
+
PaymentFailed = "PaymentFailed",
|
|
75
|
+
RecipeCreated = "RecipeCreated",
|
|
76
|
+
RecipeUpdated = "RecipeUpdated",
|
|
77
|
+
RecipeDeleted = "RecipeDeleted",
|
|
78
|
+
RecipeIngredientAdded = "RecipeIngredientAdded",
|
|
79
|
+
RecipeIngredientUpdated = "RecipeIngredientUpdated",
|
|
80
|
+
RecipeIngredientRemoved = "RecipeIngredientRemoved",
|
|
81
|
+
ReservationCreated = "ReservationCreated",
|
|
82
|
+
ReservationConfirmed = "ReservationConfirmed",
|
|
83
|
+
ReservationRejected = "ReservationRejected",
|
|
84
|
+
ReservationUpdated = "ReservationUpdated",
|
|
85
|
+
ReservationCancelled = "ReservationCancelled",
|
|
86
|
+
ReservationCheckedIn = "ReservationCheckedIn",
|
|
87
|
+
ReservationSeated = "ReservationSeated",
|
|
88
|
+
ReservationCompleted = "ReservationCompleted",
|
|
89
|
+
ReservationNoShow = "ReservationNoShow",
|
|
90
|
+
ReservationTableAssigned = "ReservationTableAssigned",
|
|
91
|
+
ReservationTableChanged = "ReservationTableChanged",
|
|
92
|
+
WaitlistJoined = "WaitlistJoined",
|
|
93
|
+
WaitlistPromoted = "WaitlistPromoted",
|
|
94
|
+
WaitlistCancelled = "WaitlistCancelled",
|
|
95
|
+
RestaurantCreated = "RestaurantCreated",
|
|
96
|
+
RestaurantUpdated = "RestaurantUpdated",
|
|
97
|
+
RestaurantActivated = "RestaurantActivated",
|
|
98
|
+
RestaurantSuspended = "RestaurantSuspended",
|
|
99
|
+
RestaurantClosed = "RestaurantClosed",
|
|
100
|
+
RestaurantDeleted = "RestaurantDeleted",
|
|
101
|
+
RestaurantHoursUpdated = "RestaurantHoursUpdated",
|
|
102
|
+
RestaurantLocationUpdated = "RestaurantLocationUpdated",
|
|
103
|
+
RestaurantCapacityChanged = "RestaurantCapacityChanged",
|
|
104
|
+
RestaurantSettingsUpdated = "RestaurantSettingsUpdated",
|
|
105
|
+
TableCreated = "TableCreated",
|
|
106
|
+
TableUpdated = "TableUpdated",
|
|
107
|
+
TableOpened = "TableOpened",
|
|
108
|
+
TableOccupied = "TableOccupied",
|
|
109
|
+
TableReserved = "TableReserved",
|
|
110
|
+
TableReleased = "TableReleased",
|
|
111
|
+
TableMerged = "TableMerged",
|
|
112
|
+
TableSplit = "TableSplit",
|
|
113
|
+
TableOutOfService = "TableOutOfService",
|
|
114
|
+
TableReturnedToService = "TableReturnedToService",
|
|
115
|
+
VendorCreated = "VendorCreated",
|
|
116
|
+
VendorUpdated = "VendorUpdated",
|
|
117
|
+
VendorActivated = "VendorActivated",
|
|
118
|
+
VendorDeactivated = "VendorDeactivated"
|
|
119
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DomainEventType = exports.AggregateType = void 0;
|
|
4
|
+
var AggregateType;
|
|
5
|
+
(function (AggregateType) {
|
|
6
|
+
AggregateType["Customer"] = "Customer";
|
|
7
|
+
AggregateType["Delivery"] = "Delivery";
|
|
8
|
+
AggregateType["Employee"] = "Employee";
|
|
9
|
+
AggregateType["InventoryItem"] = "InventoryItem";
|
|
10
|
+
AggregateType["Order"] = "Order";
|
|
11
|
+
AggregateType["Payment"] = "Payment";
|
|
12
|
+
AggregateType["Recipe"] = "Recipe";
|
|
13
|
+
AggregateType["Reservation"] = "Reservation";
|
|
14
|
+
AggregateType["Restaurant"] = "Restaurant";
|
|
15
|
+
AggregateType["Table"] = "Table";
|
|
16
|
+
AggregateType["Vendor"] = "Vendor";
|
|
17
|
+
})(AggregateType || (exports.AggregateType = AggregateType = {}));
|
|
18
|
+
var DomainEventType;
|
|
19
|
+
(function (DomainEventType) {
|
|
20
|
+
// ─── Customer ─────────────────────────────────────────────────────────────
|
|
21
|
+
DomainEventType["CustomerCreated"] = "CustomerCreated";
|
|
22
|
+
DomainEventType["CustomerUpdated"] = "CustomerUpdated";
|
|
23
|
+
DomainEventType["CustomerDeleted"] = "CustomerDeleted";
|
|
24
|
+
DomainEventType["CustomerBlocked"] = "CustomerBlocked";
|
|
25
|
+
DomainEventType["CustomerMerged"] = "CustomerMerged";
|
|
26
|
+
DomainEventType["CustomerLoyaltyPointsAdded"] = "CustomerLoyaltyPointsAdded";
|
|
27
|
+
DomainEventType["CustomerLoyaltyPointsRedeemed"] = "CustomerLoyaltyPointsRedeemed";
|
|
28
|
+
DomainEventType["CustomerMembershipCreated"] = "CustomerMembershipCreated";
|
|
29
|
+
// ─── Delivery ─────────────────────────────────────────────────────────────
|
|
30
|
+
DomainEventType["DeliveryCreated"] = "DeliveryCreated";
|
|
31
|
+
DomainEventType["DeliveryAssigned"] = "DeliveryAssigned";
|
|
32
|
+
DomainEventType["DeliveryAccepted"] = "DeliveryAccepted";
|
|
33
|
+
DomainEventType["DeliveryPickedUp"] = "DeliveryPickedUp";
|
|
34
|
+
DomainEventType["DeliveryInTransit"] = "DeliveryInTransit";
|
|
35
|
+
DomainEventType["DeliveryDelivered"] = "DeliveryDelivered";
|
|
36
|
+
DomainEventType["DeliveryCancelled"] = "DeliveryCancelled";
|
|
37
|
+
DomainEventType["DeliveryFailed"] = "DeliveryFailed";
|
|
38
|
+
// ─── Employee ─────────────────────────────────────────────────────────────
|
|
39
|
+
DomainEventType["EmployeeCreated"] = "EmployeeCreated";
|
|
40
|
+
DomainEventType["EmployeeUpdated"] = "EmployeeUpdated";
|
|
41
|
+
DomainEventType["EmployeeDeleted"] = "EmployeeDeleted";
|
|
42
|
+
DomainEventType["EmployeeClockedIn"] = "EmployeeClockedIn";
|
|
43
|
+
DomainEventType["EmployeeClockedOut"] = "EmployeeClockedOut";
|
|
44
|
+
DomainEventType["EmployeeRoleChanged"] = "EmployeeRoleChanged";
|
|
45
|
+
DomainEventType["EmployeeAssignedTable"] = "EmployeeAssignedTable";
|
|
46
|
+
// ─── Inventory ────────────────────────────────────────────────────────────
|
|
47
|
+
DomainEventType["InventoryItemCreated"] = "InventoryItemCreated";
|
|
48
|
+
DomainEventType["InventoryItemUpdated"] = "InventoryItemUpdated";
|
|
49
|
+
DomainEventType["InventoryItemDeleted"] = "InventoryItemDeleted";
|
|
50
|
+
DomainEventType["InventoryAdjusted"] = "InventoryAdjusted";
|
|
51
|
+
DomainEventType["InventoryConsumed"] = "InventoryConsumed";
|
|
52
|
+
DomainEventType["InventoryReceived"] = "InventoryReceived";
|
|
53
|
+
DomainEventType["InventoryTransferred"] = "InventoryTransferred";
|
|
54
|
+
DomainEventType["InventoryReturned"] = "InventoryReturned";
|
|
55
|
+
DomainEventType["InventoryExpired"] = "InventoryExpired";
|
|
56
|
+
DomainEventType["InventorySpoiled"] = "InventorySpoiled";
|
|
57
|
+
DomainEventType["InventoryLowStock"] = "InventoryLowStock";
|
|
58
|
+
DomainEventType["InventoryOutOfStock"] = "InventoryOutOfStock";
|
|
59
|
+
DomainEventType["InventoryReplenished"] = "InventoryReplenished";
|
|
60
|
+
DomainEventType["InventoryTransactionCreated"] = "InventoryTransactionCreated";
|
|
61
|
+
DomainEventType["InventoryTransactionReversed"] = "InventoryTransactionReversed";
|
|
62
|
+
// ─── Order ────────────────────────────────────────────────────────────────
|
|
63
|
+
DomainEventType["OrderCreated"] = "OrderCreated";
|
|
64
|
+
DomainEventType["OrderUpdated"] = "OrderUpdated";
|
|
65
|
+
DomainEventType["OrderSubmitted"] = "OrderSubmitted";
|
|
66
|
+
DomainEventType["OrderConfirmed"] = "OrderConfirmed";
|
|
67
|
+
DomainEventType["OrderRejected"] = "OrderRejected";
|
|
68
|
+
DomainEventType["OrderCancelled"] = "OrderCancelled";
|
|
69
|
+
DomainEventType["OrderCompleted"] = "OrderCompleted";
|
|
70
|
+
DomainEventType["OrderReopened"] = "OrderReopened";
|
|
71
|
+
DomainEventType["OrderClosed"] = "OrderClosed";
|
|
72
|
+
// ─── Order Item ───────────────────────────────────────────────────────────
|
|
73
|
+
DomainEventType["OrderItemAdded"] = "OrderItemAdded";
|
|
74
|
+
DomainEventType["OrderItemUpdated"] = "OrderItemUpdated";
|
|
75
|
+
DomainEventType["OrderItemRemoved"] = "OrderItemRemoved";
|
|
76
|
+
DomainEventType["OrderItemPrepared"] = "OrderItemPrepared";
|
|
77
|
+
DomainEventType["OrderItemServed"] = "OrderItemServed";
|
|
78
|
+
DomainEventType["OrderItemVoided"] = "OrderItemVoided";
|
|
79
|
+
// ─── Payment ──────────────────────────────────────────────────────────────
|
|
80
|
+
DomainEventType["PaymentCreated"] = "PaymentCreated";
|
|
81
|
+
DomainEventType["PaymentAuthorized"] = "PaymentAuthorized";
|
|
82
|
+
DomainEventType["PaymentCaptured"] = "PaymentCaptured";
|
|
83
|
+
DomainEventType["PaymentDeclined"] = "PaymentDeclined";
|
|
84
|
+
DomainEventType["PaymentRefunded"] = "PaymentRefunded";
|
|
85
|
+
DomainEventType["PaymentVoided"] = "PaymentVoided";
|
|
86
|
+
DomainEventType["PaymentFailed"] = "PaymentFailed";
|
|
87
|
+
// ─── Recipe ───────────────────────────────────────────────────────────────
|
|
88
|
+
DomainEventType["RecipeCreated"] = "RecipeCreated";
|
|
89
|
+
DomainEventType["RecipeUpdated"] = "RecipeUpdated";
|
|
90
|
+
DomainEventType["RecipeDeleted"] = "RecipeDeleted";
|
|
91
|
+
DomainEventType["RecipeIngredientAdded"] = "RecipeIngredientAdded";
|
|
92
|
+
DomainEventType["RecipeIngredientUpdated"] = "RecipeIngredientUpdated";
|
|
93
|
+
DomainEventType["RecipeIngredientRemoved"] = "RecipeIngredientRemoved";
|
|
94
|
+
// ─── Reservation ──────────────────────────────────────────────────────────
|
|
95
|
+
DomainEventType["ReservationCreated"] = "ReservationCreated";
|
|
96
|
+
DomainEventType["ReservationConfirmed"] = "ReservationConfirmed";
|
|
97
|
+
DomainEventType["ReservationRejected"] = "ReservationRejected";
|
|
98
|
+
DomainEventType["ReservationUpdated"] = "ReservationUpdated";
|
|
99
|
+
DomainEventType["ReservationCancelled"] = "ReservationCancelled";
|
|
100
|
+
DomainEventType["ReservationCheckedIn"] = "ReservationCheckedIn";
|
|
101
|
+
DomainEventType["ReservationSeated"] = "ReservationSeated";
|
|
102
|
+
DomainEventType["ReservationCompleted"] = "ReservationCompleted";
|
|
103
|
+
DomainEventType["ReservationNoShow"] = "ReservationNoShow";
|
|
104
|
+
DomainEventType["ReservationTableAssigned"] = "ReservationTableAssigned";
|
|
105
|
+
DomainEventType["ReservationTableChanged"] = "ReservationTableChanged";
|
|
106
|
+
DomainEventType["WaitlistJoined"] = "WaitlistJoined";
|
|
107
|
+
DomainEventType["WaitlistPromoted"] = "WaitlistPromoted";
|
|
108
|
+
DomainEventType["WaitlistCancelled"] = "WaitlistCancelled";
|
|
109
|
+
// ─── Restaurant ───────────────────────────────────────────────────────────
|
|
110
|
+
DomainEventType["RestaurantCreated"] = "RestaurantCreated";
|
|
111
|
+
DomainEventType["RestaurantUpdated"] = "RestaurantUpdated";
|
|
112
|
+
DomainEventType["RestaurantActivated"] = "RestaurantActivated";
|
|
113
|
+
DomainEventType["RestaurantSuspended"] = "RestaurantSuspended";
|
|
114
|
+
DomainEventType["RestaurantClosed"] = "RestaurantClosed";
|
|
115
|
+
DomainEventType["RestaurantDeleted"] = "RestaurantDeleted";
|
|
116
|
+
DomainEventType["RestaurantHoursUpdated"] = "RestaurantHoursUpdated";
|
|
117
|
+
DomainEventType["RestaurantLocationUpdated"] = "RestaurantLocationUpdated";
|
|
118
|
+
DomainEventType["RestaurantCapacityChanged"] = "RestaurantCapacityChanged";
|
|
119
|
+
DomainEventType["RestaurantSettingsUpdated"] = "RestaurantSettingsUpdated";
|
|
120
|
+
// ─── Table ────────────────────────────────────────────────────────────────
|
|
121
|
+
DomainEventType["TableCreated"] = "TableCreated";
|
|
122
|
+
DomainEventType["TableUpdated"] = "TableUpdated";
|
|
123
|
+
DomainEventType["TableOpened"] = "TableOpened";
|
|
124
|
+
DomainEventType["TableOccupied"] = "TableOccupied";
|
|
125
|
+
DomainEventType["TableReserved"] = "TableReserved";
|
|
126
|
+
DomainEventType["TableReleased"] = "TableReleased";
|
|
127
|
+
DomainEventType["TableMerged"] = "TableMerged";
|
|
128
|
+
DomainEventType["TableSplit"] = "TableSplit";
|
|
129
|
+
DomainEventType["TableOutOfService"] = "TableOutOfService";
|
|
130
|
+
DomainEventType["TableReturnedToService"] = "TableReturnedToService";
|
|
131
|
+
// ─── Vendor ───────────────────────────────────────────────────────────────
|
|
132
|
+
DomainEventType["VendorCreated"] = "VendorCreated";
|
|
133
|
+
DomainEventType["VendorUpdated"] = "VendorUpdated";
|
|
134
|
+
DomainEventType["VendorActivated"] = "VendorActivated";
|
|
135
|
+
DomainEventType["VendorDeactivated"] = "VendorDeactivated";
|
|
136
|
+
})(DomainEventType || (exports.DomainEventType = DomainEventType = {}));
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { DomainEvent } from "./DomainEvent";
|
|
2
|
+
import { IEmployee } from "../../interfaces/domain/Employee";
|
|
3
|
+
import { EmployeeRole } from "../../enums/domain/Employee";
|
|
4
|
+
export interface EmployeeCreated extends DomainEvent {
|
|
5
|
+
eventType: "EmployeeCreated";
|
|
6
|
+
aggregateType: "Employee";
|
|
7
|
+
employee: IEmployee;
|
|
8
|
+
}
|
|
9
|
+
export interface EmployeeUpdated extends DomainEvent {
|
|
10
|
+
eventType: "EmployeeUpdated";
|
|
11
|
+
aggregateType: "Employee";
|
|
12
|
+
before: Partial<IEmployee>;
|
|
13
|
+
after: Partial<IEmployee>;
|
|
14
|
+
}
|
|
15
|
+
export interface EmployeeDeleted extends DomainEvent {
|
|
16
|
+
eventType: "EmployeeDeleted";
|
|
17
|
+
aggregateType: "Employee";
|
|
18
|
+
/** Snapshot of the employee at the time of deletion. */
|
|
19
|
+
employee: IEmployee;
|
|
20
|
+
deletedAt: Date;
|
|
21
|
+
deletedBy?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface EmployeeClockedIn extends DomainEvent {
|
|
24
|
+
eventType: "EmployeeClockedIn";
|
|
25
|
+
aggregateType: "Employee";
|
|
26
|
+
clockedInAt: Date;
|
|
27
|
+
locationId?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface EmployeeClockedOut extends DomainEvent {
|
|
30
|
+
eventType: "EmployeeClockedOut";
|
|
31
|
+
aggregateType: "Employee";
|
|
32
|
+
clockedOutAt: Date;
|
|
33
|
+
/** Total minutes worked in the shift. */
|
|
34
|
+
shiftDurationMinutes?: number;
|
|
35
|
+
locationId?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface EmployeeRoleChanged extends DomainEvent {
|
|
38
|
+
eventType: "EmployeeRoleChanged";
|
|
39
|
+
aggregateType: "Employee";
|
|
40
|
+
previousRole: EmployeeRole;
|
|
41
|
+
newRole: EmployeeRole;
|
|
42
|
+
changedBy?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface EmployeeAssignedTable extends DomainEvent {
|
|
45
|
+
eventType: "EmployeeAssignedTable";
|
|
46
|
+
aggregateType: "Employee";
|
|
47
|
+
tableId: string;
|
|
48
|
+
assignedBy?: string;
|
|
49
|
+
assignedAt: Date;
|
|
50
|
+
}
|
|
51
|
+
export type EmployeeEvent = EmployeeCreated | EmployeeUpdated | EmployeeDeleted | EmployeeClockedIn | EmployeeClockedOut | EmployeeRoleChanged | EmployeeAssignedTable;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { DomainEvent } from "./DomainEvent";
|
|
2
|
+
import { IInventoryItem } from "../../interfaces/domain/Inventory";
|
|
3
|
+
import { InventoryTransactionType } from "../../enums/domain/Inventory";
|
|
4
|
+
export interface InventoryItemCreated extends DomainEvent {
|
|
5
|
+
eventType: "InventoryItemCreated";
|
|
6
|
+
aggregateType: "InventoryItem";
|
|
7
|
+
item: IInventoryItem;
|
|
8
|
+
}
|
|
9
|
+
export interface InventoryItemUpdated extends DomainEvent {
|
|
10
|
+
eventType: "InventoryItemUpdated";
|
|
11
|
+
aggregateType: "InventoryItem";
|
|
12
|
+
before: Partial<IInventoryItem>;
|
|
13
|
+
after: Partial<IInventoryItem>;
|
|
14
|
+
}
|
|
15
|
+
export interface InventoryItemDeleted extends DomainEvent {
|
|
16
|
+
eventType: "InventoryItemDeleted";
|
|
17
|
+
aggregateType: "InventoryItem";
|
|
18
|
+
/** Snapshot of the item at the time of deletion. */
|
|
19
|
+
item: IInventoryItem;
|
|
20
|
+
deletedAt: Date;
|
|
21
|
+
deletedBy?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface InventoryAdjusted extends DomainEvent {
|
|
24
|
+
eventType: "InventoryAdjusted";
|
|
25
|
+
aggregateType: "InventoryItem";
|
|
26
|
+
itemId: string;
|
|
27
|
+
previousQuantity: number;
|
|
28
|
+
newQuantity: number;
|
|
29
|
+
delta: number;
|
|
30
|
+
reason?: string;
|
|
31
|
+
adjustedBy?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface InventoryConsumed extends DomainEvent {
|
|
34
|
+
eventType: "InventoryConsumed";
|
|
35
|
+
aggregateType: "InventoryItem";
|
|
36
|
+
itemId: string;
|
|
37
|
+
quantityConsumed: number;
|
|
38
|
+
remainingQuantity: number;
|
|
39
|
+
/** Order or production run that triggered consumption. */
|
|
40
|
+
referenceId?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface InventoryReceived extends DomainEvent {
|
|
43
|
+
eventType: "InventoryReceived";
|
|
44
|
+
aggregateType: "InventoryItem";
|
|
45
|
+
itemId: string;
|
|
46
|
+
quantityReceived: number;
|
|
47
|
+
newQuantity: number;
|
|
48
|
+
supplierId?: string;
|
|
49
|
+
purchaseOrderId?: string;
|
|
50
|
+
unitCost?: number;
|
|
51
|
+
receivedBy?: string;
|
|
52
|
+
receivedAt: Date;
|
|
53
|
+
}
|
|
54
|
+
export interface InventoryTransferred extends DomainEvent {
|
|
55
|
+
eventType: "InventoryTransferred";
|
|
56
|
+
aggregateType: "InventoryItem";
|
|
57
|
+
itemId: string;
|
|
58
|
+
quantity: number;
|
|
59
|
+
fromLocationId: string;
|
|
60
|
+
toLocationId: string;
|
|
61
|
+
transferredBy?: string;
|
|
62
|
+
transferredAt: Date;
|
|
63
|
+
}
|
|
64
|
+
export interface InventoryReturned extends DomainEvent {
|
|
65
|
+
eventType: "InventoryReturned";
|
|
66
|
+
aggregateType: "InventoryItem";
|
|
67
|
+
itemId: string;
|
|
68
|
+
quantityReturned: number;
|
|
69
|
+
newQuantity: number;
|
|
70
|
+
supplierId?: string;
|
|
71
|
+
reason?: string;
|
|
72
|
+
returnedBy?: string;
|
|
73
|
+
returnedAt: Date;
|
|
74
|
+
}
|
|
75
|
+
export interface InventoryExpired extends DomainEvent {
|
|
76
|
+
eventType: "InventoryExpired";
|
|
77
|
+
aggregateType: "InventoryItem";
|
|
78
|
+
itemId: string;
|
|
79
|
+
quantityExpired: number;
|
|
80
|
+
expiryDate: Date;
|
|
81
|
+
markedBy?: string;
|
|
82
|
+
}
|
|
83
|
+
export interface InventorySpoiled extends DomainEvent {
|
|
84
|
+
eventType: "InventorySpoiled";
|
|
85
|
+
aggregateType: "InventoryItem";
|
|
86
|
+
itemId: string;
|
|
87
|
+
quantitySpoiled: number;
|
|
88
|
+
reason?: string;
|
|
89
|
+
markedBy?: string;
|
|
90
|
+
}
|
|
91
|
+
export interface InventoryLowStock extends DomainEvent {
|
|
92
|
+
eventType: "InventoryLowStock";
|
|
93
|
+
aggregateType: "InventoryItem";
|
|
94
|
+
itemId: string;
|
|
95
|
+
currentQuantity: number;
|
|
96
|
+
minimumStockLevel: number;
|
|
97
|
+
}
|
|
98
|
+
export interface InventoryOutOfStock extends DomainEvent {
|
|
99
|
+
eventType: "InventoryOutOfStock";
|
|
100
|
+
aggregateType: "InventoryItem";
|
|
101
|
+
itemId: string;
|
|
102
|
+
occurredAt: Date;
|
|
103
|
+
}
|
|
104
|
+
export interface InventoryReplenished extends DomainEvent {
|
|
105
|
+
eventType: "InventoryReplenished";
|
|
106
|
+
aggregateType: "InventoryItem";
|
|
107
|
+
itemId: string;
|
|
108
|
+
quantityAdded: number;
|
|
109
|
+
newQuantity: number;
|
|
110
|
+
transactionType: InventoryTransactionType;
|
|
111
|
+
replenishedBy?: string;
|
|
112
|
+
replenishedAt: Date;
|
|
113
|
+
}
|
|
114
|
+
export interface InventoryTransactionCreated extends DomainEvent {
|
|
115
|
+
eventType: "InventoryTransactionCreated";
|
|
116
|
+
aggregateType: "InventoryItem";
|
|
117
|
+
itemId: string;
|
|
118
|
+
transactionType: InventoryTransactionType;
|
|
119
|
+
quantity: number;
|
|
120
|
+
quantityBefore: number;
|
|
121
|
+
quantityAfter: number;
|
|
122
|
+
unitCost?: number;
|
|
123
|
+
referenceId?: string;
|
|
124
|
+
notes?: string;
|
|
125
|
+
createdBy?: string;
|
|
126
|
+
}
|
|
127
|
+
export interface InventoryTransactionReversed extends DomainEvent {
|
|
128
|
+
eventType: "InventoryTransactionReversed";
|
|
129
|
+
aggregateType: "InventoryItem";
|
|
130
|
+
itemId: string;
|
|
131
|
+
/** ID of the original transaction being reversed. */
|
|
132
|
+
originalTransactionId: string;
|
|
133
|
+
transactionType: InventoryTransactionType;
|
|
134
|
+
quantity: number;
|
|
135
|
+
quantityBefore: number;
|
|
136
|
+
quantityAfter: number;
|
|
137
|
+
reason?: string;
|
|
138
|
+
reversedBy?: string;
|
|
139
|
+
reversedAt: Date;
|
|
140
|
+
}
|
|
141
|
+
export type InventoryEvent = InventoryItemCreated | InventoryItemUpdated | InventoryItemDeleted | InventoryAdjusted | InventoryConsumed | InventoryReceived | InventoryTransferred | InventoryReturned | InventoryExpired | InventorySpoiled | InventoryLowStock | InventoryOutOfStock | InventoryReplenished | InventoryTransactionCreated | InventoryTransactionReversed;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { DomainEvent } from "./DomainEvent";
|
|
2
|
+
import { IOrder } from "../../orders/domain/Order";
|
|
3
|
+
import { IOrderItem } from "../../orders/domain/OrderItem";
|
|
4
|
+
import { OrderStatus } from "../../orders/domain/Enums";
|
|
5
|
+
export interface OrderCreated extends DomainEvent {
|
|
6
|
+
eventType: "OrderCreated";
|
|
7
|
+
aggregateType: "Order";
|
|
8
|
+
order: IOrder;
|
|
9
|
+
}
|
|
10
|
+
export interface OrderUpdated extends DomainEvent {
|
|
11
|
+
eventType: "OrderUpdated";
|
|
12
|
+
aggregateType: "Order";
|
|
13
|
+
before: Partial<IOrder>;
|
|
14
|
+
after: Partial<IOrder>;
|
|
15
|
+
}
|
|
16
|
+
export interface OrderSubmitted extends DomainEvent {
|
|
17
|
+
eventType: "OrderSubmitted";
|
|
18
|
+
aggregateType: "Order";
|
|
19
|
+
submittedAt: Date;
|
|
20
|
+
submittedBy?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface OrderConfirmed extends DomainEvent {
|
|
23
|
+
eventType: "OrderConfirmed";
|
|
24
|
+
aggregateType: "Order";
|
|
25
|
+
confirmedAt: Date;
|
|
26
|
+
confirmedBy?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface OrderRejected extends DomainEvent {
|
|
29
|
+
eventType: "OrderRejected";
|
|
30
|
+
aggregateType: "Order";
|
|
31
|
+
reason?: string;
|
|
32
|
+
rejectedAt: Date;
|
|
33
|
+
rejectedBy?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface OrderCancelled extends DomainEvent {
|
|
36
|
+
eventType: "OrderCancelled";
|
|
37
|
+
aggregateType: "Order";
|
|
38
|
+
previousStatus: OrderStatus;
|
|
39
|
+
reason?: string;
|
|
40
|
+
cancelledAt: Date;
|
|
41
|
+
cancelledBy?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface OrderCompleted extends DomainEvent {
|
|
44
|
+
eventType: "OrderCompleted";
|
|
45
|
+
aggregateType: "Order";
|
|
46
|
+
completedAt: Date;
|
|
47
|
+
completedBy?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface OrderReopened extends DomainEvent {
|
|
50
|
+
eventType: "OrderReopened";
|
|
51
|
+
aggregateType: "Order";
|
|
52
|
+
previousStatus: OrderStatus;
|
|
53
|
+
reason?: string;
|
|
54
|
+
reopenedAt: Date;
|
|
55
|
+
reopenedBy?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface OrderClosed extends DomainEvent {
|
|
58
|
+
eventType: "OrderClosed";
|
|
59
|
+
aggregateType: "Order";
|
|
60
|
+
closedAt: Date;
|
|
61
|
+
closedBy?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface OrderItemAdded extends DomainEvent {
|
|
64
|
+
eventType: "OrderItemAdded";
|
|
65
|
+
aggregateType: "Order";
|
|
66
|
+
item: IOrderItem;
|
|
67
|
+
addedBy?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface OrderItemUpdated extends DomainEvent {
|
|
70
|
+
eventType: "OrderItemUpdated";
|
|
71
|
+
aggregateType: "Order";
|
|
72
|
+
before: Partial<IOrderItem>;
|
|
73
|
+
after: Partial<IOrderItem>;
|
|
74
|
+
updatedBy?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface OrderItemRemoved extends DomainEvent {
|
|
77
|
+
eventType: "OrderItemRemoved";
|
|
78
|
+
aggregateType: "Order";
|
|
79
|
+
itemId: string;
|
|
80
|
+
reason?: string;
|
|
81
|
+
removedBy?: string;
|
|
82
|
+
}
|
|
83
|
+
export interface OrderItemPrepared extends DomainEvent {
|
|
84
|
+
eventType: "OrderItemPrepared";
|
|
85
|
+
aggregateType: "Order";
|
|
86
|
+
itemId: string;
|
|
87
|
+
preparedAt: Date;
|
|
88
|
+
preparedBy?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface OrderItemServed extends DomainEvent {
|
|
91
|
+
eventType: "OrderItemServed";
|
|
92
|
+
aggregateType: "Order";
|
|
93
|
+
itemId: string;
|
|
94
|
+
servedAt: Date;
|
|
95
|
+
servedBy?: string;
|
|
96
|
+
}
|
|
97
|
+
export interface OrderItemVoided extends DomainEvent {
|
|
98
|
+
eventType: "OrderItemVoided";
|
|
99
|
+
aggregateType: "Order";
|
|
100
|
+
itemId: string;
|
|
101
|
+
reason?: string;
|
|
102
|
+
voidedAt: Date;
|
|
103
|
+
voidedBy?: string;
|
|
104
|
+
}
|
|
105
|
+
export type OrderEvent = OrderCreated | OrderUpdated | OrderSubmitted | OrderConfirmed | OrderRejected | OrderCancelled | OrderCompleted | OrderReopened | OrderClosed | OrderItemAdded | OrderItemUpdated | OrderItemRemoved | OrderItemPrepared | OrderItemServed | OrderItemVoided;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { DomainEvent } from "./DomainEvent";
|
|
2
|
+
import { IPayment } from "../../interfaces/domain/Payment";
|
|
3
|
+
import { PaymentMethod, PaymentStatus } from "../../enums/domain/Payments";
|
|
4
|
+
import { Money } from "../../interfaces/domain/Money";
|
|
5
|
+
export interface PaymentCreated extends DomainEvent {
|
|
6
|
+
eventType: "PaymentCreated";
|
|
7
|
+
aggregateType: "Payment";
|
|
8
|
+
payment: IPayment;
|
|
9
|
+
orderId: string;
|
|
10
|
+
}
|
|
11
|
+
export interface PaymentAuthorized extends DomainEvent {
|
|
12
|
+
eventType: "PaymentAuthorized";
|
|
13
|
+
aggregateType: "Payment";
|
|
14
|
+
paymentId: string;
|
|
15
|
+
orderId: string;
|
|
16
|
+
amount: Money;
|
|
17
|
+
method: PaymentMethod;
|
|
18
|
+
authorizationCode?: string;
|
|
19
|
+
authorizedAt: Date;
|
|
20
|
+
}
|
|
21
|
+
export interface PaymentCaptured extends DomainEvent {
|
|
22
|
+
eventType: "PaymentCaptured";
|
|
23
|
+
aggregateType: "Payment";
|
|
24
|
+
paymentId: string;
|
|
25
|
+
orderId: string;
|
|
26
|
+
amount: Money;
|
|
27
|
+
capturedAt: Date;
|
|
28
|
+
}
|
|
29
|
+
export interface PaymentDeclined extends DomainEvent {
|
|
30
|
+
eventType: "PaymentDeclined";
|
|
31
|
+
aggregateType: "Payment";
|
|
32
|
+
paymentId: string;
|
|
33
|
+
orderId: string;
|
|
34
|
+
amount: Money;
|
|
35
|
+
method: PaymentMethod;
|
|
36
|
+
reason?: string;
|
|
37
|
+
declinedAt: Date;
|
|
38
|
+
}
|
|
39
|
+
export interface PaymentRefunded extends DomainEvent {
|
|
40
|
+
eventType: "PaymentRefunded";
|
|
41
|
+
aggregateType: "Payment";
|
|
42
|
+
paymentId: string;
|
|
43
|
+
orderId: string;
|
|
44
|
+
/** Amount refunded — may be partial. */
|
|
45
|
+
refundedAmount: Money;
|
|
46
|
+
/** Remaining balance after the refund. */
|
|
47
|
+
remainingAmount: Money;
|
|
48
|
+
reason?: string;
|
|
49
|
+
refundedBy?: string;
|
|
50
|
+
refundedAt: Date;
|
|
51
|
+
}
|
|
52
|
+
export interface PaymentVoided extends DomainEvent {
|
|
53
|
+
eventType: "PaymentVoided";
|
|
54
|
+
aggregateType: "Payment";
|
|
55
|
+
paymentId: string;
|
|
56
|
+
orderId: string;
|
|
57
|
+
previousStatus: PaymentStatus;
|
|
58
|
+
reason?: string;
|
|
59
|
+
voidedBy?: string;
|
|
60
|
+
voidedAt: Date;
|
|
61
|
+
}
|
|
62
|
+
export interface PaymentFailed extends DomainEvent {
|
|
63
|
+
eventType: "PaymentFailed";
|
|
64
|
+
aggregateType: "Payment";
|
|
65
|
+
paymentId: string;
|
|
66
|
+
orderId: string;
|
|
67
|
+
amount: Money;
|
|
68
|
+
method: PaymentMethod;
|
|
69
|
+
errorCode?: string;
|
|
70
|
+
errorMessage?: string;
|
|
71
|
+
failedAt: Date;
|
|
72
|
+
}
|
|
73
|
+
export type PaymentEvent = PaymentCreated | PaymentAuthorized | PaymentCaptured | PaymentDeclined | PaymentRefunded | PaymentVoided | PaymentFailed;
|