@chevre/domain 21.2.0-alpha.14 → 21.2.0-alpha.141

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 (302) hide show
  1. package/example/src/chevre/aggregateEventReservation.ts +1 -1
  2. package/example/src/chevre/aggregation/aggregateSystem.ts +85 -27
  3. package/example/src/chevre/countDelayedTasks.ts +7 -2
  4. package/example/src/chevre/deleteTasksByName.ts +10 -2
  5. package/example/src/chevre/importEventsFromCOA.ts +3 -4
  6. package/example/src/chevre/lockStockHolder.ts +5 -2
  7. package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
  8. package/example/src/chevre/migrateScreeningEventSeriesVersion.ts +79 -0
  9. package/example/src/chevre/processPay.ts +5 -1
  10. package/example/src/chevre/processRegisterMembership.ts +8 -4
  11. package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
  12. package/example/src/chevre/processReserve.ts +5 -2
  13. package/example/src/chevre/saveTasks.ts +13 -10
  14. package/example/src/chevre/searchAbortedTasks.ts +34 -0
  15. package/example/src/chevre/searchActions.ts +33 -0
  16. package/example/src/chevre/searchEventSeats.ts +5 -2
  17. package/example/src/chevre/searchHoldReservations.ts +38 -0
  18. package/example/src/chevre/searchPaymentServiceProviders.ts +38 -0
  19. package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
  20. package/example/src/chevre/searchScreeningRooms.ts +23 -0
  21. package/example/src/chevre/searchSendEmailActions.ts +44 -0
  22. package/example/src/chevre/syncScreeningRooms.ts +21 -0
  23. package/example/src/chevre/syncScreeningRoomsAll.ts +41 -0
  24. package/example/src/chevre/task/executeTasks.ts +26 -0
  25. package/example/src/chevre/transaction/findCreditCard.ts +1 -1
  26. package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
  27. package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
  28. package/example/src/chevre/transaction/startExportTasks.ts +2 -1
  29. package/example/src/chevre/updateTransaction.ts +1 -1
  30. package/example/src/playOnMoment.ts +24 -0
  31. package/lib/chevre/credentials.d.ts +1 -0
  32. package/lib/chevre/credentials.js +2 -1
  33. package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
  34. package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
  35. package/lib/chevre/eventEmitter/task.d.ts +2 -1
  36. package/lib/chevre/eventEmitter/task.js +1 -4
  37. package/lib/chevre/eventEmitter/transaction.d.ts +1 -1
  38. package/lib/chevre/eventEmitter/transaction.js +1 -4
  39. package/lib/chevre/eventEmitter.d.ts +2 -1
  40. package/lib/chevre/eventEmitter.js +3 -1
  41. package/lib/chevre/index.d.ts +1 -1
  42. package/lib/chevre/index.js +2 -2
  43. package/lib/chevre/repo/account.js +3 -2
  44. package/lib/chevre/repo/accountTransaction.d.ts +3 -1
  45. package/lib/chevre/repo/accountTransaction.js +3 -2
  46. package/lib/chevre/repo/action.d.ts +42 -2
  47. package/lib/chevre/repo/action.js +130 -57
  48. package/lib/chevre/repo/additionalProperty.js +2 -1
  49. package/lib/chevre/repo/aggregation.d.ts +3 -0
  50. package/lib/chevre/repo/aggregation.js +3 -0
  51. package/lib/chevre/repo/assetTransaction.d.ts +23 -8
  52. package/lib/chevre/repo/assetTransaction.js +253 -80
  53. package/lib/chevre/repo/categoryCode.d.ts +1 -1
  54. package/lib/chevre/repo/categoryCode.js +37 -25
  55. package/lib/chevre/repo/code.js +3 -2
  56. package/lib/chevre/repo/comment.d.ts +4 -1
  57. package/lib/chevre/repo/comment.js +22 -6
  58. package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
  59. package/lib/chevre/repo/confirmationNumber.js +3 -15
  60. package/lib/chevre/repo/creativeWork.d.ts +2 -4
  61. package/lib/chevre/repo/creativeWork.js +35 -12
  62. package/lib/chevre/repo/customer.js +2 -1
  63. package/lib/chevre/repo/emailMessage.d.ts +1 -27
  64. package/lib/chevre/repo/emailMessage.js +2 -1
  65. package/lib/chevre/repo/event.d.ts +27 -1
  66. package/lib/chevre/repo/event.js +67 -33
  67. package/lib/chevre/repo/member.js +4 -3
  68. package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
  69. package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
  70. package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -2
  71. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +29 -3
  72. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +31 -3
  73. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  74. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +13 -3
  75. package/lib/chevre/repo/mongoose/schemas/action.d.ts +43 -3
  76. package/lib/chevre/repo/mongoose/schemas/action.js +19 -1
  77. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +17 -3
  78. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -2
  79. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +44 -3
  80. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +32 -19
  81. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +19 -3
  82. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  83. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +25 -3
  84. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +27 -3
  85. package/lib/chevre/repo/mongoose/schemas/comments.js +1 -1
  86. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +43 -3
  87. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +25 -3
  88. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +21 -3
  89. package/lib/chevre/repo/mongoose/schemas/event.d.ts +71 -3
  90. package/lib/chevre/repo/mongoose/schemas/holdReservation.d.ts +75 -0
  91. package/lib/chevre/repo/mongoose/schemas/holdReservation.js +93 -0
  92. package/lib/chevre/repo/mongoose/schemas/member.d.ts +13 -3
  93. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +21 -3
  94. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +65 -3
  95. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +27 -3
  96. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
  97. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
  98. package/lib/chevre/repo/mongoose/schemas/order.d.ts +51 -3
  99. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  100. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +25 -3
  101. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -1
  102. package/lib/chevre/repo/mongoose/schemas/place.d.ts +55 -3
  103. package/lib/chevre/repo/mongoose/schemas/place.js +16 -1
  104. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +29 -3
  105. package/lib/chevre/repo/mongoose/schemas/product.d.ts +31 -3
  106. package/lib/chevre/repo/mongoose/schemas/product.js +6 -0
  107. package/lib/chevre/repo/mongoose/schemas/project.d.ts +23 -3
  108. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -5
  109. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  110. package/lib/chevre/repo/mongoose/schemas/role.d.ts +11 -3
  111. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +31 -3
  112. package/lib/chevre/repo/mongoose/schemas/seller.js +6 -0
  113. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +11 -3
  114. package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -1
  115. package/lib/chevre/repo/mongoose/schemas/task.d.ts +30 -3
  116. package/lib/chevre/repo/mongoose/schemas/task.js +2 -1
  117. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +21 -3
  118. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +40 -3
  119. package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -1
  120. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +11 -3
  121. package/lib/chevre/repo/offer.js +3 -2
  122. package/lib/chevre/repo/offerCatalog.js +0 -27
  123. package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
  124. package/lib/chevre/repo/offerItemCondition.js +121 -0
  125. package/lib/chevre/repo/order.d.ts +55 -3
  126. package/lib/chevre/repo/order.js +62 -10
  127. package/lib/chevre/repo/ownershipInfo.js +2 -7
  128. package/lib/chevre/repo/place.d.ts +97 -24
  129. package/lib/chevre/repo/place.js +266 -76
  130. package/lib/chevre/repo/priceSpecification.js +3 -2
  131. package/lib/chevre/repo/product.d.ts +18 -3
  132. package/lib/chevre/repo/product.js +139 -5
  133. package/lib/chevre/repo/project.js +2 -1
  134. package/lib/chevre/repo/reservation.d.ts +20 -4
  135. package/lib/chevre/repo/reservation.js +40 -59
  136. package/lib/chevre/repo/role.js +3 -2
  137. package/lib/chevre/repo/seller.d.ts +1 -1
  138. package/lib/chevre/repo/seller.js +44 -23
  139. package/lib/chevre/repo/serviceOutput.js +2 -1
  140. package/lib/chevre/repo/stockHolder.d.ts +143 -7
  141. package/lib/chevre/repo/stockHolder.js +622 -104
  142. package/lib/chevre/repo/task.d.ts +42 -2
  143. package/lib/chevre/repo/task.js +68 -20
  144. package/lib/chevre/repo/transaction.d.ts +21 -2
  145. package/lib/chevre/repo/transaction.js +160 -48
  146. package/lib/chevre/repo/trip.js +2 -1
  147. package/lib/chevre/repository.d.ts +5 -2
  148. package/lib/chevre/repository.js +8 -4
  149. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +6 -2
  150. package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.js +19 -8
  151. package/lib/chevre/service/aggregation/system.d.ts +110 -23
  152. package/lib/chevre/service/aggregation/system.js +213 -91
  153. package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
  154. package/lib/chevre/service/assetTransaction/moneyTransfer.js +2 -24
  155. package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
  156. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
  157. package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
  158. package/lib/chevre/service/assetTransaction/pay.js +20 -34
  159. package/lib/chevre/service/assetTransaction/refund.js +2 -24
  160. package/lib/chevre/service/assetTransaction/registerService.js +1 -25
  161. package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +15 -5
  162. package/lib/chevre/service/assetTransaction/reserve/factory.js +122 -58
  163. package/lib/chevre/service/assetTransaction/reserve.d.ts +10 -1
  164. package/lib/chevre/service/assetTransaction/reserve.js +92 -69
  165. package/lib/chevre/service/assetTransaction.d.ts +6 -0
  166. package/lib/chevre/service/assetTransaction.js +9 -4
  167. package/lib/chevre/service/event.d.ts +3 -0
  168. package/lib/chevre/service/event.js +54 -22
  169. package/lib/chevre/service/notification/factory.js +2 -2
  170. package/lib/chevre/service/notification.d.ts +3 -1
  171. package/lib/chevre/service/notification.js +41 -7
  172. package/lib/chevre/service/offer/event/authorize.d.ts +3 -0
  173. package/lib/chevre/service/offer/event/authorize.js +8 -2
  174. package/lib/chevre/service/offer/event/factory.d.ts +3 -0
  175. package/lib/chevre/service/offer/event/factory.js +16 -5
  176. package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
  177. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  178. package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
  179. package/lib/chevre/service/offer/eventServiceByCOA.js +7 -9
  180. package/lib/chevre/service/offer/product.js +2 -2
  181. package/lib/chevre/service/offer.d.ts +16 -8
  182. package/lib/chevre/service/offer.js +71 -8
  183. package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
  184. package/lib/chevre/service/order/deleteOrder.js +8 -8
  185. package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +5 -2
  186. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +41 -81
  187. package/lib/chevre/service/order/onOrderStatusChanged.js +1 -3
  188. package/lib/chevre/service/order/onOrderUpdated.d.ts +16 -0
  189. package/lib/chevre/service/order/onOrderUpdated.js +22 -0
  190. package/lib/chevre/service/order/placeOrder.d.ts +1 -0
  191. package/lib/chevre/service/order/placeOrder.js +41 -24
  192. package/lib/chevre/service/order/returnOrder.d.ts +1 -0
  193. package/lib/chevre/service/order/returnOrder.js +7 -12
  194. package/lib/chevre/service/order/sendOrder.d.ts +1 -0
  195. package/lib/chevre/service/order/sendOrder.js +7 -10
  196. package/lib/chevre/service/order.d.ts +2 -1
  197. package/lib/chevre/service/order.js +3 -1
  198. package/lib/chevre/service/payment/any/onPaid.js +1 -1
  199. package/lib/chevre/service/payment/any/onRefund.js +1 -1
  200. package/lib/chevre/service/payment/any.d.ts +9 -5
  201. package/lib/chevre/service/payment/any.js +80 -18
  202. package/lib/chevre/service/payment/creditCard.d.ts +1 -1
  203. package/lib/chevre/service/payment/creditCard.js +23 -17
  204. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +8 -7
  205. package/lib/chevre/service/payment/movieTicket/factory.d.ts +1 -1
  206. package/lib/chevre/service/payment/movieTicket/getCredentials.d.ts +1 -1
  207. package/lib/chevre/service/payment/movieTicket/getCredentials.js +1 -1
  208. package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -6
  209. package/lib/chevre/service/payment/movieTicket/validation.js +65 -37
  210. package/lib/chevre/service/payment/movieTicket.d.ts +2 -2
  211. package/lib/chevre/service/payment/movieTicket.js +7 -6
  212. package/lib/chevre/service/product.js +1 -5
  213. package/lib/chevre/service/report/telemetry.d.ts +0 -11
  214. package/lib/chevre/service/report/telemetry.js +21 -24
  215. package/lib/chevre/service/reserve/cancelReservation.d.ts +5 -3
  216. package/lib/chevre/service/reserve/cancelReservation.js +162 -142
  217. package/lib/chevre/service/reserve/checkInReservation.d.ts +9 -4
  218. package/lib/chevre/service/reserve/checkInReservation.js +77 -3
  219. package/lib/chevre/service/reserve/confirmReservation.d.ts +7 -4
  220. package/lib/chevre/service/reserve/confirmReservation.js +133 -58
  221. package/lib/chevre/service/reserve/factory.d.ts +1 -1
  222. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +17 -5
  223. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +26 -24
  224. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
  225. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
  226. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
  227. package/lib/chevre/service/reserve/useReservation.d.ts +7 -3
  228. package/lib/chevre/service/reserve/useReservation.js +61 -71
  229. package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
  230. package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
  231. package/lib/chevre/service/reserve.d.ts +3 -2
  232. package/lib/chevre/service/reserve.js +4 -2
  233. package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
  234. package/lib/chevre/service/task/cancelPendingReservation.js +6 -2
  235. package/lib/chevre/service/task/cancelReservation.js +1 -1
  236. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
  237. package/lib/chevre/service/task/deleteTransaction.js +10 -8
  238. package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
  239. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
  240. package/lib/chevre/service/task/onAuthorizationCreated.js +108 -0
  241. package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
  242. package/lib/chevre/service/task/{deleteOrder.js → onEventChanged.js} +8 -14
  243. package/lib/chevre/service/task/onResourceUpdated.d.ts +10 -0
  244. package/lib/chevre/service/task/onResourceUpdated.js +423 -0
  245. package/lib/chevre/service/task/placeOrder.js +1 -1
  246. package/lib/chevre/service/task/reserve.js +10 -7
  247. package/lib/chevre/service/task/returnOrder.js +1 -1
  248. package/lib/chevre/service/task/returnPayTransaction.js +2 -12
  249. package/lib/chevre/service/task/sendOrder.js +1 -1
  250. package/lib/chevre/service/task/syncScreeningRooms.d.ts +7 -0
  251. package/lib/chevre/service/task/syncScreeningRooms.js +23 -0
  252. package/lib/chevre/service/task/useReservation.d.ts +7 -0
  253. package/lib/chevre/service/task/useReservation.js +36 -0
  254. package/lib/chevre/service/task/voidReserveTransaction.js +4 -2
  255. package/lib/chevre/service/task.d.ts +6 -0
  256. package/lib/chevre/service/task.js +22 -4
  257. package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
  258. package/lib/chevre/service/transaction/deleteTransaction.js +232 -0
  259. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
  260. package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -1
  261. package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
  262. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
  263. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
  264. package/lib/chevre/service/transaction/moneyTransfer.js +10 -13
  265. package/lib/chevre/service/transaction/orderProgramMembership/findCreditCard.js +1 -1
  266. package/lib/chevre/service/transaction/orderProgramMembership/findPaymentCardPermit.js +1 -1
  267. package/lib/chevre/service/transaction/orderProgramMembership.js +7 -3
  268. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
  269. package/lib/chevre/service/transaction/placeOrder.js +1 -5
  270. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
  271. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
  272. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  273. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
  274. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  275. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
  276. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
  277. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
  278. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
  279. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
  280. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
  281. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
  282. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
  283. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
  284. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
  285. package/lib/chevre/service/transaction/placeOrderInProgress.js +28 -15
  286. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
  287. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -17
  288. package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
  289. package/lib/chevre/service/transaction/returnOrder.js +228 -36
  290. package/lib/chevre/service/transaction.d.ts +7 -13
  291. package/lib/chevre/service/transaction.js +12 -139
  292. package/lib/chevre/settings.d.ts +13 -2
  293. package/lib/chevre/settings.js +56 -7
  294. package/package.json +5 -5
  295. package/example/src/chevre/createManyEventsIfNotExist.ts +0 -205
  296. package/example/src/chevre/eventCatalog2eventService.ts +0 -123
  297. package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
  298. package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
  299. package/example/src/chevre/migrateStockHolderKeys.ts +0 -89
  300. package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
  301. package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
  302. package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
@@ -247,17 +247,12 @@ function createSellerFlowTransactionResult(measuredFrom, measuredThrough, seller
247
247
  const maxRequiredTimeInMilliseconds = requiredTimesConfirmed.reduce((a, b) => Math.max(a, b), 0);
248
248
  const minRequiredTimeInMilliseconds = requiredTimesConfirmed.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? requiredTimesConfirmed[0] : 0);
249
249
  const averageRequiredTimeInMilliseconds = (numberOfTransactionsConfirmed > 0) ? totalRequiredTimeInMilliseconds / numberOfTransactionsConfirmed : 0;
250
- // イベントまでの残り時間算出(イベント開始日時と成立日時の差)
251
- const timesLeftUntilEvent = confirmedTransactions.map((transaction) => {
252
- // 座席予約は必ず存在する
253
- const seatReservation = transaction.object.authorizeActions.find((action) => action.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation);
254
- return moment(seatReservation.object.event.startDate)
255
- .diff(moment(transaction.endDate), 'milliseconds');
256
- });
257
- const totalTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => a + b, 0);
258
- const maxTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => Math.max(a, b), 0);
259
- const minTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? timesLeftUntilEvent[0] : 0);
260
- const averageTimeLeftUntilEventInMilliseconds = (numberOfTransactionsConfirmed > 0) ? totalTimeLeftUntilEventInMilliseconds / numberOfTransactionsConfirmed : 0;
250
+ // const totalTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => a + b, 0);
251
+ // const maxTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => Math.max(a, b), 0);
252
+ // const minTimeLeftUntilEventInMilliseconds =
253
+ // timesLeftUntilEvent.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? timesLeftUntilEvent[0] : 0);
254
+ // const averageTimeLeftUntilEventInMilliseconds =
255
+ // (numberOfTransactionsConfirmed > 0) ? totalTimeLeftUntilEventInMilliseconds / numberOfTransactionsConfirmed : 0;
261
256
  // 金額算出
262
257
  const amounts = confirmedTransactions.map((transaction) => transaction.result.order.price);
263
258
  const totalAmount = amounts.reduce((a, b) => a + b, 0);
@@ -265,11 +260,13 @@ function createSellerFlowTransactionResult(measuredFrom, measuredThrough, seller
265
260
  const minAmount = amounts.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? amounts[0] : 0);
266
261
  const averageAmount = (numberOfTransactionsConfirmed > 0) ? totalAmount / numberOfTransactionsConfirmed : 0;
267
262
  // アクション数集計
268
- const numbersOfActions = confirmedTransactions.map((t) => t.object.authorizeActions.length);
269
- const totalNumberOfActions = numbersOfActions.reduce((a, b) => a + b, 0);
270
- const maxNumberOfActions = numbersOfActions.reduce((a, b) => Math.max(a, b), 0);
271
- const minNumberOfActions = numbersOfActions.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? numbersOfActions[0] : 0);
272
- const averageNumberOfActions = (numberOfTransactionsConfirmed > 0) ? totalNumberOfActions / numberOfTransactionsConfirmed : 0;
263
+ // const numbersOfActions = confirmedTransactions.map((t) => t.object.authorizeActions.length);
264
+ // const totalNumberOfActions = numbersOfActions.reduce((a, b) => a + b, 0);
265
+ // const maxNumberOfActions = numbersOfActions.reduce((a, b) => Math.max(a, b), 0);
266
+ // const minNumberOfActions = numbersOfActions.reduce(
267
+ // (a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? numbersOfActions[0] : 0
268
+ // );
269
+ // const averageNumberOfActions = (numberOfTransactionsConfirmed > 0) ? totalNumberOfActions / numberOfTransactionsConfirmed : 0;
273
270
  // 期限切れ取引数
274
271
  const numberOfTransactionsExpired = expiredTransactions.length;
275
272
  const expiredTransactionIds = expiredTransactions.map((transaction) => transaction.id);
@@ -284,18 +281,18 @@ function createSellerFlowTransactionResult(measuredFrom, measuredThrough, seller
284
281
  maxRequiredTimeInMilliseconds: maxRequiredTimeInMilliseconds,
285
282
  minRequiredTimeInMilliseconds: minRequiredTimeInMilliseconds,
286
283
  averageRequiredTimeInMilliseconds: parseFloat(averageRequiredTimeInMilliseconds.toFixed(1)),
287
- totalTimeLeftUntilEventInMilliseconds: totalTimeLeftUntilEventInMilliseconds,
288
- maxTimeLeftUntilEventInMilliseconds: maxTimeLeftUntilEventInMilliseconds,
289
- minTimeLeftUntilEventInMilliseconds: minTimeLeftUntilEventInMilliseconds,
290
- averageTimeLeftUntilEventInMilliseconds: averageTimeLeftUntilEventInMilliseconds,
284
+ // totalTimeLeftUntilEventInMilliseconds: totalTimeLeftUntilEventInMilliseconds,
285
+ // maxTimeLeftUntilEventInMilliseconds: maxTimeLeftUntilEventInMilliseconds,
286
+ // minTimeLeftUntilEventInMilliseconds: minTimeLeftUntilEventInMilliseconds,
287
+ // averageTimeLeftUntilEventInMilliseconds: averageTimeLeftUntilEventInMilliseconds,
291
288
  totalAmount: totalAmount,
292
289
  maxAmount: maxAmount,
293
290
  minAmount: minAmount,
294
291
  averageAmount: parseFloat(averageAmount.toFixed(1)),
295
- totalNumberOfActionsOnConfirmed: totalNumberOfActions,
296
- maxNumberOfActionsOnConfirmed: maxNumberOfActions,
297
- minNumberOfActionsOnConfirmed: minNumberOfActions,
298
- averageNumberOfActionsOnConfirmed: parseFloat(averageNumberOfActions.toFixed(1)),
292
+ // totalNumberOfActionsOnConfirmed: totalNumberOfActions,
293
+ // maxNumberOfActionsOnConfirmed: maxNumberOfActions,
294
+ // minNumberOfActionsOnConfirmed: minNumberOfActions,
295
+ // averageNumberOfActionsOnConfirmed: parseFloat(averageNumberOfActions.toFixed(1)),
299
296
  // tslint:disable-next-line:no-suspicious-comment
300
297
  totalNumberOfOrderItems: 0,
301
298
  // tslint:disable-next-line:no-suspicious-comment
@@ -5,11 +5,10 @@ import { RedisRepository as OfferRateLimitRepo } from '../../repo/rateLimit/offe
5
5
  import { MongoRepository as ReservationRepo } from '../../repo/reservation';
6
6
  import { StockHolderRepository as StockHolderRepo } from '../../repo/stockHolder';
7
7
  import { MongoRepository as TaskRepo } from '../../repo/task';
8
- type IObjectSubReservation = factory.assetTransaction.reserve.IObjectSubReservation;
9
8
  /**
10
9
  * 進行中の予約をキャンセルする
11
10
  */
12
- declare function cancelPendingReservation(actionAttributesList: factory.action.cancel.reservation.IAttributes[]): (repos: {
11
+ declare function cancelPendingReservation(actionAttributes: factory.action.cancel.reservation.IAttributes): (repos: {
13
12
  action: ActionRepo;
14
13
  assetTransaction: AssetTransactionRepo;
15
14
  stockHolder: StockHolderRepo;
@@ -29,7 +28,10 @@ declare function cancelReservation(actionAttributesList: factory.action.cancel.r
29
28
  assetTransaction: AssetTransactionRepo;
30
29
  }) => Promise<void>;
31
30
  declare function processUnlockOfferRateLimit(params: {
32
- reservation: Pick<IObjectSubReservation, 'reservationNumber' | 'reservedTicket'>;
31
+ reservation: {
32
+ reservationNumber: string;
33
+ reservedTicket: factory.assetTransaction.reserve.IObjectSubReservationReservedTicket;
34
+ };
33
35
  reservationFor: factory.assetTransaction.reserve.IReservationFor;
34
36
  }): (repos: {
35
37
  offerRateLimit: OfferRateLimitRepo;
@@ -19,67 +19,113 @@ const onReservationCanceled_1 = require("./potentialActions/onReservationCancele
19
19
  /**
20
20
  * 進行中の予約をキャンセルする
21
21
  */
22
- // tslint:disable-next-line:max-func-body-length
23
- function cancelPendingReservation(actionAttributesList) {
24
- // tslint:disable-next-line:max-func-body-length
22
+ function cancelPendingReservation(actionAttributes) {
25
23
  return (repos) => __awaiter(this, void 0, void 0, function* () {
24
+ var _a;
26
25
  const now = new Date();
27
26
  let canceledReservations = [];
28
- if (actionAttributesList.length > 0) {
29
- // tslint:disable-next-line:max-func-body-length
30
- yield Promise.all(actionAttributesList.map((actionAttributes) => __awaiter(this, void 0, void 0, function* () {
31
- // let canceledReservation: factory.reservation.eventReservation.IReservation | undefined;
32
- const reserveTransactionId = actionAttributes.purpose.id;
33
- // アクション開始
34
- const action = yield repos.action.start(actionAttributes);
35
- const actionObject = actionAttributes.object;
36
- let cancelResult;
37
- try {
38
- // 予約取引を検索
39
- const reserveTransactions = yield repos.assetTransaction.search({
40
- limit: 1,
41
- page: 1,
42
- typeOf: factory.assetTransactionType.Reserve,
43
- ids: [reserveTransactionId]
44
- });
45
- const reserveTransaction = reserveTransactions.shift();
46
- if (reserveTransaction !== undefined) {
47
- const reservationFor = reserveTransaction.object.reservationFor;
48
- if (reservationFor === undefined) {
49
- throw new factory.errors.NotFound('transaction.object.reservationFor');
27
+ const { reserveTransaction } = yield cancelPengindIfNotYet(actionAttributes, now)(repos);
28
+ if (actionAttributes.object.typeOf === factory.reservationType.ReservationPackage) {
29
+ if (reserveTransaction.object.disablePendingReservations === true) {
30
+ // Pendingが存在しない場合は検索しても無駄(2023-06-05~)
31
+ }
32
+ else {
33
+ canceledReservations = yield repos.reservation.search({
34
+ reservationNumber: { $eq: actionAttributes.object.reservationNumber },
35
+ typeOf: factory.reservationType.EventReservation
36
+ });
37
+ canceledReservations = canceledReservations.map((r) => {
38
+ // _idは不要であり、存在すると予期せぬ影響を及ぼす可能性がある
39
+ delete r._id;
40
+ return r;
41
+ });
42
+ }
43
+ }
44
+ yield (0, onReservationCanceled_1.onReservationCanceled)(canceledReservations, false, {
45
+ project: { id: reserveTransaction.project.id },
46
+ id: String((_a = reserveTransaction.object.reservationFor) === null || _a === void 0 ? void 0 : _a.id)
47
+ })({ task: repos.task });
48
+ });
49
+ }
50
+ exports.cancelPendingReservation = cancelPendingReservation;
51
+ function cancelPengindIfNotYet(params, now) {
52
+ // tslint:disable-next-line:max-func-body-length
53
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
54
+ const actionAttributes = params;
55
+ const reserveTransactionId = actionAttributes.purpose.id;
56
+ // 予約取引を検索
57
+ const reserveTransactions = yield repos.assetTransaction.search({
58
+ limit: 1,
59
+ page: 1,
60
+ typeOf: factory.assetTransactionType.Reserve,
61
+ ids: [reserveTransactionId]
62
+ });
63
+ const reserveTransaction = reserveTransactions.shift();
64
+ if (reserveTransaction === undefined) {
65
+ throw new factory.errors.NotFound(factory.assetTransactionType.Reserve);
66
+ }
67
+ // 冪等性を担保(2023-06-05~)
68
+ const completedActions = yield repos.action.search({
69
+ limit: 1,
70
+ page: 1,
71
+ actionStatus: { $in: [factory.actionStatusType.CompletedActionStatus] },
72
+ typeOf: { $eq: params.typeOf },
73
+ object: {
74
+ typeOf: { $eq: params.object.typeOf },
75
+ reservationNumber: { $eq: params.object.reservationNumber }
76
+ },
77
+ purpose: {
78
+ id: { $in: [params.purpose.id] },
79
+ typeOf: { $in: [params.purpose.typeOf] }
80
+ }
81
+ }, ['_id'], []);
82
+ if (completedActions.length === 0) {
83
+ // アクション開始
84
+ const action = yield repos.action.start(actionAttributes);
85
+ const actionObject = actionAttributes.object;
86
+ let cancelResult;
87
+ try {
88
+ if (reserveTransaction !== undefined) {
89
+ const reservationFor = reserveTransaction.object.reservationFor;
90
+ if (reservationFor === undefined) {
91
+ throw new factory.errors.NotFound('transaction.object.reservationFor');
92
+ }
93
+ // ReservationPackageに対応(2022-12-23~)
94
+ if (actionObject.typeOf === factory.reservationType.ReservationPackage) {
95
+ const subReservation = reserveTransaction.object.subReservation;
96
+ if (Array.isArray(subReservation) && subReservation.length > 0) {
97
+ yield Promise.all(subReservation.map((cancelingSubReservation) => __awaiter(this, void 0, void 0, function* () {
98
+ yield processUnlockSeat({
99
+ reservation: {
100
+ id: cancelingSubReservation.id,
101
+ project: { id: reserveTransaction.project.id },
102
+ reservedTicket: cancelingSubReservation.reservedTicket,
103
+ subReservation: cancelingSubReservation.subReservation,
104
+ reservationFor: {
105
+ id: String(reservationFor.id),
106
+ startDate: (reservationFor.typeOf === factory.eventType.ScreeningEvent)
107
+ ? reservationFor.startDate
108
+ : reservationFor.departureTime
109
+ }
110
+ },
111
+ // holder:取引番号に対応(2023-06-05~)
112
+ expectedHolder: (reserveTransaction.object.useHoldStockByTransactionNumber === true)
113
+ ? reserveTransaction.transactionNumber
114
+ : reserveTransactionId
115
+ })(repos);
116
+ yield processUnlockOfferRateLimit({
117
+ reservation: {
118
+ reservationNumber: reserveTransaction.object.reservationNumber,
119
+ reservedTicket: cancelingSubReservation.reservedTicket
120
+ },
121
+ reservationFor
122
+ })(repos);
123
+ })));
124
+ }
125
+ if (reserveTransaction.object.disablePendingReservations === true) {
126
+ // disablePendingReservationsの場合は処理不要(2023-06-05~)
50
127
  }
51
- // ReservationPackageに対応(2022-12-23~)
52
- if (actionObject.typeOf === factory.reservationType.ReservationPackage) {
53
- const subReservation = reserveTransaction.object.subReservation;
54
- if (Array.isArray(subReservation) && subReservation.length > 0) {
55
- yield Promise.all(subReservation.map((cancelingSubReservation) => __awaiter(this, void 0, void 0, function* () {
56
- // const cancelingReservation: factory.reservation.eventReservation.IReservation = {
57
- // ...cancelingSubReservation,
58
- // reservationFor
59
- // };
60
- yield processUnlockSeat({
61
- reservation: {
62
- id: cancelingSubReservation.id,
63
- reservedTicket: cancelingSubReservation.reservedTicket,
64
- subReservation: cancelingSubReservation.subReservation,
65
- reservationFor: {
66
- id: String(reservationFor.id),
67
- startDate: (reservationFor.typeOf === factory.eventType.ScreeningEvent)
68
- ? reservationFor.startDate
69
- : reservationFor.departureTime
70
- }
71
- },
72
- expectedHolder: reserveTransactionId
73
- })(repos);
74
- yield processUnlockOfferRateLimit({
75
- reservation: {
76
- reservationNumber: cancelingSubReservation.reservationNumber,
77
- reservedTicket: cancelingSubReservation.reservedTicket
78
- },
79
- reservationFor
80
- })(repos);
81
- })));
82
- }
128
+ else {
83
129
  // 予約番号単位でキャンセル状態に変更する
84
130
  cancelResult = yield repos.reservation.cancelByReservationNumber({
85
131
  reservationNumber: actionObject.reservationNumber,
@@ -87,82 +133,41 @@ function cancelPendingReservation(actionAttributesList) {
87
133
  modifiedTime: now
88
134
  });
89
135
  }
90
- else {
91
- // 廃止(2022-12-27~)
92
- throw new factory.errors.NotImplemented(`object.typeOf '${actionObject.typeOf}' not implemented`);
93
- // const cancelingSubReservation = reserveTransaction.object.subReservation?.find((r) => {
94
- // return r.id === actionObject.id;
95
- // });
96
- // // 取消対象予約が取引に存在すれば、適宜unlock
97
- // if (cancelingSubReservation !== undefined) {
98
- // const cancelingReservation: factory.reservation.eventReservation.IReservation = {
99
- // ...cancelingSubReservation,
100
- // reservationFor
101
- // };
102
- // await processUnlockSeat({
103
- // reservation: cancelingReservation,
104
- // expectedHolder: reserveTransactionId
105
- // })(repos);
106
- // await processUnlockOfferRateLimit({ reservation: cancelingReservation, reservationFor })(repos);
107
- // // 予約が存在すればキャンセル状態に変更する
108
- // const reservationCount = await repos.reservation.count({
109
- // typeOf: cancelingSubReservation.typeOf,
110
- // ids: [cancelingSubReservation.id]
111
- // });
112
- // if (reservationCount > 0) {
113
- // await repos.reservation.cancel<factory.reservationType.EventReservation>({
114
- // id: cancelingSubReservation.id,
115
- // previousReservationStatus: actionObject.reservationStatus,
116
- // modifiedTime: now
117
- // });
118
- // }
119
- // }
120
- }
121
136
  }
122
- }
123
- catch (error) {
124
- // actionにエラー結果を追加
125
- try {
126
- const actionError = Object.assign(Object.assign({}, error), { message: error.message, name: error.name });
127
- yield repos.action.giveUp({ typeOf: action.typeOf, id: action.id, error: actionError });
128
- }
129
- catch (__) {
130
- // 失敗したら仕方ない
137
+ else {
138
+ // 廃止(2022-12-27~)
139
+ throw new factory.errors.NotImplemented(`object.typeOf '${actionObject.typeOf}' not implemented`);
131
140
  }
132
- throw error;
133
141
  }
134
- // アクション完了
135
- const actionResult = Object.assign({}, (cancelResult !== undefined) ? {
136
- cancelResult: {
137
- // n: cancelResult.n,
138
- // nModified: cancelResult.nModified,
139
- // ok: cancelResult.ok,
140
- matchedCount: cancelResult.matchedCount,
141
- modifiedCount: cancelResult.modifiedCount
142
- }
143
- } : undefined
144
- // canceledReservationId: canceledReservation?.id
145
- );
146
- yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: actionResult });
147
- // await onReservationCanceledByAction(actionAttributes)({ task: repos.task });
148
- if (actionObject.typeOf === factory.reservationType.ReservationPackage) {
149
- // 最新のconfirmedReservationsを検索
150
- canceledReservations = yield repos.reservation.search({
151
- reservationNumber: { $eq: actionObject.reservationNumber },
152
- typeOf: factory.reservationType.EventReservation
153
- });
154
- canceledReservations = canceledReservations.map((r) => {
155
- // _idは不要であり、存在すると予期せぬ影響を及ぼす可能性がある
156
- delete r._id;
157
- return r;
158
- });
142
+ }
143
+ catch (error) {
144
+ // actionにエラー結果を追加
145
+ try {
146
+ const actionError = Object.assign(Object.assign({}, error), { message: error.message, name: error.name });
147
+ yield repos.action.giveUp({ typeOf: action.typeOf, id: action.id, error: actionError });
159
148
  }
160
- yield (0, onReservationCanceled_1.onReservationCanceled)(canceledReservations, false)({ task: repos.task });
161
- })));
149
+ catch (__) {
150
+ // 失敗したら仕方ない
151
+ }
152
+ throw error;
153
+ }
154
+ // アクション完了
155
+ const actionResult = Object.assign({}, (cancelResult !== undefined) ? {
156
+ cancelResult: {
157
+ // n: cancelResult.n,
158
+ // nModified: cancelResult.nModified,
159
+ // ok: cancelResult.ok,
160
+ matchedCount: cancelResult.matchedCount,
161
+ modifiedCount: cancelResult.modifiedCount
162
+ }
163
+ } : undefined
164
+ // canceledReservationId: canceledReservation?.id
165
+ );
166
+ yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: actionResult });
162
167
  }
168
+ return { reserveTransaction };
163
169
  });
164
170
  }
165
- exports.cancelPendingReservation = cancelPendingReservation;
166
171
  /**
167
172
  * 予約をキャンセルする
168
173
  */
@@ -175,6 +180,7 @@ function cancelReservation(actionAttributesList) {
175
180
  yield Promise.all(actionAttributesList.map((actionAttributes) => __awaiter(this, void 0, void 0, function* () {
176
181
  const action = yield repos.action.start(actionAttributes);
177
182
  let cancelResult;
183
+ let canceledReservationForId;
178
184
  try {
179
185
  if (actionAttributes.object.typeOf === factory.reservationType.ReservationPackage) {
180
186
  // 予約取引を検索
@@ -186,22 +192,20 @@ function cancelReservation(actionAttributesList) {
186
192
  });
187
193
  const reserveTransaction = reserveTransactions.shift();
188
194
  if (reserveTransaction === undefined) {
189
- throw new factory.errors.NotFound('ReserveTransaction');
195
+ throw new factory.errors.NotFound(factory.assetTransactionType.Reserve);
190
196
  }
191
197
  const reservationFor = reserveTransaction.object.reservationFor;
192
198
  if (reservationFor === undefined) {
193
199
  throw new factory.errors.NotFound('transaction.object.reservationFor');
194
200
  }
201
+ canceledReservationForId = String(reservationFor.id);
195
202
  const subReservation = reserveTransaction.object.subReservation;
196
203
  if (Array.isArray(subReservation) && subReservation.length > 0) {
197
204
  yield Promise.all(subReservation.map((cancelingSubReservation) => __awaiter(this, void 0, void 0, function* () {
198
- // const cancelingReservation: factory.reservation.eventReservation.IReservation = {
199
- // ...cancelingSubReservation,
200
- // reservationFor
201
- // };
202
205
  yield processUnlockSeat({
203
206
  reservation: {
204
207
  id: cancelingSubReservation.id,
208
+ project: { id: reserveTransaction.project.id },
205
209
  reservedTicket: cancelingSubReservation.reservedTicket,
206
210
  subReservation: cancelingSubReservation.subReservation,
207
211
  reservationFor: {
@@ -211,11 +215,14 @@ function cancelReservation(actionAttributesList) {
211
215
  : reservationFor.departureTime
212
216
  }
213
217
  },
214
- expectedHolder: reserveTransaction.id
218
+ // holder:取引番号に対応(2023-06-05~)
219
+ expectedHolder: (reserveTransaction.object.useHoldStockByTransactionNumber === true)
220
+ ? reserveTransaction.transactionNumber
221
+ : reserveTransaction.id
215
222
  })(repos);
216
223
  yield processUnlockOfferRateLimit({
217
224
  reservation: {
218
- reservationNumber: cancelingSubReservation.reservationNumber,
225
+ reservationNumber: reserveTransaction.object.reservationNumber,
219
226
  reservedTicket: cancelingSubReservation.reservedTicket
220
227
  },
221
228
  reservationFor
@@ -241,14 +248,16 @@ function cancelReservation(actionAttributesList) {
241
248
  object: { reservations: { id: { $in: [reservation.id] } } }
242
249
  });
243
250
  const reserveTransaction = reserveTransactions.shift();
244
- let expectedHolder;
245
- if (reserveTransaction !== undefined) {
246
- expectedHolder = reserveTransaction.id;
247
- }
251
+ canceledReservationForId = reservation.reservationFor.id;
252
+ // holder:取引番号に対応(2023-06-05~)
253
+ const expectedHolder = ((reserveTransaction === null || reserveTransaction === void 0 ? void 0 : reserveTransaction.object.useHoldStockByTransactionNumber) === true)
254
+ ? reserveTransaction.transactionNumber
255
+ : reserveTransaction === null || reserveTransaction === void 0 ? void 0 : reserveTransaction.id;
248
256
  if (typeof expectedHolder === 'string') {
249
257
  yield processUnlockSeat({
250
258
  reservation: {
251
259
  id: reservation.id,
260
+ project: { id: reservation.project.id },
252
261
  reservedTicket: reservation.reservedTicket,
253
262
  subReservation: reservation.subReservation,
254
263
  reservationFor: {
@@ -297,7 +306,6 @@ function cancelReservation(actionAttributesList) {
297
306
  // canceledReservationId: canceledReservation?.id
298
307
  );
299
308
  yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: actionResult });
300
- // await onReservationCanceledByAction(actionAttributes)({ task: repos.task });
301
309
  let canceledReservations = [];
302
310
  if (actionAttributes.object.typeOf === factory.reservationType.ReservationPackage) {
303
311
  const reservationNumber = actionAttributes.object.reservationNumber;
@@ -320,7 +328,10 @@ function cancelReservation(actionAttributesList) {
320
328
  });
321
329
  canceledReservations = [canceledReservation];
322
330
  }
323
- yield (0, onReservationCanceled_1.onReservationCanceled)(canceledReservations, true)({ task: repos.task });
331
+ yield (0, onReservationCanceled_1.onReservationCanceled)(canceledReservations, true, {
332
+ project: { id: actionAttributes.project.id },
333
+ id: canceledReservationForId
334
+ })({ task: repos.task });
324
335
  })));
325
336
  }
326
337
  });
@@ -336,13 +347,16 @@ function processUnlockSeat(params) {
336
347
  .toDate();
337
348
  // 予約IDでロックされていれば解除
338
349
  let lockKey = {
350
+ project: reservation.project,
339
351
  eventId: reservation.reservationFor.id,
340
352
  startDate: eventStartDate,
353
+ hasTicketedSeat: false,
341
354
  offer: {
342
355
  itemOffered: { serviceOutput: { id: reservation.id } },
343
356
  seatNumber: '',
344
357
  seatSection: ''
345
- }
358
+ },
359
+ holder: params.expectedHolder
346
360
  };
347
361
  let holder = yield repos.stockHolder.getHolder(lockKey);
348
362
  if (holder === params.expectedHolder) {
@@ -352,12 +366,15 @@ function processUnlockSeat(params) {
352
366
  const ticketedSeat = reservation.reservedTicket.ticketedSeat;
353
367
  if (ticketedSeat !== undefined) {
354
368
  lockKey = {
369
+ project: reservation.project,
355
370
  eventId: reservation.reservationFor.id,
356
371
  startDate: eventStartDate,
372
+ hasTicketedSeat: true,
357
373
  offer: {
358
374
  seatNumber: ticketedSeat.seatNumber,
359
375
  seatSection: ticketedSeat.seatSection
360
- }
376
+ },
377
+ holder: params.expectedHolder
361
378
  };
362
379
  holder = yield repos.stockHolder.getHolder(lockKey);
363
380
  if (holder === params.expectedHolder) {
@@ -373,12 +390,15 @@ function processUnlockSeat(params) {
373
390
  const seatNumber4sub = (_d = (_c = subReservation.reservedTicket) === null || _c === void 0 ? void 0 : _c.ticketedSeat) === null || _d === void 0 ? void 0 : _d.seatNumber;
374
391
  if (typeof seatSection4sub === 'string' && typeof seatNumber4sub === 'string') {
375
392
  const lockKey4sub = {
393
+ project: reservation.project,
376
394
  eventId: reservation.reservationFor.id,
377
395
  startDate: eventStartDate,
396
+ hasTicketedSeat: true,
378
397
  offer: {
379
398
  seatNumber: seatNumber4sub,
380
399
  seatSection: seatSection4sub
381
- }
400
+ },
401
+ holder: params.expectedHolder
382
402
  };
383
403
  const holder4sub = yield repos.stockHolder.getHolder(lockKey4sub);
384
404
  if (holder4sub === params.expectedHolder) {
@@ -1,9 +1,8 @@
1
- /**
2
- * 予約サービス
3
- */
1
+ import { MongoRepository as ActionRepo } from '../../repo/action';
2
+ import { MongoRepository as AssetTransactionRepo } from '../../repo/assetTransaction';
4
3
  import { MongoRepository as ReservationRepo } from '../../repo/reservation';
5
4
  import { MongoRepository as TaskRepo } from '../../repo/task';
6
- export declare function checkInRerservation(params: {
5
+ interface ICheckInReservationParams {
7
6
  project: {
8
7
  id: string;
9
8
  };
@@ -23,7 +22,13 @@ export declare function checkInRerservation(params: {
23
22
  ids?: string[];
24
23
  };
25
24
  };
25
+ }
26
+ export declare function checkInReservation(params: ICheckInReservationParams & {
27
+ reserveIfNotYet: boolean;
26
28
  }): (repos: {
29
+ action: ActionRepo;
30
+ assetTransaction: AssetTransactionRepo;
27
31
  reservation: ReservationRepo;
28
32
  task: TaskRepo;
29
33
  }) => Promise<void>;
34
+ export {};