@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.
Files changed (233) hide show
  1. package/cdk/bin/infrastructure.ts +18 -0
  2. package/cdk/bin/project-names.ts +7 -0
  3. package/cdk/lib/infrastructure.ts +37 -0
  4. package/cdk.json +70 -0
  5. package/dist/cdk/bin/infrastructure.d.ts +1 -0
  6. package/dist/cdk/bin/infrastructure.js +20 -0
  7. package/dist/cdk/bin/project-names.d.ts +6 -0
  8. package/dist/cdk/bin/project-names.js +4 -0
  9. package/dist/cdk/lib/infrastructure.d.ts +6 -0
  10. package/dist/cdk/lib/infrastructure.js +32 -0
  11. package/dist/src/enums/domain/DayOfWeek.d.ts +9 -0
  12. package/dist/src/enums/domain/DayOfWeek.js +13 -0
  13. package/dist/src/enums/domain/Delivery.d.ts +19 -0
  14. package/dist/src/enums/domain/Delivery.js +24 -0
  15. package/dist/src/enums/domain/Employee.d.ts +12 -0
  16. package/dist/src/enums/domain/Employee.js +16 -0
  17. package/dist/src/enums/domain/Ingredient.d.ts +31 -0
  18. package/dist/src/enums/domain/Ingredient.js +37 -0
  19. package/dist/src/enums/domain/Inventory.d.ts +29 -0
  20. package/dist/src/enums/domain/Inventory.js +36 -0
  21. package/dist/src/enums/domain/Kitchen.d.ts +49 -0
  22. package/dist/src/enums/domain/Kitchen.js +59 -0
  23. package/dist/src/enums/domain/Menu.d.ts +13 -0
  24. package/dist/src/enums/domain/Menu.js +18 -0
  25. package/dist/src/enums/domain/Payments.d.ts +21 -0
  26. package/dist/src/enums/domain/Payments.js +26 -0
  27. package/dist/src/enums/domain/Recipe.d.ts +14 -0
  28. package/dist/src/enums/domain/Recipe.js +19 -0
  29. package/dist/src/enums/domain/Reservation.d.ts +17 -0
  30. package/dist/src/enums/domain/Reservation.js +22 -0
  31. package/dist/src/enums/domain/Restaurant.d.ts +39 -0
  32. package/dist/src/enums/domain/Restaurant.js +45 -0
  33. package/dist/src/enums/domain/Table.d.ts +23 -0
  34. package/dist/src/enums/domain/Table.js +29 -0
  35. package/dist/src/enums/domain/Vendors.d.ts +29 -0
  36. package/dist/src/enums/domain/Vendors.js +35 -0
  37. package/dist/src/enums/index.d.ts +13 -0
  38. package/dist/src/enums/index.js +29 -0
  39. package/dist/src/eventBridge/EventBridgeModule.d.ts +2 -0
  40. package/dist/src/eventBridge/EventBridgeModule.js +26 -0
  41. package/dist/src/eventBridge/domain/EventBridgeOptions.d.ts +8 -0
  42. package/dist/src/eventBridge/domain/EventBridgeOptions.js +2 -0
  43. package/dist/src/eventBridge/ioc/index.d.ts +3 -0
  44. package/dist/src/eventBridge/ioc/index.js +6 -0
  45. package/dist/src/eventBridge/ioc.d.ts +3 -0
  46. package/dist/src/eventBridge/ioc.js +6 -0
  47. package/dist/src/eventBridge/service/EventBridgeService.d.ts +5 -0
  48. package/dist/src/eventBridge/service/EventBridgeService.js +2 -0
  49. package/dist/src/eventBridge/service/EventBridgeServiceImpl.d.ts +13 -0
  50. package/dist/src/eventBridge/service/EventBridgeServiceImpl.js +63 -0
  51. package/dist/src/events/domain/CustomerEvents.d.ts +54 -0
  52. package/dist/src/events/domain/CustomerEvents.js +2 -0
  53. package/dist/src/events/domain/DeliveryEvents.d.ts +61 -0
  54. package/dist/src/events/domain/DeliveryEvents.js +2 -0
  55. package/dist/src/events/domain/DomainEvent.d.ts +12 -0
  56. package/dist/src/events/domain/DomainEvent.js +2 -0
  57. package/dist/src/events/domain/DomainEventType.d.ts +119 -0
  58. package/dist/src/events/domain/DomainEventType.js +136 -0
  59. package/dist/src/events/domain/EmployeeEvents.d.ts +51 -0
  60. package/dist/src/events/domain/EmployeeEvents.js +2 -0
  61. package/dist/src/events/domain/InventoryEvents.d.ts +141 -0
  62. package/dist/src/events/domain/InventoryEvents.js +2 -0
  63. package/dist/src/events/domain/OrderEvents.d.ts +105 -0
  64. package/dist/src/events/domain/OrderEvents.js +2 -0
  65. package/dist/src/events/domain/PaymentEvents.d.ts +73 -0
  66. package/dist/src/events/domain/PaymentEvents.js +2 -0
  67. package/dist/src/events/domain/RecipeEvents.d.ts +45 -0
  68. package/dist/src/events/domain/RecipeEvents.js +2 -0
  69. package/dist/src/events/domain/ReservationEvents.d.ts +93 -0
  70. package/dist/src/events/domain/ReservationEvents.js +2 -0
  71. package/dist/src/events/domain/RestaurantEvents.d.ts +62 -0
  72. package/dist/src/events/domain/RestaurantEvents.js +2 -0
  73. package/dist/src/events/domain/TableEvents.d.ts +71 -0
  74. package/dist/src/events/domain/TableEvents.js +2 -0
  75. package/dist/src/events/domain/VendorEvents.d.ts +28 -0
  76. package/dist/src/events/domain/VendorEvents.js +2 -0
  77. package/dist/src/events/index.d.ts +13 -0
  78. package/dist/src/events/index.js +29 -0
  79. package/dist/src/index.d.ts +4 -0
  80. package/dist/src/index.js +20 -0
  81. package/dist/src/interfaces/Address.d.ts +7 -0
  82. package/dist/src/interfaces/Address.js +2 -0
  83. package/dist/src/interfaces/Customer.d.ts +21 -0
  84. package/dist/src/interfaces/Customer.js +2 -0
  85. package/dist/src/interfaces/Delivery.d.ts +62 -0
  86. package/dist/src/interfaces/Delivery.js +2 -0
  87. package/dist/src/interfaces/Employee.d.ts +19 -0
  88. package/dist/src/interfaces/Employee.js +2 -0
  89. package/dist/src/interfaces/Ingredient.d.ts +42 -0
  90. package/dist/src/interfaces/Ingredient.js +2 -0
  91. package/dist/src/interfaces/Inventory.d.ts +26 -0
  92. package/dist/src/interfaces/Inventory.js +2 -0
  93. package/dist/src/interfaces/Kitchen.d.ts +72 -0
  94. package/dist/src/interfaces/Kitchen.js +2 -0
  95. package/dist/src/interfaces/Location.d.ts +14 -0
  96. package/dist/src/interfaces/Location.js +2 -0
  97. package/dist/src/interfaces/Menu.d.ts +72 -0
  98. package/dist/src/interfaces/Menu.js +2 -0
  99. package/dist/src/interfaces/Money.d.ts +5 -0
  100. package/dist/src/interfaces/Money.js +2 -0
  101. package/dist/src/interfaces/OpeningHours.d.ts +7 -0
  102. package/dist/src/interfaces/OpeningHours.js +2 -0
  103. package/dist/src/interfaces/Payment.d.ts +36 -0
  104. package/dist/src/interfaces/Payment.js +2 -0
  105. package/dist/src/interfaces/Recipe.d.ts +58 -0
  106. package/dist/src/interfaces/Recipe.js +2 -0
  107. package/dist/src/interfaces/Resevation.d.ts +25 -0
  108. package/dist/src/interfaces/Resevation.js +2 -0
  109. package/dist/src/interfaces/Restaurant.d.ts +24 -0
  110. package/dist/src/interfaces/Restaurant.js +2 -0
  111. package/dist/src/interfaces/Table.d.ts +54 -0
  112. package/dist/src/interfaces/Table.js +2 -0
  113. package/dist/src/interfaces/Vendor.d.ts +19 -0
  114. package/dist/src/interfaces/Vendor.js +2 -0
  115. package/dist/src/interfaces/domain/Address.d.ts +7 -0
  116. package/dist/src/interfaces/domain/Address.js +2 -0
  117. package/dist/src/interfaces/domain/Customer.d.ts +21 -0
  118. package/dist/src/interfaces/domain/Customer.js +2 -0
  119. package/dist/src/interfaces/domain/Delivery.d.ts +62 -0
  120. package/dist/src/interfaces/domain/Delivery.js +2 -0
  121. package/dist/src/interfaces/domain/Employee.d.ts +19 -0
  122. package/dist/src/interfaces/domain/Employee.js +2 -0
  123. package/dist/src/interfaces/domain/Ingredient.d.ts +42 -0
  124. package/dist/src/interfaces/domain/Ingredient.js +2 -0
  125. package/dist/src/interfaces/domain/Inventory.d.ts +26 -0
  126. package/dist/src/interfaces/domain/Inventory.js +2 -0
  127. package/dist/src/interfaces/domain/Kitchen.d.ts +72 -0
  128. package/dist/src/interfaces/domain/Kitchen.js +2 -0
  129. package/dist/src/interfaces/domain/Location.d.ts +14 -0
  130. package/dist/src/interfaces/domain/Location.js +2 -0
  131. package/dist/src/interfaces/domain/Menu.d.ts +72 -0
  132. package/dist/src/interfaces/domain/Menu.js +2 -0
  133. package/dist/src/interfaces/domain/Money.d.ts +5 -0
  134. package/dist/src/interfaces/domain/Money.js +2 -0
  135. package/dist/src/interfaces/domain/OpeningHours.d.ts +7 -0
  136. package/dist/src/interfaces/domain/OpeningHours.js +2 -0
  137. package/dist/src/interfaces/domain/Payment.d.ts +36 -0
  138. package/dist/src/interfaces/domain/Payment.js +2 -0
  139. package/dist/src/interfaces/domain/Recipe.d.ts +58 -0
  140. package/dist/src/interfaces/domain/Recipe.js +2 -0
  141. package/dist/src/interfaces/domain/Reservation.d.ts +25 -0
  142. package/dist/src/interfaces/domain/Reservation.js +2 -0
  143. package/dist/src/interfaces/domain/Restaurant.d.ts +24 -0
  144. package/dist/src/interfaces/domain/Restaurant.js +2 -0
  145. package/dist/src/interfaces/domain/Table.d.ts +54 -0
  146. package/dist/src/interfaces/domain/Table.js +2 -0
  147. package/dist/src/interfaces/domain/Vendor.d.ts +19 -0
  148. package/dist/src/interfaces/domain/Vendor.js +2 -0
  149. package/dist/src/interfaces/index.d.ts +17 -0
  150. package/dist/src/interfaces/index.js +33 -0
  151. package/dist/src/orders/OrderModule.d.ts +2 -0
  152. package/dist/src/orders/OrderModule.js +28 -0
  153. package/dist/src/orders/domain/Enums.d.ts +16 -0
  154. package/dist/src/orders/domain/Enums.js +21 -0
  155. package/dist/src/orders/domain/Order.d.ts +89 -0
  156. package/dist/src/orders/domain/Order.js +2 -0
  157. package/dist/src/orders/domain/OrderItem.d.ts +53 -0
  158. package/dist/src/orders/domain/OrderItem.js +2 -0
  159. package/dist/src/orders/domain/posDto/SquareOrder.d.ts +347 -0
  160. package/dist/src/orders/domain/posDto/SquareOrder.js +8 -0
  161. package/dist/src/orders/index.d.ts +7 -0
  162. package/dist/src/orders/index.js +25 -0
  163. package/dist/src/orders/ioc/index.d.ts +3 -0
  164. package/dist/src/orders/ioc/index.js +6 -0
  165. package/dist/src/orders/services/square/SquareOrderService.d.ts +22 -0
  166. package/dist/src/orders/services/square/SquareOrderService.js +4 -0
  167. package/dist/src/orders/services/square/SquareOrderServiceImpl.d.ts +32 -0
  168. package/dist/src/orders/services/square/SquareOrderServiceImpl.js +308 -0
  169. package/jest.config.js +8 -0
  170. package/package.json +43 -0
  171. package/src/enums/domain/DayOfWeek.ts +9 -0
  172. package/src/enums/domain/Delivery.ts +20 -0
  173. package/src/enums/domain/Employee.ts +12 -0
  174. package/src/enums/domain/Ingredient.ts +33 -0
  175. package/src/enums/domain/Inventory.ts +39 -0
  176. package/src/enums/domain/Kitchen.ts +89 -0
  177. package/src/enums/domain/Menu.ts +14 -0
  178. package/src/enums/domain/Payments.ts +41 -0
  179. package/src/enums/domain/Recipe.ts +15 -0
  180. package/src/enums/domain/Reservation.ts +18 -0
  181. package/src/enums/domain/Restaurant.ts +41 -0
  182. package/src/enums/domain/Table.ts +39 -0
  183. package/src/enums/domain/Vendors.ts +45 -0
  184. package/src/enums/index.ts +13 -0
  185. package/src/eventBridge/EventBridgeModule.ts +14 -0
  186. package/src/eventBridge/domain/EventBridgeOptions.ts +8 -0
  187. package/src/eventBridge/ioc/index.ts +3 -0
  188. package/src/eventBridge/ioc.ts +3 -0
  189. package/src/eventBridge/service/EventBridgeService.ts +8 -0
  190. package/src/eventBridge/service/EventBridgeServiceImpl.ts +67 -0
  191. package/src/events/domain/CustomerEvents.ts +79 -0
  192. package/src/events/domain/DeliveryEvents.ts +82 -0
  193. package/src/events/domain/DomainEvent.ts +17 -0
  194. package/src/events/domain/DomainEventType.ts +143 -0
  195. package/src/events/domain/EmployeeEvents.ts +74 -0
  196. package/src/events/domain/InventoryEvents.ts +184 -0
  197. package/src/events/domain/OrderEvents.ts +142 -0
  198. package/src/events/domain/PaymentEvents.ts +92 -0
  199. package/src/events/domain/RecipeEvents.ts +64 -0
  200. package/src/events/domain/ReservationEvents.ts +133 -0
  201. package/src/events/domain/RestaurantEvents.ts +89 -0
  202. package/src/events/domain/TableEvents.ts +102 -0
  203. package/src/events/domain/VendorEvents.ts +42 -0
  204. package/src/events/index.ts +13 -0
  205. package/src/index.ts +4 -0
  206. package/src/interfaces/domain/Address.ts +7 -0
  207. package/src/interfaces/domain/Customer.ts +33 -0
  208. package/src/interfaces/domain/Delivery.ts +96 -0
  209. package/src/interfaces/domain/Employee.ts +29 -0
  210. package/src/interfaces/domain/Ingredient.ts +68 -0
  211. package/src/interfaces/domain/Inventory.ts +52 -0
  212. package/src/interfaces/domain/Kitchen.ts +128 -0
  213. package/src/interfaces/domain/Location.ts +20 -0
  214. package/src/interfaces/domain/Menu.ts +121 -0
  215. package/src/interfaces/domain/Money.ts +6 -0
  216. package/src/interfaces/domain/OpeningHours.ts +11 -0
  217. package/src/interfaces/domain/Payment.ts +45 -0
  218. package/src/interfaces/domain/Recipe.ts +91 -0
  219. package/src/interfaces/domain/Reservation.ts +45 -0
  220. package/src/interfaces/domain/Restaurant.ts +45 -0
  221. package/src/interfaces/domain/Table.ts +69 -0
  222. package/src/interfaces/domain/Vendor.ts +35 -0
  223. package/src/interfaces/index.ts +17 -0
  224. package/src/orders/OrderModule.ts +17 -0
  225. package/src/orders/domain/Enums.ts +17 -0
  226. package/src/orders/domain/Order.ts +109 -0
  227. package/src/orders/domain/OrderItem.ts +68 -0
  228. package/src/orders/domain/posDto/SquareOrder.ts +346 -0
  229. package/src/orders/index.ts +7 -0
  230. package/src/orders/ioc/index.ts +3 -0
  231. package/src/orders/services/square/SquareOrderService.ts +27 -0
  232. package/src/orders/services/square/SquareOrderServiceImpl.ts +330 -0
  233. package/tsconfig.json +18 -0
@@ -0,0 +1,14 @@
1
+ export declare enum RecipeStatus {
2
+ ACTIVE = "ACTIVE",
3
+ DRAFT = "DRAFT",
4
+ ARCHIVED = "ARCHIVED"
5
+ }
6
+ export declare enum RecipeYieldUnit {
7
+ PORTION = "PORTION",
8
+ PIECE = "PIECE",
9
+ TRAY = "TRAY",
10
+ BATCH = "BATCH",
11
+ LITER = "LITER",
12
+ KILOGRAM = "KILOGRAM",
13
+ GRAM = "GRAM"
14
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RecipeYieldUnit = exports.RecipeStatus = void 0;
4
+ var RecipeStatus;
5
+ (function (RecipeStatus) {
6
+ RecipeStatus["ACTIVE"] = "ACTIVE";
7
+ RecipeStatus["DRAFT"] = "DRAFT";
8
+ RecipeStatus["ARCHIVED"] = "ARCHIVED";
9
+ })(RecipeStatus || (exports.RecipeStatus = RecipeStatus = {}));
10
+ var RecipeYieldUnit;
11
+ (function (RecipeYieldUnit) {
12
+ RecipeYieldUnit["PORTION"] = "PORTION";
13
+ RecipeYieldUnit["PIECE"] = "PIECE";
14
+ RecipeYieldUnit["TRAY"] = "TRAY";
15
+ RecipeYieldUnit["BATCH"] = "BATCH";
16
+ RecipeYieldUnit["LITER"] = "LITER";
17
+ RecipeYieldUnit["KILOGRAM"] = "KILOGRAM";
18
+ RecipeYieldUnit["GRAM"] = "GRAM";
19
+ })(RecipeYieldUnit || (exports.RecipeYieldUnit = RecipeYieldUnit = {}));
@@ -0,0 +1,17 @@
1
+ export declare enum ReservationStatus {
2
+ PENDING = "PENDING",
3
+ CONFIRMED = "CONFIRMED",
4
+ CHECKED_IN = "CHECKED_IN",
5
+ SEATED = "SEATED",
6
+ COMPLETED = "COMPLETED",
7
+ CANCELLED = "CANCELLED",
8
+ NO_SHOW = "NO_SHOW"
9
+ }
10
+ export declare enum ReservationSource {
11
+ PHONE = "PHONE",
12
+ WALK_IN = "WALK_IN",
13
+ WEBSITE = "WEBSITE",
14
+ MOBILE_APP = "MOBILE_APP",
15
+ THIRD_PARTY = "THIRD_PARTY",
16
+ AI_ASSISTANT = "AI_ASSISTANT"
17
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReservationSource = exports.ReservationStatus = void 0;
4
+ var ReservationStatus;
5
+ (function (ReservationStatus) {
6
+ ReservationStatus["PENDING"] = "PENDING";
7
+ ReservationStatus["CONFIRMED"] = "CONFIRMED";
8
+ ReservationStatus["CHECKED_IN"] = "CHECKED_IN";
9
+ ReservationStatus["SEATED"] = "SEATED";
10
+ ReservationStatus["COMPLETED"] = "COMPLETED";
11
+ ReservationStatus["CANCELLED"] = "CANCELLED";
12
+ ReservationStatus["NO_SHOW"] = "NO_SHOW";
13
+ })(ReservationStatus || (exports.ReservationStatus = ReservationStatus = {}));
14
+ var ReservationSource;
15
+ (function (ReservationSource) {
16
+ ReservationSource["PHONE"] = "PHONE";
17
+ ReservationSource["WALK_IN"] = "WALK_IN";
18
+ ReservationSource["WEBSITE"] = "WEBSITE";
19
+ ReservationSource["MOBILE_APP"] = "MOBILE_APP";
20
+ ReservationSource["THIRD_PARTY"] = "THIRD_PARTY";
21
+ ReservationSource["AI_ASSISTANT"] = "AI_ASSISTANT";
22
+ })(ReservationSource || (exports.ReservationSource = ReservationSource = {}));
@@ -0,0 +1,39 @@
1
+ export declare enum RestaurantType {
2
+ RESTAURANT = "RESTAURANT",
3
+ CAFE = "CAFE",
4
+ BAR = "BAR",
5
+ FOOD_TRUCK = "FOOD_TRUCK",
6
+ BAKERY = "BAKERY",
7
+ FAST_FOOD = "FAST_FOOD",
8
+ FINE_DINING = "FINE_DINING",
9
+ TAKEAWAY = "TAKEAWAY",
10
+ CLOUD_KITCHEN = "CLOUD_KITCHEN",
11
+ BUFFET = "BUFFET"
12
+ }
13
+ export declare enum RestaurantStatus {
14
+ ACTIVE = "ACTIVE",
15
+ INACTIVE = "INACTIVE",
16
+ CLOSED = "CLOSED",
17
+ SUSPENDED = "SUSPENDED"
18
+ }
19
+ export declare enum CuisineType {
20
+ AFRICAN = "AFRICAN",
21
+ AMERICAN = "AMERICAN",
22
+ ASIAN = "ASIAN",
23
+ BBQ = "BBQ",
24
+ CHINESE = "CHINESE",
25
+ FRENCH = "FRENCH",
26
+ GREEK = "GREEK",
27
+ INDIAN = "INDIAN",
28
+ ITALIAN = "ITALIAN",
29
+ JAPANESE = "JAPANESE",
30
+ KOREAN = "KOREAN",
31
+ MEDITERRANEAN = "MEDITERRANEAN",
32
+ MEXICAN = "MEXICAN",
33
+ PIZZA = "PIZZA",
34
+ SEAFOOD = "SEAFOOD",
35
+ STEAKHOUSE = "STEAKHOUSE",
36
+ THAI = "THAI",
37
+ VEGAN = "VEGAN",
38
+ OTHER = "OTHER"
39
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CuisineType = exports.RestaurantStatus = exports.RestaurantType = void 0;
4
+ var RestaurantType;
5
+ (function (RestaurantType) {
6
+ RestaurantType["RESTAURANT"] = "RESTAURANT";
7
+ RestaurantType["CAFE"] = "CAFE";
8
+ RestaurantType["BAR"] = "BAR";
9
+ RestaurantType["FOOD_TRUCK"] = "FOOD_TRUCK";
10
+ RestaurantType["BAKERY"] = "BAKERY";
11
+ RestaurantType["FAST_FOOD"] = "FAST_FOOD";
12
+ RestaurantType["FINE_DINING"] = "FINE_DINING";
13
+ RestaurantType["TAKEAWAY"] = "TAKEAWAY";
14
+ RestaurantType["CLOUD_KITCHEN"] = "CLOUD_KITCHEN";
15
+ RestaurantType["BUFFET"] = "BUFFET";
16
+ })(RestaurantType || (exports.RestaurantType = RestaurantType = {}));
17
+ var RestaurantStatus;
18
+ (function (RestaurantStatus) {
19
+ RestaurantStatus["ACTIVE"] = "ACTIVE";
20
+ RestaurantStatus["INACTIVE"] = "INACTIVE";
21
+ RestaurantStatus["CLOSED"] = "CLOSED";
22
+ RestaurantStatus["SUSPENDED"] = "SUSPENDED";
23
+ })(RestaurantStatus || (exports.RestaurantStatus = RestaurantStatus = {}));
24
+ var CuisineType;
25
+ (function (CuisineType) {
26
+ CuisineType["AFRICAN"] = "AFRICAN";
27
+ CuisineType["AMERICAN"] = "AMERICAN";
28
+ CuisineType["ASIAN"] = "ASIAN";
29
+ CuisineType["BBQ"] = "BBQ";
30
+ CuisineType["CHINESE"] = "CHINESE";
31
+ CuisineType["FRENCH"] = "FRENCH";
32
+ CuisineType["GREEK"] = "GREEK";
33
+ CuisineType["INDIAN"] = "INDIAN";
34
+ CuisineType["ITALIAN"] = "ITALIAN";
35
+ CuisineType["JAPANESE"] = "JAPANESE";
36
+ CuisineType["KOREAN"] = "KOREAN";
37
+ CuisineType["MEDITERRANEAN"] = "MEDITERRANEAN";
38
+ CuisineType["MEXICAN"] = "MEXICAN";
39
+ CuisineType["PIZZA"] = "PIZZA";
40
+ CuisineType["SEAFOOD"] = "SEAFOOD";
41
+ CuisineType["STEAKHOUSE"] = "STEAKHOUSE";
42
+ CuisineType["THAI"] = "THAI";
43
+ CuisineType["VEGAN"] = "VEGAN";
44
+ CuisineType["OTHER"] = "OTHER";
45
+ })(CuisineType || (exports.CuisineType = CuisineType = {}));
@@ -0,0 +1,23 @@
1
+ export declare enum TableStatus {
2
+ AVAILABLE = "AVAILABLE",
3
+ RESERVED = "RESERVED",
4
+ OCCUPIED = "OCCUPIED",
5
+ CLEANING = "CLEANING",
6
+ OUT_OF_SERVICE = "OUT_OF_SERVICE"
7
+ }
8
+ export declare enum TableArea {
9
+ MAIN_DINING = "MAIN_DINING",
10
+ PATIO = "PATIO",
11
+ BAR = "BAR",
12
+ PRIVATE_ROOM = "PRIVATE_ROOM",
13
+ TERRACE = "TERRACE",
14
+ OUTDOOR = "OUTDOOR"
15
+ }
16
+ export declare enum TableShape {
17
+ SQUARE = "SQUARE",
18
+ RECTANGLE = "RECTANGLE",
19
+ ROUND = "ROUND",
20
+ BOOTH = "BOOTH",
21
+ HIGH_TOP = "HIGH_TOP",
22
+ CUSTOM = "CUSTOM"
23
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableShape = exports.TableArea = exports.TableStatus = void 0;
4
+ var TableStatus;
5
+ (function (TableStatus) {
6
+ TableStatus["AVAILABLE"] = "AVAILABLE";
7
+ TableStatus["RESERVED"] = "RESERVED";
8
+ TableStatus["OCCUPIED"] = "OCCUPIED";
9
+ TableStatus["CLEANING"] = "CLEANING";
10
+ TableStatus["OUT_OF_SERVICE"] = "OUT_OF_SERVICE";
11
+ })(TableStatus || (exports.TableStatus = TableStatus = {}));
12
+ var TableArea;
13
+ (function (TableArea) {
14
+ TableArea["MAIN_DINING"] = "MAIN_DINING";
15
+ TableArea["PATIO"] = "PATIO";
16
+ TableArea["BAR"] = "BAR";
17
+ TableArea["PRIVATE_ROOM"] = "PRIVATE_ROOM";
18
+ TableArea["TERRACE"] = "TERRACE";
19
+ TableArea["OUTDOOR"] = "OUTDOOR";
20
+ })(TableArea || (exports.TableArea = TableArea = {}));
21
+ var TableShape;
22
+ (function (TableShape) {
23
+ TableShape["SQUARE"] = "SQUARE";
24
+ TableShape["RECTANGLE"] = "RECTANGLE";
25
+ TableShape["ROUND"] = "ROUND";
26
+ TableShape["BOOTH"] = "BOOTH";
27
+ TableShape["HIGH_TOP"] = "HIGH_TOP";
28
+ TableShape["CUSTOM"] = "CUSTOM";
29
+ })(TableShape || (exports.TableShape = TableShape = {}));
@@ -0,0 +1,29 @@
1
+ export declare enum Vendor {
2
+ TOAST = "TOAST",
3
+ SQUARE = "SQUARE",
4
+ CLOVER = "CLOVER",
5
+ LIGHTSPEED = "LIGHTSPEED",
6
+ ORACLE_SIMPHONY = "ORACLE_SIMPHONY",
7
+ NCR_ALOHA = "NCR_ALOHA",
8
+ PAR_BRINK = "PAR_BRINK",
9
+ TOUCHBISTRO = "TOUCHBISTRO",
10
+ UBER_EATS = "UBER_EATS",
11
+ DOORDASH = "DOORDASH",
12
+ SKIPTHEDISHES = "SKIPTHEDISHES",
13
+ CUSTOM = "CUSTOM",
14
+ GLOBAL_PAYMENTS = "GLOBAL_PAYMENTS"
15
+ }
16
+ export declare enum VendorStatus {
17
+ ACTIVE = "ACTIVE",
18
+ INACTIVE = "INACTIVE",
19
+ SUSPENDED = "SUSPENDED"
20
+ }
21
+ export declare enum VendorType {
22
+ FOOD_SUPPLIER = "FOOD_SUPPLIER",
23
+ BEVERAGE_SUPPLIER = "BEVERAGE_SUPPLIER",
24
+ EQUIPMENT_SUPPLIER = "EQUIPMENT_SUPPLIER",
25
+ PACKAGING_SUPPLIER = "PACKAGING_SUPPLIER",
26
+ CLEANING_SUPPLY = "CLEANING_SUPPLY",
27
+ TECHNOLOGY = "TECHNOLOGY",
28
+ OTHER = "OTHER"
29
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VendorType = exports.VendorStatus = exports.Vendor = void 0;
4
+ var Vendor;
5
+ (function (Vendor) {
6
+ Vendor["TOAST"] = "TOAST";
7
+ Vendor["SQUARE"] = "SQUARE";
8
+ Vendor["CLOVER"] = "CLOVER";
9
+ Vendor["LIGHTSPEED"] = "LIGHTSPEED";
10
+ Vendor["ORACLE_SIMPHONY"] = "ORACLE_SIMPHONY";
11
+ Vendor["NCR_ALOHA"] = "NCR_ALOHA";
12
+ Vendor["PAR_BRINK"] = "PAR_BRINK";
13
+ Vendor["TOUCHBISTRO"] = "TOUCHBISTRO";
14
+ Vendor["UBER_EATS"] = "UBER_EATS";
15
+ Vendor["DOORDASH"] = "DOORDASH";
16
+ Vendor["SKIPTHEDISHES"] = "SKIPTHEDISHES";
17
+ Vendor["CUSTOM"] = "CUSTOM";
18
+ Vendor["GLOBAL_PAYMENTS"] = "GLOBAL_PAYMENTS";
19
+ })(Vendor || (exports.Vendor = Vendor = {}));
20
+ var VendorStatus;
21
+ (function (VendorStatus) {
22
+ VendorStatus["ACTIVE"] = "ACTIVE";
23
+ VendorStatus["INACTIVE"] = "INACTIVE";
24
+ VendorStatus["SUSPENDED"] = "SUSPENDED";
25
+ })(VendorStatus || (exports.VendorStatus = VendorStatus = {}));
26
+ var VendorType;
27
+ (function (VendorType) {
28
+ VendorType["FOOD_SUPPLIER"] = "FOOD_SUPPLIER";
29
+ VendorType["BEVERAGE_SUPPLIER"] = "BEVERAGE_SUPPLIER";
30
+ VendorType["EQUIPMENT_SUPPLIER"] = "EQUIPMENT_SUPPLIER";
31
+ VendorType["PACKAGING_SUPPLIER"] = "PACKAGING_SUPPLIER";
32
+ VendorType["CLEANING_SUPPLY"] = "CLEANING_SUPPLY";
33
+ VendorType["TECHNOLOGY"] = "TECHNOLOGY";
34
+ VendorType["OTHER"] = "OTHER";
35
+ })(VendorType || (exports.VendorType = VendorType = {}));
@@ -0,0 +1,13 @@
1
+ export * from "./domain/DayOfWeek";
2
+ export * from "./domain/Employee";
3
+ export * from "./domain/Inventory";
4
+ export * from "./domain/Kitchen";
5
+ export * from "./domain/Menu";
6
+ export * from "./domain/Payments";
7
+ export * from "./domain/Recipe";
8
+ export * from "./domain/Restaurant";
9
+ export * from "./domain/Reservation";
10
+ export * from "./domain/Table";
11
+ export * from "./domain/Vendors";
12
+ export * from "./domain/Delivery";
13
+ export * from "./domain/Ingredient";
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./domain/DayOfWeek"), exports);
18
+ __exportStar(require("./domain/Employee"), exports);
19
+ __exportStar(require("./domain/Inventory"), exports);
20
+ __exportStar(require("./domain/Kitchen"), exports);
21
+ __exportStar(require("./domain/Menu"), exports);
22
+ __exportStar(require("./domain/Payments"), exports);
23
+ __exportStar(require("./domain/Recipe"), exports);
24
+ __exportStar(require("./domain/Restaurant"), exports);
25
+ __exportStar(require("./domain/Reservation"), exports);
26
+ __exportStar(require("./domain/Table"), exports);
27
+ __exportStar(require("./domain/Vendors"), exports);
28
+ __exportStar(require("./domain/Delivery"), exports);
29
+ __exportStar(require("./domain/Ingredient"), exports);
@@ -0,0 +1,2 @@
1
+ export declare class EventBridgeModule {
2
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.EventBridgeModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const EventBridgeServiceImpl_1 = require("./service/EventBridgeServiceImpl");
12
+ const ioc_1 = require("./ioc");
13
+ let EventBridgeModule = class EventBridgeModule {
14
+ };
15
+ exports.EventBridgeModule = EventBridgeModule;
16
+ exports.EventBridgeModule = EventBridgeModule = __decorate([
17
+ (0, common_1.Module)({
18
+ providers: [
19
+ {
20
+ provide: ioc_1.EventBridgeSymbols.EventBridgeService,
21
+ useClass: EventBridgeServiceImpl_1.EventBridgeServiceImpl,
22
+ },
23
+ ],
24
+ exports: [ioc_1.EventBridgeSymbols.EventBridgeService],
25
+ })
26
+ ], EventBridgeModule);
@@ -0,0 +1,8 @@
1
+ export interface EventBridgeOptions {
2
+ /** Name of the EventBridge event bus. */
3
+ eventBusName: string;
4
+ /** Source string used when publishing events (e.g. "com.myapp.orders"). */
5
+ source: string;
6
+ /** AWS region. Defaults to the AWS_REGION environment variable or "us-east-1". */
7
+ region?: string;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ export declare const EventBridgeSymbols: {
2
+ EventBridgeService: symbol;
3
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventBridgeSymbols = void 0;
4
+ exports.EventBridgeSymbols = {
5
+ EventBridgeService: Symbol('EventBridgeService'),
6
+ };
@@ -0,0 +1,3 @@
1
+ export declare const EventBridgeSymbols: {
2
+ readonly EventBridgeService: symbol;
3
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventBridgeSymbols = void 0;
4
+ exports.EventBridgeSymbols = {
5
+ EventBridgeService: Symbol("EventBridgeService"),
6
+ };
@@ -0,0 +1,5 @@
1
+ import { DomainEvent } from "../../events/domain/DomainEvent";
2
+ export interface IEventBridgeService {
3
+ publish(event: DomainEvent): Promise<void>;
4
+ publishBatch(events: DomainEvent[]): Promise<void>;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import { DomainEvent } from "../../events/domain/DomainEvent";
2
+ import { IEventBridgeService } from "./EventBridgeService";
3
+ import { EventBridgeOptions } from "../domain/EventBridgeOptions";
4
+ export declare class EventBridgeServiceImpl implements IEventBridgeService {
5
+ private readonly logger;
6
+ private readonly client;
7
+ private readonly eventBusName;
8
+ private readonly source;
9
+ constructor(options: EventBridgeOptions);
10
+ publish(event: DomainEvent): Promise<void>;
11
+ publishBatch(events: DomainEvent[]): Promise<void>;
12
+ private putEvents;
13
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var EventBridgeServiceImpl_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.EventBridgeServiceImpl = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const client_eventbridge_1 = require("@aws-sdk/client-eventbridge");
16
+ /** Max entries per PutEvents call (AWS hard limit). */
17
+ const MAX_BATCH_SIZE = 10;
18
+ let EventBridgeServiceImpl = EventBridgeServiceImpl_1 = class EventBridgeServiceImpl {
19
+ constructor(options) {
20
+ this.logger = new common_1.Logger(EventBridgeServiceImpl_1.name);
21
+ this.eventBusName = options.eventBusName;
22
+ this.source = options.source;
23
+ this.client = new client_eventbridge_1.EventBridgeClient({ region: options.region ?? process.env.AWS_REGION ?? "us-east-1" });
24
+ }
25
+ async publish(event) {
26
+ await this.publishBatch([event]);
27
+ }
28
+ async publishBatch(events) {
29
+ if (events.length === 0)
30
+ return;
31
+ // Split into chunks of MAX_BATCH_SIZE
32
+ for (let i = 0; i < events.length; i += MAX_BATCH_SIZE) {
33
+ const chunk = events.slice(i, i + MAX_BATCH_SIZE);
34
+ await this.putEvents(chunk);
35
+ }
36
+ }
37
+ async putEvents(events) {
38
+ const entries = events.map((event) => ({
39
+ EventBusName: this.eventBusName,
40
+ Source: this.source,
41
+ DetailType: event.eventType,
42
+ Detail: JSON.stringify(event),
43
+ Time: event.occurredAt,
44
+ }));
45
+ const command = new client_eventbridge_1.PutEventsCommand({ Entries: entries });
46
+ const response = await this.client.send(command);
47
+ const failed = response.FailedEntryCount ?? 0;
48
+ if (failed > 0) {
49
+ const failures = (response.Entries ?? [])
50
+ .filter((e) => e.ErrorCode)
51
+ .map((e) => `${e.ErrorCode}: ${e.ErrorMessage}`)
52
+ .join(", ");
53
+ this.logger.error(`EventBridge: ${failed} event(s) failed to publish — ${failures}`);
54
+ throw new Error(`Failed to publish ${failed} event(s) to EventBridge: ${failures}`);
55
+ }
56
+ this.logger.debug(`EventBridge: published ${events.length} event(s) to bus "${this.eventBusName}"`);
57
+ }
58
+ };
59
+ exports.EventBridgeServiceImpl = EventBridgeServiceImpl;
60
+ exports.EventBridgeServiceImpl = EventBridgeServiceImpl = EventBridgeServiceImpl_1 = __decorate([
61
+ (0, common_1.Injectable)(),
62
+ __metadata("design:paramtypes", [Object])
63
+ ], EventBridgeServiceImpl);
@@ -0,0 +1,54 @@
1
+ import { DomainEvent } from "./DomainEvent";
2
+ import { ICustomer } from "../../interfaces/domain/Customer";
3
+ export interface CustomerCreated extends DomainEvent {
4
+ eventType: "CustomerCreated";
5
+ aggregateType: "Customer";
6
+ customer: ICustomer;
7
+ }
8
+ export interface CustomerUpdated extends DomainEvent {
9
+ eventType: "CustomerUpdated";
10
+ aggregateType: "Customer";
11
+ before: Partial<ICustomer>;
12
+ after: Partial<ICustomer>;
13
+ }
14
+ export interface CustomerDeleted extends DomainEvent {
15
+ eventType: "CustomerDeleted";
16
+ aggregateType: "Customer";
17
+ deletedAt: Date;
18
+ }
19
+ export interface CustomerBlocked extends DomainEvent {
20
+ eventType: "CustomerBlocked";
21
+ aggregateType: "Customer";
22
+ reason?: string;
23
+ blockedAt: Date;
24
+ }
25
+ export interface CustomerMerged extends DomainEvent {
26
+ eventType: "CustomerMerged";
27
+ aggregateType: "Customer";
28
+ /** The customer ID that was merged into this one and is now superseded. */
29
+ sourceCustomerId: string;
30
+ mergedAt: Date;
31
+ }
32
+ export interface CustomerLoyaltyPointsAdded extends DomainEvent {
33
+ eventType: "CustomerLoyaltyPointsAdded";
34
+ aggregateType: "Customer";
35
+ pointsAdded: number;
36
+ newBalance: number;
37
+ reason?: string;
38
+ }
39
+ export interface CustomerLoyaltyPointsRedeemed extends DomainEvent {
40
+ eventType: "CustomerLoyaltyPointsRedeemed";
41
+ aggregateType: "Customer";
42
+ pointsRedeemed: number;
43
+ newBalance: number;
44
+ orderId?: string;
45
+ }
46
+ export interface CustomerMembershipCreated extends DomainEvent {
47
+ eventType: "CustomerMembershipCreated";
48
+ aggregateType: "Customer";
49
+ membershipId: string;
50
+ tier: string;
51
+ startDate: Date;
52
+ expiresAt?: Date;
53
+ }
54
+ export type CustomerEvent = CustomerCreated | CustomerUpdated | CustomerDeleted | CustomerBlocked | CustomerMerged | CustomerLoyaltyPointsAdded | CustomerLoyaltyPointsRedeemed | CustomerMembershipCreated;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,61 @@
1
+ import { DomainEvent } from "./DomainEvent";
2
+ import { IDelivery, IDeliveryDriver } from "../../interfaces/domain/Delivery";
3
+ import { DeliveryStatus } from "../../enums/domain/Delivery";
4
+ export interface DeliveryCreated extends DomainEvent {
5
+ eventType: "DeliveryCreated";
6
+ aggregateType: "Delivery";
7
+ delivery: IDelivery;
8
+ }
9
+ export interface DeliveryAssigned extends DomainEvent {
10
+ eventType: "DeliveryAssigned";
11
+ aggregateType: "Delivery";
12
+ driver: IDeliveryDriver;
13
+ assignedAt: Date;
14
+ estimatedPickupMinutes?: number;
15
+ }
16
+ export interface DeliveryAccepted extends DomainEvent {
17
+ eventType: "DeliveryAccepted";
18
+ aggregateType: "Delivery";
19
+ driver: IDeliveryDriver;
20
+ acceptedAt: Date;
21
+ estimatedDeliveryMinutes?: number;
22
+ }
23
+ export interface DeliveryPickedUp extends DomainEvent {
24
+ eventType: "DeliveryPickedUp";
25
+ aggregateType: "Delivery";
26
+ pickedUpAt: Date;
27
+ estimatedArrivalAt?: Date;
28
+ }
29
+ export interface DeliveryInTransit extends DomainEvent {
30
+ eventType: "DeliveryInTransit";
31
+ aggregateType: "Delivery";
32
+ latitude?: number;
33
+ longitude?: number;
34
+ estimatedArrivalAt?: Date;
35
+ updatedAt: Date;
36
+ }
37
+ export interface DeliveryDelivered extends DomainEvent {
38
+ eventType: "DeliveryDelivered";
39
+ aggregateType: "Delivery";
40
+ deliveredAt: Date;
41
+ /** Proof-of-delivery image URL, if captured. */
42
+ proofOfDeliveryUrl?: string;
43
+ recipientName?: string;
44
+ }
45
+ export interface DeliveryCancelled extends DomainEvent {
46
+ eventType: "DeliveryCancelled";
47
+ aggregateType: "Delivery";
48
+ previousStatus: DeliveryStatus;
49
+ reason?: string;
50
+ cancelledBy?: string;
51
+ cancelledAt: Date;
52
+ }
53
+ export interface DeliveryFailed extends DomainEvent {
54
+ eventType: "DeliveryFailed";
55
+ aggregateType: "Delivery";
56
+ previousStatus: DeliveryStatus;
57
+ reason?: string;
58
+ errorCode?: string;
59
+ failedAt: Date;
60
+ }
61
+ export type DeliveryEvent = DeliveryCreated | DeliveryAssigned | DeliveryAccepted | DeliveryPickedUp | DeliveryInTransit | DeliveryDelivered | DeliveryCancelled | DeliveryFailed;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ export interface DomainEvent {
2
+ eventId: string;
3
+ aggregateId: string;
4
+ aggregateType: string;
5
+ eventType: string;
6
+ version: number;
7
+ occurredAt: Date;
8
+ restaurantId: string;
9
+ triggeredBy?: string;
10
+ correlationId?: string;
11
+ causationId?: string;
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });