@chevre/domain 23.2.0-alpha.61 → 23.2.0-alpha.63

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 (481) hide show
  1. package/lib/chevre/credentials/customSearch.js +2 -0
  2. package/lib/chevre/credentials/lineNotify.js +4 -0
  3. package/lib/chevre/credentials/sendGrid.js +2 -0
  4. package/lib/chevre/credentials.js +15 -30
  5. package/lib/chevre/emailMessageBuilder.js +225 -250
  6. package/lib/chevre/errorHandler.js +38 -59
  7. package/lib/chevre/eventEmitter/assetTransaction.js +0 -1
  8. package/lib/chevre/eventEmitter/task.js +0 -1
  9. package/lib/chevre/eventEmitter/transaction.js +0 -1
  10. package/lib/chevre/factory/event.js +69 -42
  11. package/lib/chevre/factory/transactionNumber.js +2 -2
  12. package/lib/chevre/index.js +15 -30
  13. package/lib/chevre/repo/acceptedOffer.js +177 -197
  14. package/lib/chevre/repo/acceptedPaymentMethod.js +131 -144
  15. package/lib/chevre/repo/account.js +194 -238
  16. package/lib/chevre/repo/accountTitle.js +9 -21
  17. package/lib/chevre/repo/accountTransaction.js +186 -193
  18. package/lib/chevre/repo/accountingReport.js +88 -107
  19. package/lib/chevre/repo/action.js +849 -883
  20. package/lib/chevre/repo/additionalProperty.js +64 -92
  21. package/lib/chevre/repo/advanceBookingRequirement.js +69 -91
  22. package/lib/chevre/repo/aggregateOffer.js +392 -430
  23. package/lib/chevre/repo/aggregateOrder.js +50 -62
  24. package/lib/chevre/repo/aggregateReservation.js +76 -89
  25. package/lib/chevre/repo/aggregation.js +42 -63
  26. package/lib/chevre/repo/assetTransaction.js +692 -729
  27. package/lib/chevre/repo/authorization.js +115 -134
  28. package/lib/chevre/repo/categoryCode.js +114 -147
  29. package/lib/chevre/repo/comment.js +73 -82
  30. package/lib/chevre/repo/concurrentLock.js +17 -29
  31. package/lib/chevre/repo/confirmationNumber.js +19 -35
  32. package/lib/chevre/repo/creativeWork.js +152 -180
  33. package/lib/chevre/repo/credentials.js +39 -51
  34. package/lib/chevre/repo/customer.js +64 -88
  35. package/lib/chevre/repo/customerType.js +52 -62
  36. package/lib/chevre/repo/emailMessage.js +51 -80
  37. package/lib/chevre/repo/event.js +640 -684
  38. package/lib/chevre/repo/eventOffer.js +122 -125
  39. package/lib/chevre/repo/eventSellerMakesOffer.js +64 -76
  40. package/lib/chevre/repo/eventSeries.js +207 -244
  41. package/lib/chevre/repo/identity.js +94 -107
  42. package/lib/chevre/repo/identityProvider.js +72 -96
  43. package/lib/chevre/repo/issuer.js +102 -135
  44. package/lib/chevre/repo/member.js +238 -259
  45. package/lib/chevre/repo/memberProgram.js +157 -177
  46. package/lib/chevre/repo/merchantReturnPolicy.js +61 -94
  47. package/lib/chevre/repo/message.js +122 -135
  48. package/lib/chevre/repo/mongoose/onIndexCreated.js +0 -1
  49. package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.js +1 -1
  50. package/lib/chevre/repo/mongoose/schemas/account.js +1 -1
  51. package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -1
  52. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  53. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -1
  54. package/lib/chevre/repo/mongoose/schemas/action.js +1 -1
  55. package/lib/chevre/repo/mongoose/schemas/actionRecipe.js +1 -1
  56. package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -1
  57. package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.js +1 -1
  58. package/lib/chevre/repo/mongoose/schemas/aggregateOffer.js +1 -1
  59. package/lib/chevre/repo/mongoose/schemas/aggregateOrder.js +1 -1
  60. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +1 -1
  61. package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -1
  62. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +1 -1
  63. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  64. package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -1
  65. package/lib/chevre/repo/mongoose/schemas/civicStructure.js +1 -1
  66. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -1
  67. package/lib/chevre/repo/mongoose/schemas/customer.js +1 -1
  68. package/lib/chevre/repo/mongoose/schemas/customerType.js +1 -1
  69. package/lib/chevre/repo/mongoose/schemas/event.js +1 -1
  70. package/lib/chevre/repo/mongoose/schemas/eventOffer.js +1 -1
  71. package/lib/chevre/repo/mongoose/schemas/eventSeries.js +1 -1
  72. package/lib/chevre/repo/mongoose/schemas/identity.js +1 -1
  73. package/lib/chevre/repo/mongoose/schemas/identityProvider.js +1 -1
  74. package/lib/chevre/repo/mongoose/schemas/issuer.js +1 -1
  75. package/lib/chevre/repo/mongoose/schemas/member/global.js +1 -1
  76. package/lib/chevre/repo/mongoose/schemas/member.js +1 -1
  77. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -1
  78. package/lib/chevre/repo/mongoose/schemas/message.js +1 -1
  79. package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.js +1 -1
  80. package/lib/chevre/repo/mongoose/schemas/note.js +1 -1
  81. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -1
  82. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.js +1 -1
  83. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +1 -1
  84. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  85. package/lib/chevre/repo/mongoose/schemas/paymentService.js +1 -1
  86. package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.js +1 -1
  87. package/lib/chevre/repo/mongoose/schemas/pendingReservation.js +1 -1
  88. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.js +1 -1
  89. package/lib/chevre/repo/mongoose/schemas/place.js +1 -1
  90. package/lib/chevre/repo/mongoose/schemas/potentialAction.js +1 -1
  91. package/lib/chevre/repo/mongoose/schemas/product.js +1 -1
  92. package/lib/chevre/repo/mongoose/schemas/productModel.js +1 -1
  93. package/lib/chevre/repo/mongoose/schemas/productOffer.js +1 -1
  94. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  95. package/lib/chevre/repo/mongoose/schemas/reserveInterface.js +1 -1
  96. package/lib/chevre/repo/mongoose/schemas/role.js +1 -1
  97. package/lib/chevre/repo/mongoose/schemas/schedule.js +1 -1
  98. package/lib/chevre/repo/mongoose/schemas/seller.js +1 -1
  99. package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.js +1 -1
  100. package/lib/chevre/repo/mongoose/schemas/service/availableHour.js +1 -1
  101. package/lib/chevre/repo/mongoose/schemas/setting.js +1 -1
  102. package/lib/chevre/repo/mongoose/schemas/task.js +1 -2
  103. package/lib/chevre/repo/mongoose/schemas/ticket.js +1 -1
  104. package/lib/chevre/repo/mongoose/schemas/transaction.js +1 -1
  105. package/lib/chevre/repo/mongoose/schemas/transactionNumber.js +1 -1
  106. package/lib/chevre/repo/mongoose/schemas/trip.js +1 -1
  107. package/lib/chevre/repo/mongoose/schemas/webSite.js +1 -1
  108. package/lib/chevre/repo/movieTicketType.js +67 -94
  109. package/lib/chevre/repo/note.js +143 -147
  110. package/lib/chevre/repo/noteAboutOrder.js +112 -113
  111. package/lib/chevre/repo/offer/unitPriceInCatalog.js +330 -314
  112. package/lib/chevre/repo/offerCatalog.js +302 -334
  113. package/lib/chevre/repo/offerCatalogItem.js +289 -317
  114. package/lib/chevre/repo/offerItemCondition.js +60 -85
  115. package/lib/chevre/repo/order.js +559 -607
  116. package/lib/chevre/repo/orderInTransaction.js +113 -136
  117. package/lib/chevre/repo/orderNumber.js +95 -112
  118. package/lib/chevre/repo/ownershipInfo.js +212 -240
  119. package/lib/chevre/repo/passport.js +93 -102
  120. package/lib/chevre/repo/paymentMethod/creditCard.js +151 -169
  121. package/lib/chevre/repo/paymentService.js +179 -200
  122. package/lib/chevre/repo/paymentServiceChannel.js +76 -100
  123. package/lib/chevre/repo/paymentServiceProvider.js +186 -201
  124. package/lib/chevre/repo/pendingReservation.js +272 -305
  125. package/lib/chevre/repo/permit.js +47 -42
  126. package/lib/chevre/repo/person.js +217 -256
  127. package/lib/chevre/repo/place/busStop.js +76 -106
  128. package/lib/chevre/repo/place/entranceGate.js +123 -128
  129. package/lib/chevre/repo/place/hasPOS.js +108 -120
  130. package/lib/chevre/repo/place/movieTheater.js +185 -220
  131. package/lib/chevre/repo/place/screeningRoom.js +339 -325
  132. package/lib/chevre/repo/place/seat.js +538 -481
  133. package/lib/chevre/repo/place/section.js +328 -296
  134. package/lib/chevre/repo/potentialAction.js +67 -87
  135. package/lib/chevre/repo/priceSpecification.js +102 -146
  136. package/lib/chevre/repo/product.js +203 -239
  137. package/lib/chevre/repo/productHasOfferCatalog.js +39 -50
  138. package/lib/chevre/repo/productModel.js +94 -127
  139. package/lib/chevre/repo/productOffer.js +119 -118
  140. package/lib/chevre/repo/project.js +123 -141
  141. package/lib/chevre/repo/projectMakesOffer.js +96 -108
  142. package/lib/chevre/repo/rateLimit/offer.js +43 -57
  143. package/lib/chevre/repo/reservation.js +369 -398
  144. package/lib/chevre/repo/reserveInterface.js +31 -42
  145. package/lib/chevre/repo/role.js +93 -112
  146. package/lib/chevre/repo/schedule.js +25 -36
  147. package/lib/chevre/repo/seller.js +114 -147
  148. package/lib/chevre/repo/sellerMakesOffer.js +95 -110
  149. package/lib/chevre/repo/sellerPaymentAccepted.js +92 -109
  150. package/lib/chevre/repo/sellerReturnPolicy.js +74 -97
  151. package/lib/chevre/repo/service/availableHour.js +27 -38
  152. package/lib/chevre/repo/serviceOutput.js +54 -67
  153. package/lib/chevre/repo/serviceOutputIdentifier.js +46 -58
  154. package/lib/chevre/repo/setting/jwt.js +40 -50
  155. package/lib/chevre/repo/setting.js +48 -48
  156. package/lib/chevre/repo/stockHolder.js +179 -199
  157. package/lib/chevre/repo/task.js +610 -619
  158. package/lib/chevre/repo/telemetry.js +1 -0
  159. package/lib/chevre/repo/ticket.js +52 -65
  160. package/lib/chevre/repo/transaction.js +754 -815
  161. package/lib/chevre/repo/transactionNumber.js +67 -80
  162. package/lib/chevre/repo/transactionNumberCounter.js +68 -79
  163. package/lib/chevre/repo/transactionProcess.js +36 -47
  164. package/lib/chevre/repo/trip.js +144 -164
  165. package/lib/chevre/repo/webSite.js +90 -106
  166. package/lib/chevre/repository.js +455 -647
  167. package/lib/chevre/service/account.js +9 -21
  168. package/lib/chevre/service/accountTransaction/deposit.js +16 -17
  169. package/lib/chevre/service/accountTransaction/transfer.js +18 -22
  170. package/lib/chevre/service/accountTransaction/withdraw.js +16 -17
  171. package/lib/chevre/service/accountTransaction.js +4 -16
  172. package/lib/chevre/service/aggregation/event/aggregateOffers.js +63 -60
  173. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +52 -55
  174. package/lib/chevre/service/aggregation/event/findEventOffers.js +7 -17
  175. package/lib/chevre/service/aggregation/event/importFromCOA.js +4 -14
  176. package/lib/chevre/service/aggregation/project.js +10 -19
  177. package/lib/chevre/service/aggregation/system.js +182 -99
  178. package/lib/chevre/service/assetTransaction/cancelReservation/factory.js +31 -17
  179. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +17 -24
  180. package/lib/chevre/service/assetTransaction/cancelReservation/startAndConfirm.js +17 -15
  181. package/lib/chevre/service/assetTransaction/cancelReservation.js +7 -18
  182. package/lib/chevre/service/assetTransaction/cancelReservationCOA/factory.js +11 -4
  183. package/lib/chevre/service/assetTransaction/cancelReservationCOA.js +4 -13
  184. package/lib/chevre/service/assetTransaction/fixInformAction.js +6 -16
  185. package/lib/chevre/service/assetTransaction/moneyTransfer/potentialActions.js +13 -25
  186. package/lib/chevre/service/assetTransaction/moneyTransfer.js +101 -90
  187. package/lib/chevre/service/assetTransaction/pay/cancel.js +3 -12
  188. package/lib/chevre/service/assetTransaction/pay/check.js +4 -14
  189. package/lib/chevre/service/assetTransaction/pay/confirm.js +18 -21
  190. package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +4 -14
  191. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +33 -34
  192. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.js +7 -17
  193. package/lib/chevre/service/assetTransaction/pay/start/account/validation.js +6 -16
  194. package/lib/chevre/service/assetTransaction/pay/start/factory.js +64 -37
  195. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateAcceptedPaymentMethodIfNeeded.js +7 -19
  196. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +6 -16
  197. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.js +7 -17
  198. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.js +9 -15
  199. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +3 -12
  200. package/lib/chevre/service/assetTransaction/pay/start.js +29 -35
  201. package/lib/chevre/service/assetTransaction/refund/factory.js +36 -16
  202. package/lib/chevre/service/assetTransaction/refund/potentialActions.js +12 -21
  203. package/lib/chevre/service/assetTransaction/refund.js +35 -41
  204. package/lib/chevre/service/assetTransaction/registerService/factory.js +65 -28
  205. package/lib/chevre/service/assetTransaction/registerService/potentialActions.js +50 -43
  206. package/lib/chevre/service/assetTransaction/registerService.js +45 -56
  207. package/lib/chevre/service/assetTransaction/reserve/cancel.js +5 -14
  208. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.js +15 -4
  209. package/lib/chevre/service/assetTransaction/reserve/confirm.js +21 -26
  210. package/lib/chevre/service/assetTransaction/reserve/exportTasksById.js +3 -13
  211. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +99 -83
  212. package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.js +17 -12
  213. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +108 -72
  214. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +69 -30
  215. package/lib/chevre/service/assetTransaction/reserve/start/factory/price.js +29 -20
  216. package/lib/chevre/service/assetTransaction/reserve/start.js +91 -108
  217. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/fixExtendedEventOffer.js +5 -15
  218. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateIssuedOfferIfExists.js +41 -54
  219. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateMemberTierIfExists.js +42 -56
  220. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/verifyTicketTokenAsNeeded.js +7 -19
  221. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest.js +15 -27
  222. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +24 -24
  223. package/lib/chevre/service/assetTransaction/reserveCOA/factory.js +12 -4
  224. package/lib/chevre/service/assetTransaction/reserveCOA.js +4 -13
  225. package/lib/chevre/service/assetTransaction.js +17 -21
  226. package/lib/chevre/service/delivery/factory.js +3 -4
  227. package/lib/chevre/service/delivery/product/factory.js +16 -7
  228. package/lib/chevre/service/delivery/reservation/factory.js +14 -3
  229. package/lib/chevre/service/delivery.js +48 -52
  230. package/lib/chevre/service/event/processUpdateMovieTheater.js +21 -26
  231. package/lib/chevre/service/event/saveScreeningEventSeries.js +56 -41
  232. package/lib/chevre/service/event/saveScreeningEvents.js +14 -29
  233. package/lib/chevre/service/event.js +34 -30
  234. package/lib/chevre/service/iam.js +8 -17
  235. package/lib/chevre/service/moneyTransfer.js +128 -112
  236. package/lib/chevre/service/notification/factory.js +11 -10
  237. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +11 -15
  238. package/lib/chevre/service/notification/notifyByEmail.js +7 -19
  239. package/lib/chevre/service/notification/sendEmailMessage.js +23 -26
  240. package/lib/chevre/service/notification/triggerWebhook.js +58 -56
  241. package/lib/chevre/service/offer/any.js +6 -15
  242. package/lib/chevre/service/offer/event/authorize/factory.js +139 -63
  243. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre/requestedProgramMembershipUsed2permit.js +8 -19
  244. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.js +43 -27
  245. package/lib/chevre/service/offer/event/authorize.js +114 -71
  246. package/lib/chevre/service/offer/event/checkAvailability.js +5 -15
  247. package/lib/chevre/service/offer/event/importFromCOA/factory.js +9 -3
  248. package/lib/chevre/service/offer/event/importFromCOA.js +13 -19
  249. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +38 -39
  250. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +26 -41
  251. package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +11 -22
  252. package/lib/chevre/service/offer/event/searchOfferCatalogItemAvailability.js +13 -26
  253. package/lib/chevre/service/offer/event/searchOfferCatalogItems.js +15 -23
  254. package/lib/chevre/service/offer/event/searchOffersByIds.js +24 -39
  255. package/lib/chevre/service/offer/event/searchPriceSpecs4event.js +5 -14
  256. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +4 -13
  257. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.js +6 -15
  258. package/lib/chevre/service/offer/event/voidTransaction.js +35 -41
  259. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +14 -20
  260. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/authorize.js +52 -42
  261. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/factory.js +5 -1
  262. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +34 -37
  263. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +45 -26
  264. package/lib/chevre/service/offer/eventServiceByCOA/authorize/validateAcceptedOffers.js +67 -62
  265. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +16 -27
  266. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +8 -18
  267. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +42 -43
  268. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +22 -25
  269. package/lib/chevre/service/offer/factory.js +18 -8
  270. package/lib/chevre/service/offer/moneyTransfer/authorize.js +31 -36
  271. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +9 -18
  272. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +10 -19
  273. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +14 -24
  274. package/lib/chevre/service/offer/onEventChanged.js +69 -65
  275. package/lib/chevre/service/offer/product/factory.js +54 -32
  276. package/lib/chevre/service/offer/product/searchProductOffers.js +30 -24
  277. package/lib/chevre/service/offer/product.js +106 -82
  278. package/lib/chevre/service/offer.js +48 -45
  279. package/lib/chevre/service/order/confirmPayTransaction.js +28 -27
  280. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +54 -41
  281. package/lib/chevre/service/order/deleteOrder.js +28 -36
  282. package/lib/chevre/service/order/findPlaceOrderTransaction.js +3 -12
  283. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +64 -70
  284. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.js +1 -2
  285. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled.js +3 -12
  286. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +11 -6
  287. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +5 -14
  288. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +22 -9
  289. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +5 -14
  290. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +23 -26
  291. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +13 -19
  292. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +5 -14
  293. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +24 -14
  294. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +23 -32
  295. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +8 -18
  296. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +10 -9
  297. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +23 -28
  298. package/lib/chevre/service/order/onOrderUpdated/factory.js +3 -5
  299. package/lib/chevre/service/order/onOrderUpdated.js +13 -15
  300. package/lib/chevre/service/order/payOrder.js +3 -12
  301. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +9 -20
  302. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +31 -15
  303. package/lib/chevre/service/order/placeOrder/factory.js +35 -22
  304. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +3 -12
  305. package/lib/chevre/service/order/placeOrder.js +12 -23
  306. package/lib/chevre/service/order/placeOrderWithoutTransaction.js +10 -18
  307. package/lib/chevre/service/order/returnOrder.js +27 -30
  308. package/lib/chevre/service/order/sendOrder.js +37 -37
  309. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.js +19 -25
  310. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +24 -39
  311. package/lib/chevre/service/payment/any/factory.js +106 -50
  312. package/lib/chevre/service/payment/any/fixOrderAsNeeded.js +4 -13
  313. package/lib/chevre/service/payment/any/onPayActionCompleted.js +13 -18
  314. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.js +34 -37
  315. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.js +18 -24
  316. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +16 -16
  317. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.js +15 -21
  318. package/lib/chevre/service/payment/any/person2username.js +32 -45
  319. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.js +8 -18
  320. package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +5 -17
  321. package/lib/chevre/service/payment/any.js +181 -142
  322. package/lib/chevre/service/payment/creditCard/authorize/handleAuthorizeError.js +2 -2
  323. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +44 -25
  324. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +6 -15
  325. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3dsResult2recipe.js +5 -1
  326. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCardResult2recipe.js +10 -2
  327. package/lib/chevre/service/payment/creditCard/authorize.js +20 -22
  328. package/lib/chevre/service/payment/creditCard/factory.js +22 -4
  329. package/lib/chevre/service/payment/creditCard/getGMOInfoFromSeller.js +8 -18
  330. package/lib/chevre/service/payment/creditCard/payCreditCard.js +31 -36
  331. package/lib/chevre/service/payment/creditCard/refundCreditCard.js +40 -51
  332. package/lib/chevre/service/payment/creditCard/searchGMOTrade.js +33 -45
  333. package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -26
  334. package/lib/chevre/service/payment/faceToFace.js +14 -23
  335. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +44 -25
  336. package/lib/chevre/service/payment/factory.js +50 -24
  337. package/lib/chevre/service/payment/movieTicket/authorize.js +35 -30
  338. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +22 -25
  339. package/lib/chevre/service/payment/movieTicket/factory.js +33 -10
  340. package/lib/chevre/service/payment/movieTicket/getCredentials.js +5 -15
  341. package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +29 -40
  342. package/lib/chevre/service/payment/movieTicket/processPurchaseNumberAuth.js +8 -18
  343. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.js +60 -60
  344. package/lib/chevre/service/payment/movieTicket/validation.js +41 -37
  345. package/lib/chevre/service/payment/movieTicket/voidTransaction.js +8 -18
  346. package/lib/chevre/service/payment/paymentCard.js +87 -104
  347. package/lib/chevre/service/permit.js +36 -35
  348. package/lib/chevre/service/product.js +23 -28
  349. package/lib/chevre/service/project.js +22 -31
  350. package/lib/chevre/service/report/ownershipInfo.js +3 -4
  351. package/lib/chevre/service/report/telemetry.js +51 -70
  352. package/lib/chevre/service/reserve/cancelReservation.js +92 -93
  353. package/lib/chevre/service/reserve/checkInReservation.js +24 -29
  354. package/lib/chevre/service/reserve/confirmReservation.js +33 -39
  355. package/lib/chevre/service/reserve/factory.js +42 -20
  356. package/lib/chevre/service/reserve/findByCode.js +13 -18
  357. package/lib/chevre/service/reserve/potentialActions/onPendingReservationCanceled.js +18 -24
  358. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +17 -25
  359. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +38 -30
  360. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +45 -37
  361. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +37 -33
  362. package/lib/chevre/service/reserve/potentialActions/onReservationsCreated.js +17 -23
  363. package/lib/chevre/service/reserve/searchByOrder.js +10 -20
  364. package/lib/chevre/service/reserve/useReservation.js +47 -34
  365. package/lib/chevre/service/reserve/verifyToken4reservation.js +7 -14
  366. package/lib/chevre/service/reserveCOA/cancelReservation.js +7 -17
  367. package/lib/chevre/service/reserveCOA/factory.js +5 -1
  368. package/lib/chevre/service/task/acceptCOAOffer.js +20 -25
  369. package/lib/chevre/service/task/aggregateOffers.js +3 -12
  370. package/lib/chevre/service/task/aggregateOnSystem.js +4 -14
  371. package/lib/chevre/service/task/aggregateScreeningEvent.js +3 -12
  372. package/lib/chevre/service/task/authorizePayment.js +9 -15
  373. package/lib/chevre/service/task/cancelMoneyTransfer.js +3 -12
  374. package/lib/chevre/service/task/cancelPendingReservation.js +10 -20
  375. package/lib/chevre/service/task/cancelReservation.js +3 -12
  376. package/lib/chevre/service/task/checkMovieTicket.js +16 -19
  377. package/lib/chevre/service/task/checkResource.js +7 -16
  378. package/lib/chevre/service/task/confirmMoneyTransfer.js +3 -12
  379. package/lib/chevre/service/task/confirmPayTransaction.js +6 -12
  380. package/lib/chevre/service/task/confirmRegisterService.js +3 -12
  381. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +24 -31
  382. package/lib/chevre/service/task/confirmReserveTransaction.js +48 -45
  383. package/lib/chevre/service/task/createAccountingReport.js +14 -20
  384. package/lib/chevre/service/task/deletePerson.js +48 -60
  385. package/lib/chevre/service/task/deleteTransaction.js +3 -12
  386. package/lib/chevre/service/task/givePointAward.js +3 -12
  387. package/lib/chevre/service/task/handleNotification.js +4 -14
  388. package/lib/chevre/service/task/importEventCapacitiesFromCOA.js +6 -16
  389. package/lib/chevre/service/task/importEventsFromCOA.js +6 -16
  390. package/lib/chevre/service/task/importOffersFromCOA.js +8 -18
  391. package/lib/chevre/service/task/invalidatePaymentUrl.js +6 -12
  392. package/lib/chevre/service/task/moneyTransfer.js +3 -12
  393. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +3 -12
  394. package/lib/chevre/service/task/onAuthorizationCreated.js +11 -19
  395. package/lib/chevre/service/task/onEventChanged.js +3 -12
  396. package/lib/chevre/service/task/onOrderPaymentCompleted.js +3 -12
  397. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +7 -16
  398. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +7 -16
  399. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +8 -17
  400. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +10 -19
  401. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +8 -17
  402. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +6 -15
  403. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +14 -24
  404. package/lib/chevre/service/task/onResourceDeleted.js +17 -27
  405. package/lib/chevre/service/task/onResourceUpdated/onAggregateOfferUpdated.js +9 -21
  406. package/lib/chevre/service/task/onResourceUpdated/onCategoryCodeUpdated.js +3 -12
  407. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +11 -23
  408. package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +13 -25
  409. package/lib/chevre/service/task/onResourceUpdated/syncCategoryCode.js +9 -15
  410. package/lib/chevre/service/task/onResourceUpdated/syncOfferCatalog.js +21 -27
  411. package/lib/chevre/service/task/onResourceUpdated.js +113 -158
  412. package/lib/chevre/service/task/pay.js +8 -16
  413. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.js +4 -14
  414. package/lib/chevre/service/task/payment/payByTask.js +49 -38
  415. package/lib/chevre/service/task/payment/refundByTask.js +7 -17
  416. package/lib/chevre/service/task/payment/voidPaymentByTask.js +6 -15
  417. package/lib/chevre/service/task/placeOrder.js +6 -12
  418. package/lib/chevre/service/task/publishPaymentUrl.js +9 -14
  419. package/lib/chevre/service/task/refund.js +8 -16
  420. package/lib/chevre/service/task/registerService.js +3 -12
  421. package/lib/chevre/service/task/reserve.js +3 -12
  422. package/lib/chevre/service/task/returnMoneyTransfer.js +3 -12
  423. package/lib/chevre/service/task/returnOrder.js +6 -12
  424. package/lib/chevre/service/task/returnPayTransaction.js +54 -49
  425. package/lib/chevre/service/task/returnPointAward.js +3 -12
  426. package/lib/chevre/service/task/returnReserveTransaction.js +29 -30
  427. package/lib/chevre/service/task/sendEmailMessage.js +6 -13
  428. package/lib/chevre/service/task/sendOrder.js +12 -15
  429. package/lib/chevre/service/task/syncResourcesFromCOA.js +39 -45
  430. package/lib/chevre/service/task/triggerWebhook.js +6 -12
  431. package/lib/chevre/service/task/useReservation.js +11 -14
  432. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +3 -12
  433. package/lib/chevre/service/task/voidPayTransaction.js +7 -12
  434. package/lib/chevre/service/task/voidPayment.js +3 -12
  435. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +3 -12
  436. package/lib/chevre/service/task/voidReserveTransaction.js +10 -16
  437. package/lib/chevre/service/task.js +16 -26
  438. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +9 -20
  439. package/lib/chevre/service/taskHandler/onOperationFailed.js +20 -17
  440. package/lib/chevre/service/taskHandler.js +19 -22
  441. package/lib/chevre/service/transaction/deleteTransaction.js +104 -88
  442. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +15 -9
  443. package/lib/chevre/service/transaction/moneyTransfer/factory.js +13 -4
  444. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +12 -24
  445. package/lib/chevre/service/transaction/moneyTransfer.js +119 -98
  446. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +49 -51
  447. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +14 -25
  448. package/lib/chevre/service/transaction/placeOrder/confirm/publishCode.js +4 -14
  449. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.js +3 -4
  450. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.js +3 -6
  451. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +2 -3
  452. package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +30 -47
  453. package/lib/chevre/service/transaction/placeOrder/confirm.js +75 -59
  454. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +31 -15
  455. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +6 -15
  456. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +6 -15
  457. package/lib/chevre/service/transaction/placeOrder/publishOrderNumberIfNotExist.js +7 -16
  458. package/lib/chevre/service/transaction/placeOrder/start/factory.js +27 -7
  459. package/lib/chevre/service/transaction/placeOrder/start/validateStartRequest.js +53 -60
  460. package/lib/chevre/service/transaction/placeOrder/start.js +14 -18
  461. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +13 -7
  462. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +176 -190
  463. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +75 -89
  464. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +40 -48
  465. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +52 -56
  466. package/lib/chevre/service/transaction/returnOrder/preStart/findApplicableReturnPolicy.js +100 -104
  467. package/lib/chevre/service/transaction/returnOrder/preStart/getReturnPolicyByProject.js +60 -80
  468. package/lib/chevre/service/transaction/returnOrder/preStart.js +42 -47
  469. package/lib/chevre/service/transaction/returnOrder.js +32 -37
  470. package/lib/chevre/service/transaction.js +75 -46
  471. package/lib/chevre/service/validation/validateEvent.js +2 -11
  472. package/lib/chevre/service/validation/validateOrder.js +7 -18
  473. package/lib/chevre/service.js +85 -131
  474. package/lib/chevre/settings/aggregation.js +4 -0
  475. package/lib/chevre/settings.js +7 -1
  476. package/lib/index.js +0 -1
  477. package/package.json +6 -11
  478. package/example/src/chevre/addEventBySchedule.ts +0 -46
  479. package/example/src/idaas/auth0/adminApplications.ts +0 -183
  480. package/example/src/idaas/auth0/getToken.ts +0 -55
  481. package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +0 -84
@@ -1,24 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
21
- };
22
2
  Object.defineProperty(exports, "__esModule", { value: true });
23
3
  exports.AggregateOfferRepo = void 0;
24
4
  const createDebug = require("debug");
@@ -29,41 +9,40 @@ const debug = createDebug('chevre-domain:repo:aggregateOffer');
29
9
  * 集計オファーリポジトリ
30
10
  */
31
11
  class AggregateOfferRepo {
12
+ aggregateOfferModel;
32
13
  constructor(connection) {
33
14
  this.aggregateOfferModel = connection.model(aggregateOffer_1.modelName, (0, aggregateOffer_1.createSchema)());
34
15
  }
35
- // tslint:disable-next-line:cyclomatic-complexity max-func-body-length
36
16
  static CREATE_MATCH_STAGE(params) {
37
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50;
38
17
  const matchStages = [];
39
- const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
18
+ const projectIdEq = params.project?.id?.$eq;
40
19
  if (typeof projectIdEq === 'string') {
41
20
  matchStages.push({
42
21
  $match: { 'project.id': { $eq: projectIdEq } }
43
22
  });
44
23
  }
45
- const parentOfferIdIn = (_d = (_c = params.parentOffer) === null || _c === void 0 ? void 0 : _c.id) === null || _d === void 0 ? void 0 : _d.$in;
24
+ const parentOfferIdIn = params.parentOffer?.id?.$in;
46
25
  if (Array.isArray(parentOfferIdIn)) {
47
26
  matchStages.push({ $match: { _id: { $in: parentOfferIdIn } } });
48
27
  }
49
28
  // aggregateOffer.includedInDataCatalogで検索する(2023-09-21~)
50
- const includedInDataCatalogIdIn = (_f = (_e = params.includedInDataCatalog) === null || _e === void 0 ? void 0 : _e.id) === null || _f === void 0 ? void 0 : _f.$in;
29
+ const includedInDataCatalogIdIn = params.includedInDataCatalog?.id?.$in;
51
30
  if (Array.isArray(includedInDataCatalogIdIn)) {
52
31
  matchStages.push({ $match: { 'includedInDataCatalog.id': { $exists: true, $in: includedInDataCatalogIdIn } } });
53
32
  }
54
- const idEq = (_g = params.id) === null || _g === void 0 ? void 0 : _g.$eq;
33
+ const idEq = params.id?.$eq;
55
34
  if (typeof idEq === 'string') {
56
35
  matchStages.push({
57
36
  $match: { _id: { $eq: idEq } } // _idに変更(2023-12-22~)
58
37
  });
59
38
  }
60
- const idIn = (_h = params.id) === null || _h === void 0 ? void 0 : _h.$in;
39
+ const idIn = params.id?.$in;
61
40
  if (Array.isArray(idIn)) {
62
41
  matchStages.push({
63
42
  $match: { _id: { $in: idIn } } // _idに変更(2023-12-22~)
64
43
  });
65
44
  }
66
- const identifierEq = (_j = params.identifier) === null || _j === void 0 ? void 0 : _j.$eq;
45
+ const identifierEq = params.identifier?.$eq;
67
46
  if (typeof identifierEq === 'string') {
68
47
  matchStages.push({
69
48
  $match: {
@@ -71,7 +50,7 @@ class AggregateOfferRepo {
71
50
  }
72
51
  });
73
52
  }
74
- const identifierIn = (_k = params.identifier) === null || _k === void 0 ? void 0 : _k.$in;
53
+ const identifierIn = params.identifier?.$in;
75
54
  if (Array.isArray(identifierIn)) {
76
55
  matchStages.push({
77
56
  $match: {
@@ -79,7 +58,7 @@ class AggregateOfferRepo {
79
58
  }
80
59
  });
81
60
  }
82
- const identifierRegex = (_l = params.identifier) === null || _l === void 0 ? void 0 : _l.$regex;
61
+ const identifierRegex = params.identifier?.$regex;
83
62
  if (typeof identifierRegex === 'string' && identifierRegex.length > 0) {
84
63
  matchStages.push({
85
64
  $match: {
@@ -87,7 +66,7 @@ class AggregateOfferRepo {
87
66
  }
88
67
  });
89
68
  }
90
- const nameRegex = (_m = params.name) === null || _m === void 0 ? void 0 : _m.$regex;
69
+ const nameRegex = params.name?.$regex;
91
70
  if (typeof nameRegex === 'string' && nameRegex.length > 0) {
92
71
  const nameRegexExp = new RegExp(nameRegex);
93
72
  matchStages.push({
@@ -101,7 +80,7 @@ class AggregateOfferRepo {
101
80
  }
102
81
  });
103
82
  }
104
- const itemOfferedTypeOfEq = (_p = (_o = params.itemOffered) === null || _o === void 0 ? void 0 : _o.typeOf) === null || _p === void 0 ? void 0 : _p.$eq;
83
+ const itemOfferedTypeOfEq = params.itemOffered?.typeOf?.$eq;
105
84
  if (typeof itemOfferedTypeOfEq === 'string') {
106
85
  matchStages.push({
107
86
  $match: {
@@ -109,7 +88,7 @@ class AggregateOfferRepo {
109
88
  }
110
89
  });
111
90
  }
112
- const categoryCodeValueIn = (_r = (_q = params.category) === null || _q === void 0 ? void 0 : _q.codeValue) === null || _r === void 0 ? void 0 : _r.$in;
91
+ const categoryCodeValueIn = params.category?.codeValue?.$in;
113
92
  if (Array.isArray(categoryCodeValueIn)) {
114
93
  matchStages.push({
115
94
  $match: {
@@ -117,7 +96,7 @@ class AggregateOfferRepo {
117
96
  }
118
97
  });
119
98
  }
120
- const eligibleMembershipTypeCodeValueEq = (_t = (_s = params.eligibleMembershipType) === null || _s === void 0 ? void 0 : _s.codeValue) === null || _t === void 0 ? void 0 : _t.$eq;
99
+ const eligibleMembershipTypeCodeValueEq = params.eligibleMembershipType?.codeValue?.$eq;
121
100
  if (typeof eligibleMembershipTypeCodeValueEq === 'string') {
122
101
  matchStages.push({
123
102
  $match: {
@@ -128,7 +107,7 @@ class AggregateOfferRepo {
128
107
  }
129
108
  });
130
109
  }
131
- const eligibleMonetaryAmountCurrencyEq = (_v = (_u = params.eligibleMonetaryAmount) === null || _u === void 0 ? void 0 : _u.currency) === null || _v === void 0 ? void 0 : _v.$eq;
110
+ const eligibleMonetaryAmountCurrencyEq = params.eligibleMonetaryAmount?.currency?.$eq;
132
111
  if (typeof eligibleMonetaryAmountCurrencyEq === 'string') {
133
112
  matchStages.push({
134
113
  $match: {
@@ -139,7 +118,7 @@ class AggregateOfferRepo {
139
118
  }
140
119
  });
141
120
  }
142
- const eligibleSeatingTypeCodeValueEq = (_x = (_w = params.eligibleSeatingType) === null || _w === void 0 ? void 0 : _w.codeValue) === null || _x === void 0 ? void 0 : _x.$eq;
121
+ const eligibleSeatingTypeCodeValueEq = params.eligibleSeatingType?.codeValue?.$eq;
143
122
  if (typeof eligibleSeatingTypeCodeValueEq === 'string') {
144
123
  matchStages.push({
145
124
  $match: {
@@ -150,13 +129,13 @@ class AggregateOfferRepo {
150
129
  }
151
130
  });
152
131
  }
153
- const appliesToMovieTicketSize = (_z = (_y = params.priceSpecification) === null || _y === void 0 ? void 0 : _y.appliesToMovieTicket) === null || _z === void 0 ? void 0 : _z.$size;
132
+ const appliesToMovieTicketSize = params.priceSpecification?.appliesToMovieTicket?.$size;
154
133
  if (typeof appliesToMovieTicketSize === 'number') {
155
134
  matchStages.push({
156
135
  $match: { 'offers.priceSpecification.appliesToMovieTicket': { $exists: true, $size: appliesToMovieTicketSize } }
157
136
  });
158
137
  }
159
- const appliesToMovieTicketServiceTypeExist = (_2 = (_1 = (_0 = params.priceSpecification) === null || _0 === void 0 ? void 0 : _0.appliesToMovieTicket) === null || _1 === void 0 ? void 0 : _1.serviceType) === null || _2 === void 0 ? void 0 : _2.$exists;
138
+ const appliesToMovieTicketServiceTypeExist = params.priceSpecification?.appliesToMovieTicket?.serviceType?.$exists;
160
139
  if (typeof appliesToMovieTicketServiceTypeExist === 'boolean') {
161
140
  matchStages.push({
162
141
  $match: {
@@ -166,7 +145,7 @@ class AggregateOfferRepo {
166
145
  }
167
146
  });
168
147
  }
169
- const appliesToMovieTicketServiceTypeEq = (_5 = (_4 = (_3 = params.priceSpecification) === null || _3 === void 0 ? void 0 : _3.appliesToMovieTicket) === null || _4 === void 0 ? void 0 : _4.serviceType) === null || _5 === void 0 ? void 0 : _5.$eq;
148
+ const appliesToMovieTicketServiceTypeEq = params.priceSpecification?.appliesToMovieTicket?.serviceType?.$eq;
170
149
  if (typeof appliesToMovieTicketServiceTypeEq === 'string') {
171
150
  matchStages.push({
172
151
  $match: {
@@ -177,7 +156,7 @@ class AggregateOfferRepo {
177
156
  }
178
157
  });
179
158
  }
180
- const appliesToMovieTicketServiceOutputTypeOfEq = (_9 = (_8 = (_7 = (_6 = params.priceSpecification) === null || _6 === void 0 ? void 0 : _6.appliesToMovieTicket) === null || _7 === void 0 ? void 0 : _7.serviceOutput) === null || _8 === void 0 ? void 0 : _8.typeOf) === null || _9 === void 0 ? void 0 : _9.$eq;
159
+ const appliesToMovieTicketServiceOutputTypeOfEq = params.priceSpecification?.appliesToMovieTicket?.serviceOutput?.typeOf?.$eq;
181
160
  if (typeof appliesToMovieTicketServiceOutputTypeOfEq === 'string') {
182
161
  matchStages.push({
183
162
  $match: {
@@ -188,7 +167,7 @@ class AggregateOfferRepo {
188
167
  }
189
168
  });
190
169
  }
191
- const appliesToMovieTicketServiceOutputTypeOfAll = (_13 = (_12 = (_11 = (_10 = params.priceSpecification) === null || _10 === void 0 ? void 0 : _10.appliesToMovieTicket) === null || _11 === void 0 ? void 0 : _11.serviceOutput) === null || _12 === void 0 ? void 0 : _12.typeOf) === null || _13 === void 0 ? void 0 : _13.$all;
170
+ const appliesToMovieTicketServiceOutputTypeOfAll = params.priceSpecification?.appliesToMovieTicket?.serviceOutput?.typeOf?.$all;
192
171
  if (Array.isArray(appliesToMovieTicketServiceOutputTypeOfAll)) {
193
172
  matchStages.push({
194
173
  $match: {
@@ -199,7 +178,7 @@ class AggregateOfferRepo {
199
178
  }
200
179
  });
201
180
  }
202
- const appliesToMovieTicketServiceOutputTypeOfNin = (_17 = (_16 = (_15 = (_14 = params.priceSpecification) === null || _14 === void 0 ? void 0 : _14.appliesToMovieTicket) === null || _15 === void 0 ? void 0 : _15.serviceOutput) === null || _16 === void 0 ? void 0 : _16.typeOf) === null || _17 === void 0 ? void 0 : _17.$nin;
181
+ const appliesToMovieTicketServiceOutputTypeOfNin = params.priceSpecification?.appliesToMovieTicket?.serviceOutput?.typeOf?.$nin;
203
182
  if (Array.isArray(appliesToMovieTicketServiceOutputTypeOfNin)) {
204
183
  matchStages.push({
205
184
  $match: {
@@ -210,7 +189,7 @@ class AggregateOfferRepo {
210
189
  });
211
190
  }
212
191
  if (params.priceSpecification !== undefined && params.priceSpecification !== null) {
213
- const priceSpecificationPriceGte = (_18 = params.priceSpecification.price) === null || _18 === void 0 ? void 0 : _18.$gte;
192
+ const priceSpecificationPriceGte = params.priceSpecification.price?.$gte;
214
193
  if (typeof priceSpecificationPriceGte === 'number') {
215
194
  matchStages.push({
216
195
  $match: {
@@ -221,7 +200,7 @@ class AggregateOfferRepo {
221
200
  }
222
201
  });
223
202
  }
224
- const priceSpecificationPriceLte = (_19 = params.priceSpecification.price) === null || _19 === void 0 ? void 0 : _19.$lte;
203
+ const priceSpecificationPriceLte = params.priceSpecification.price?.$lte;
225
204
  if (typeof priceSpecificationPriceLte === 'number') {
226
205
  matchStages.push({
227
206
  $match: {
@@ -232,7 +211,7 @@ class AggregateOfferRepo {
232
211
  }
233
212
  });
234
213
  }
235
- const accountsReceivableGte = (_21 = (_20 = params.priceSpecification.accounting) === null || _20 === void 0 ? void 0 : _20.accountsReceivable) === null || _21 === void 0 ? void 0 : _21.$gte;
214
+ const accountsReceivableGte = params.priceSpecification.accounting?.accountsReceivable?.$gte;
236
215
  if (typeof accountsReceivableGte === 'number') {
237
216
  matchStages.push({
238
217
  $match: {
@@ -243,7 +222,7 @@ class AggregateOfferRepo {
243
222
  }
244
223
  });
245
224
  }
246
- const accountsReceivableLte = (_23 = (_22 = params.priceSpecification.accounting) === null || _22 === void 0 ? void 0 : _22.accountsReceivable) === null || _23 === void 0 ? void 0 : _23.$lte;
225
+ const accountsReceivableLte = params.priceSpecification.accounting?.accountsReceivable?.$lte;
247
226
  if (typeof accountsReceivableLte === 'number') {
248
227
  matchStages.push({
249
228
  $match: {
@@ -254,7 +233,7 @@ class AggregateOfferRepo {
254
233
  }
255
234
  });
256
235
  }
257
- const accountingCodeValueEq = (_26 = (_25 = (_24 = params.priceSpecification.accounting) === null || _24 === void 0 ? void 0 : _24.operatingRevenue) === null || _25 === void 0 ? void 0 : _25.codeValue) === null || _26 === void 0 ? void 0 : _26.$eq;
236
+ const accountingCodeValueEq = params.priceSpecification.accounting?.operatingRevenue?.codeValue?.$eq;
258
237
  if (typeof accountingCodeValueEq === 'string') {
259
238
  matchStages.push({
260
239
  $match: {
@@ -265,7 +244,7 @@ class AggregateOfferRepo {
265
244
  }
266
245
  });
267
246
  }
268
- const accountingCodeValueIn = (_29 = (_28 = (_27 = params.priceSpecification.accounting) === null || _27 === void 0 ? void 0 : _27.operatingRevenue) === null || _28 === void 0 ? void 0 : _28.codeValue) === null || _29 === void 0 ? void 0 : _29.$in;
247
+ const accountingCodeValueIn = params.priceSpecification.accounting?.operatingRevenue?.codeValue?.$in;
269
248
  if (Array.isArray(accountingCodeValueIn)) {
270
249
  matchStages.push({
271
250
  $match: {
@@ -276,7 +255,7 @@ class AggregateOfferRepo {
276
255
  }
277
256
  });
278
257
  }
279
- const referenceQuantityValueEq = (_31 = (_30 = params.priceSpecification.referenceQuantity) === null || _30 === void 0 ? void 0 : _30.value) === null || _31 === void 0 ? void 0 : _31.$eq;
258
+ const referenceQuantityValueEq = params.priceSpecification.referenceQuantity?.value?.$eq;
280
259
  if (typeof referenceQuantityValueEq === 'number') {
281
260
  matchStages.push({
282
261
  $match: {
@@ -288,7 +267,7 @@ class AggregateOfferRepo {
288
267
  });
289
268
  }
290
269
  }
291
- const availabilityEq = (_32 = params.availability) === null || _32 === void 0 ? void 0 : _32.$eq;
270
+ const availabilityEq = params.availability?.$eq;
292
271
  if (typeof availabilityEq === 'string') {
293
272
  matchStages.push({
294
273
  $match: {
@@ -296,7 +275,7 @@ class AggregateOfferRepo {
296
275
  }
297
276
  });
298
277
  }
299
- const availableAtOrFromIdEq = (_34 = (_33 = params.availableAtOrFrom) === null || _33 === void 0 ? void 0 : _33.id) === null || _34 === void 0 ? void 0 : _34.$eq;
278
+ const availableAtOrFromIdEq = params.availableAtOrFrom?.id?.$eq;
300
279
  if (typeof availableAtOrFromIdEq === 'string') {
301
280
  matchStages.push({
302
281
  $match: {
@@ -307,7 +286,7 @@ class AggregateOfferRepo {
307
286
  }
308
287
  });
309
288
  }
310
- const availableAtOrFromIdIn = (_36 = (_35 = params.availableAtOrFrom) === null || _35 === void 0 ? void 0 : _35.id) === null || _36 === void 0 ? void 0 : _36.$in;
289
+ const availableAtOrFromIdIn = params.availableAtOrFrom?.id?.$in;
311
290
  if (Array.isArray(availableAtOrFromIdIn)) {
312
291
  matchStages.push({
313
292
  $match: {
@@ -318,7 +297,7 @@ class AggregateOfferRepo {
318
297
  }
319
298
  });
320
299
  }
321
- const addOnItemOfferedIdEq = (_39 = (_38 = (_37 = params.addOn) === null || _37 === void 0 ? void 0 : _37.itemOffered) === null || _38 === void 0 ? void 0 : _38.id) === null || _39 === void 0 ? void 0 : _39.$eq;
300
+ const addOnItemOfferedIdEq = params.addOn?.itemOffered?.id?.$eq;
322
301
  if (typeof addOnItemOfferedIdEq === 'string') {
323
302
  matchStages.push({
324
303
  $match: {
@@ -326,7 +305,7 @@ class AggregateOfferRepo {
326
305
  }
327
306
  });
328
307
  }
329
- const addOnItemOfferedIdIn = (_42 = (_41 = (_40 = params.addOn) === null || _40 === void 0 ? void 0 : _40.itemOffered) === null || _41 === void 0 ? void 0 : _41.id) === null || _42 === void 0 ? void 0 : _42.$in;
308
+ const addOnItemOfferedIdIn = params.addOn?.itemOffered?.id?.$in;
330
309
  if (Array.isArray(addOnItemOfferedIdIn)) {
331
310
  matchStages.push({
332
311
  $match: {
@@ -334,7 +313,7 @@ class AggregateOfferRepo {
334
313
  }
335
314
  });
336
315
  }
337
- const hasMerchantReturnPolicyIdEq = (_44 = (_43 = params.hasMerchantReturnPolicy) === null || _43 === void 0 ? void 0 : _43.id) === null || _44 === void 0 ? void 0 : _44.$eq;
316
+ const hasMerchantReturnPolicyIdEq = params.hasMerchantReturnPolicy?.id?.$eq;
338
317
  if (typeof hasMerchantReturnPolicyIdEq === 'string') {
339
318
  matchStages.push({
340
319
  $match: {
@@ -345,7 +324,7 @@ class AggregateOfferRepo {
345
324
  }
346
325
  });
347
326
  }
348
- const acceptedPaymentMethodIdentifierIn = (_46 = (_45 = params.acceptedPaymentMethod) === null || _45 === void 0 ? void 0 : _45.identifier) === null || _46 === void 0 ? void 0 : _46.$in;
327
+ const acceptedPaymentMethodIdentifierIn = params.acceptedPaymentMethod?.identifier?.$in;
349
328
  if (Array.isArray(acceptedPaymentMethodIdentifierIn)) {
350
329
  matchStages.push({
351
330
  $match: {
@@ -356,7 +335,7 @@ class AggregateOfferRepo {
356
335
  }
357
336
  });
358
337
  }
359
- const additionalPropertyAll = (_47 = params.additionalProperty) === null || _47 === void 0 ? void 0 : _47.$all;
338
+ const additionalPropertyAll = params.additionalProperty?.$all;
360
339
  if (Array.isArray(additionalPropertyAll)) {
361
340
  matchStages.push({
362
341
  $match: {
@@ -367,7 +346,7 @@ class AggregateOfferRepo {
367
346
  }
368
347
  });
369
348
  }
370
- const additionalPropertyElemMatch = (_48 = params.additionalProperty) === null || _48 === void 0 ? void 0 : _48.$elemMatch;
349
+ const additionalPropertyElemMatch = params.additionalProperty?.$elemMatch;
371
350
  if (additionalPropertyElemMatch !== undefined && additionalPropertyElemMatch !== null) {
372
351
  matchStages.push({
373
352
  $match: {
@@ -397,7 +376,7 @@ class AggregateOfferRepo {
397
376
  });
398
377
  }
399
378
  // add advanceBookingRequirement.id.$eq(2025-04-08~)
400
- const advanceBookingRequirementIdEq = (_50 = (_49 = params.advanceBookingRequirement) === null || _49 === void 0 ? void 0 : _49.id) === null || _50 === void 0 ? void 0 : _50.$eq;
379
+ const advanceBookingRequirementIdEq = params.advanceBookingRequirement?.id?.$eq;
401
380
  if (typeof advanceBookingRequirementIdEq === 'string') {
402
381
  matchStages.push({ $match: { 'offers.advanceBookingRequirement.id': { $exists: true, $eq: advanceBookingRequirementIdEq } } });
403
382
  }
@@ -438,105 +417,100 @@ class AggregateOfferRepo {
438
417
  else if (negativeProjectionFields.length > 0) {
439
418
  negativeProjectionFields.forEach((field) => {
440
419
  if (typeof projectStage[field] === 'string') {
441
- // tslint:disable-next-line:no-dynamic-delete
442
420
  delete projectStage[field];
443
421
  }
444
422
  });
445
423
  }
446
424
  return projectStage;
447
425
  }
448
- search(params, projection) {
449
- return __awaiter(this, void 0, void 0, function* () {
450
- var _a, _b;
451
- const matchStages = AggregateOfferRepo.CREATE_MATCH_STAGE(params);
452
- const projectStage = AggregateOfferRepo.CREATE_AGGREGATE_OFFERS_PROJECTION(Object.assign({}, projection));
453
- const sortByPrice = (_a = params.sort) === null || _a === void 0 ? void 0 : _a['priceSpecification.price'];
454
- const sortByIdentifier = (_b = params.sort) === null || _b === void 0 ? void 0 : _b.identifier;
455
- const aggregate = this.aggregateOfferModel.aggregate([
456
- ...matchStages,
457
- ...(typeof sortByPrice === 'number' || typeof sortByIdentifier === 'number')
458
- ? [
459
- {
460
- $sort: Object.assign(Object.assign({}, (typeof sortByPrice === 'number')
426
+ async search(params, projection) {
427
+ const matchStages = AggregateOfferRepo.CREATE_MATCH_STAGE(params);
428
+ const projectStage = AggregateOfferRepo.CREATE_AGGREGATE_OFFERS_PROJECTION({ ...projection });
429
+ const sortByPrice = params.sort?.['priceSpecification.price'];
430
+ const sortByIdentifier = params.sort?.identifier;
431
+ const aggregate = this.aggregateOfferModel.aggregate([
432
+ ...matchStages,
433
+ ...(typeof sortByPrice === 'number' || typeof sortByIdentifier === 'number')
434
+ ? [
435
+ {
436
+ $sort: {
437
+ ...(typeof sortByPrice === 'number')
461
438
  ? { 'offers.priceSpecification.price': sortByPrice }
462
- : undefined), (typeof sortByIdentifier === 'number')
439
+ : undefined,
440
+ ...(typeof sortByIdentifier === 'number')
463
441
  ? { 'offers.identifier': sortByIdentifier }
464
- : undefined)
442
+ : undefined
465
443
  }
466
- ]
467
- : [],
468
- { $project: projectStage }
469
- ]);
470
- // tslint:disable-next-line:no-single-line-block-comment
471
- /* istanbul ignore else */
472
- if (typeof params.limit === 'number' && params.limit > 0) {
473
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
474
- aggregate.limit(params.limit * page)
475
- .skip(params.limit * (page - 1));
476
- }
477
- return aggregate.exec();
478
- });
479
- }
480
- pushIncludedInDataCatalog(params) {
481
- return __awaiter(this, void 0, void 0, function* () {
482
- if (!Array.isArray(params.id.$in) || params.id.$in.length === 0) {
483
- return;
484
- }
485
- const pushIncludedInDataCatalogIds = params.$push.includedInDataCatalog.$each.map((element) => element.id);
486
- if (pushIncludedInDataCatalogIds.length === 0) {
487
- return;
488
- }
489
- const newIncludedInDataCatalogs = pushIncludedInDataCatalogIds.map((catalogId) => {
490
- return {
491
- id: catalogId,
492
- typeOf: 'OfferCatalog'
493
- };
494
- });
495
- const result = yield this.aggregateOfferModel.updateMany({
496
- 'project.id': { $eq: params.project.id },
497
- _id: { $in: params.id.$in },
498
- // includedInDataCatalogのユニークネスを保証する
499
- 'includedInDataCatalog.id': { $nin: pushIncludedInDataCatalogIds }
500
- },
501
- // { $addToSet: { includedInDataCatalog: { $each: newIncludedInDataCatalogs } } }
502
- {
503
- $push: {
504
- includedInDataCatalog: {
505
- $each: newIncludedInDataCatalogs
506
- // $slice: params.$push.includedInDataCatalog.$slice
507
444
  }
508
- }
509
- })
510
- .exec();
511
- debug('result', result);
445
+ ]
446
+ : [],
447
+ { $project: projectStage }
448
+ ]);
449
+ /* istanbul ignore else */
450
+ if (typeof params.limit === 'number' && params.limit > 0) {
451
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
452
+ aggregate.limit(params.limit * page)
453
+ .skip(params.limit * (page - 1));
454
+ }
455
+ return aggregate.exec();
456
+ }
457
+ async pushIncludedInDataCatalog(params) {
458
+ if (!Array.isArray(params.id.$in) || params.id.$in.length === 0) {
459
+ return;
460
+ }
461
+ const pushIncludedInDataCatalogIds = params.$push.includedInDataCatalog.$each.map((element) => element.id);
462
+ if (pushIncludedInDataCatalogIds.length === 0) {
463
+ return;
464
+ }
465
+ const newIncludedInDataCatalogs = pushIncludedInDataCatalogIds.map((catalogId) => {
466
+ return {
467
+ id: catalogId,
468
+ typeOf: 'OfferCatalog'
469
+ };
512
470
  });
471
+ const result = await this.aggregateOfferModel.updateMany({
472
+ 'project.id': { $eq: params.project.id },
473
+ _id: { $in: params.id.$in },
474
+ // includedInDataCatalogのユニークネスを保証する
475
+ 'includedInDataCatalog.id': { $nin: pushIncludedInDataCatalogIds }
476
+ },
477
+ // { $addToSet: { includedInDataCatalog: { $each: newIncludedInDataCatalogs } } }
478
+ {
479
+ $push: {
480
+ includedInDataCatalog: {
481
+ $each: newIncludedInDataCatalogs
482
+ // $slice: params.$push.includedInDataCatalog.$slice
483
+ }
484
+ }
485
+ })
486
+ .exec();
487
+ debug('result', result);
513
488
  }
514
489
  /**
515
490
  * 記載カタログからカタログを除外する
516
491
  */
517
- pullIncludedInDataCatalog(params) {
518
- return __awaiter(this, void 0, void 0, function* () {
519
- var _a;
520
- const idNin = (_a = params.id) === null || _a === void 0 ? void 0 : _a.$nin;
521
- const pullingCatalogId = params.$pull.includedInDataCatalog.$elemMatch.id.$eq;
522
- yield this.aggregateOfferModel.updateMany(Object.assign({ 'project.id': { $eq: params.project.id }, 'includedInDataCatalog.id': { $exists: true, $eq: pullingCatalogId } }, (Array.isArray(idNin)) ? { _id: { $nin: idNin } } : undefined), {
523
- $pull: {
524
- includedInDataCatalog: {
525
- id: { $eq: pullingCatalogId }
526
- }
492
+ async pullIncludedInDataCatalog(params) {
493
+ const idNin = params.id?.$nin;
494
+ const pullingCatalogId = params.$pull.includedInDataCatalog.$elemMatch.id.$eq;
495
+ await this.aggregateOfferModel.updateMany({
496
+ 'project.id': { $eq: params.project.id },
497
+ 'includedInDataCatalog.id': { $exists: true, $eq: pullingCatalogId },
498
+ ...(Array.isArray(idNin)) ? { _id: { $nin: idNin } } : undefined
499
+ }, {
500
+ $pull: {
501
+ includedInDataCatalog: {
502
+ id: { $eq: pullingCatalogId }
527
503
  }
528
- })
529
- .exec();
530
- });
504
+ }
505
+ })
506
+ .exec();
531
507
  }
532
- deleteById(params) {
533
- return __awaiter(this, void 0, void 0, function* () {
534
- yield this.aggregateOfferModel.findOneAndDelete({
535
- _id: { $eq: params.id },
536
- 'project.id': { $eq: params.project.id }
537
- }, { projection: { _id: 1 } })
538
- .exec();
539
- });
508
+ async deleteById(params) {
509
+ await this.aggregateOfferModel.findOneAndDelete({
510
+ _id: { $eq: params.id },
511
+ 'project.id': { $eq: params.project.id }
512
+ }, { projection: { _id: 1 } })
513
+ .exec();
540
514
  }
541
515
  // 単価オファー最適化作業における一時的な処理
542
516
  // public async optimizeOffers() {
@@ -562,322 +536,310 @@ class AggregateOfferRepo {
562
536
  .sort({ 'offers.identifier': factory.sortType.Ascending })
563
537
  .cursor();
564
538
  }
565
- unsetUnnecessaryFields(params) {
566
- return __awaiter(this, void 0, void 0, function* () {
567
- return this.aggregateOfferModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
568
- .exec();
569
- });
539
+ async unsetUnnecessaryFields(params) {
540
+ return this.aggregateOfferModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
541
+ .exec();
570
542
  }
571
- save(params) {
572
- return __awaiter(this, void 0, void 0, function* () {
573
- var _a;
574
- let doc;
575
- let aggregateOfferId;
576
- // const { $unset, ...paramsWithoutUnset } = params;
577
- const paramsWithoutUnset = __rest(params, []);
578
- // let savedUnitPriceOffer: factory.unitPriceOffer.IUnitPriceOffer;
579
- if (typeof params.id !== 'string' || params.id.length === 0) {
580
- const uniqid = yield Promise.resolve().then(() => require('uniqid'));
581
- const newId = uniqid();
582
- aggregateOfferId = newId;
583
- // サブオファー最適化(2023-12-22~)
584
- // savedUnitPriceOffer = { ...paramsWithoutUnset, id };
585
- const { id, project } = paramsWithoutUnset, savedUnitPriceOffer = __rest(paramsWithoutUnset, ["id", "project"]);
586
- const aggregateOffer = {
587
- typeOf: factory.offerType.AggregateOffer,
588
- project: params.project,
589
- offers: [savedUnitPriceOffer]
590
- };
591
- doc = yield this.aggregateOfferModel.create(Object.assign(Object.assign({}, aggregateOffer), { _id: newId }));
543
+ async save(params) {
544
+ let doc;
545
+ let aggregateOfferId;
546
+ // const { $unset, ...paramsWithoutUnset } = params;
547
+ const { ...paramsWithoutUnset } = params;
548
+ // let savedUnitPriceOffer: factory.unitPriceOffer.IUnitPriceOffer;
549
+ if (typeof params.id !== 'string' || params.id.length === 0) {
550
+ const uniqid = await Promise.resolve().then(() => require('uniqid'));
551
+ const newId = uniqid();
552
+ aggregateOfferId = newId;
553
+ // サブオファー最適化(2023-12-22~)
554
+ // savedUnitPriceOffer = { ...paramsWithoutUnset, id };
555
+ const { id, project, ...savedUnitPriceOffer } = paramsWithoutUnset;
556
+ const aggregateOffer = {
557
+ typeOf: factory.offerType.AggregateOffer,
558
+ project: params.project,
559
+ offers: [savedUnitPriceOffer]
560
+ };
561
+ doc = await this.aggregateOfferModel.create({
562
+ ...aggregateOffer,
563
+ _id: newId
564
+ });
565
+ }
566
+ else {
567
+ aggregateOfferId = params.id;
568
+ // const unitPriceOffers = <Pick<factory.unitPriceOffer.IUnitPriceOffer, 'id' | 'identifier' | 'project' | 'typeOf'>[]>
569
+ // await this.search(
570
+ // {
571
+ // limit: 1,
572
+ // page: 1,
573
+ // project: { id: { $eq: params.project.id } },
574
+ // id: { $eq: params.id }
575
+ // },
576
+ // { identifier: 1, project: 1, typeOf: 1 }
577
+ // );
578
+ // const originalUnitPriceOffer = unitPriceOffers.shift();
579
+ const aggregateOffers = await this.search({
580
+ limit: 1,
581
+ page: 1,
582
+ project: { id: { $eq: params.project.id } },
583
+ id: { $eq: params.id }
584
+ });
585
+ const originalUnitPriceOffer = aggregateOffers.shift()?.offers
586
+ .shift();
587
+ if (originalUnitPriceOffer === undefined) {
588
+ throw new factory.errors.NotFound(factory.offerType.Offer);
592
589
  }
593
- else {
594
- aggregateOfferId = params.id;
595
- // const unitPriceOffers = <Pick<factory.unitPriceOffer.IUnitPriceOffer, 'id' | 'identifier' | 'project' | 'typeOf'>[]>
596
- // await this.search(
597
- // {
598
- // limit: 1,
599
- // page: 1,
600
- // project: { id: { $eq: params.project.id } },
601
- // id: { $eq: params.id }
602
- // },
603
- // { identifier: 1, project: 1, typeOf: 1 }
604
- // );
605
- // const originalUnitPriceOffer = unitPriceOffers.shift();
606
- const aggregateOffers = yield this.search({
607
- limit: 1,
608
- page: 1,
609
- project: { id: { $eq: params.project.id } },
610
- id: { $eq: params.id }
611
- });
612
- const originalUnitPriceOffer = (_a = aggregateOffers.shift()) === null || _a === void 0 ? void 0 : _a.offers.shift();
613
- if (originalUnitPriceOffer === undefined) {
614
- throw new factory.errors.NotFound(factory.offerType.Offer);
590
+ // 上書き禁止属性を除外
591
+ const { id, identifier, project, typeOf, ...updateFields } = paramsWithoutUnset;
592
+ // サブオファー最適化(2023-12-22~)
593
+ const subOffer = {
594
+ ...updateFields,
595
+ // id: originalUnitPriceOffer.id,
596
+ identifier: originalUnitPriceOffer.identifier,
597
+ // project: originalUnitPriceOffer.project,
598
+ typeOf: originalUnitPriceOffer.typeOf
599
+ };
600
+ doc = await this.aggregateOfferModel.findOneAndUpdate(
601
+ // { 'offers.id': params.id },
602
+ { _id: params.id }, // _idに変更(2023-12-22~)
603
+ {
604
+ $set: {
605
+ // 'offers.$[offer]': savedUnitPriceOffer
606
+ 'offers.0': subOffer // _idに変更(2023-12-22~)
615
607
  }
616
- // 上書き禁止属性を除外
617
- const { id, identifier, project, typeOf } = paramsWithoutUnset, updateFields = __rest(paramsWithoutUnset, ["id", "identifier", "project", "typeOf"]);
618
- // サブオファー最適化(2023-12-22~)
619
- const subOffer = Object.assign(Object.assign({}, updateFields), {
620
- // id: originalUnitPriceOffer.id,
621
- identifier: originalUnitPriceOffer.identifier,
622
- // project: originalUnitPriceOffer.project,
623
- typeOf: originalUnitPriceOffer.typeOf });
624
- doc = yield this.aggregateOfferModel.findOneAndUpdate(
625
- // { 'offers.id': params.id },
626
- { _id: params.id }, // _idに変更(2023-12-22~)
627
- {
628
- $set: {
629
- // 'offers.$[offer]': savedUnitPriceOffer
630
- 'offers.0': subOffer // _idに変更(2023-12-22~)
631
- }
632
- }, {
633
- upsert: false,
634
- new: true
635
- // _idに変更(2023-12-22~)
636
- // arrayFilters: [
637
- // { 'offer.id': { $eq: params.id } }
638
- // ]
639
- })
640
- .exec();
641
- }
642
- if (doc === null) {
643
- throw new factory.errors.NotFound(this.aggregateOfferModel.modelName);
644
- }
645
- return { id: aggregateOfferId };
646
- });
608
+ }, {
609
+ upsert: false,
610
+ new: true
611
+ // _idに変更(2023-12-22~)
612
+ // arrayFilters: [
613
+ // { 'offer.id': { $eq: params.id } }
614
+ // ]
615
+ })
616
+ .exec();
617
+ }
618
+ if (doc === null) {
619
+ throw new factory.errors.NotFound(this.aggregateOfferModel.modelName);
620
+ }
621
+ return { id: aggregateOfferId };
647
622
  }
648
623
  /**
649
624
  * コードをキーにして冪等置換(2023-12-13~)
650
625
  */
651
- upsertByIdentifier(params, options) {
652
- return __awaiter(this, void 0, void 0, function* () {
653
- const { productType } = options;
654
- const uniqid = yield Promise.resolve().then(() => require('uniqid'));
655
- const insertBulkWriteOps = [];
656
- // const updateBulkWriteOps: AnyBulkWriteOperation<factory.aggregateOffer.IAggregateOffer>[] = [];
657
- const queryFilters = [];
658
- if (Array.isArray(params)) {
659
- params.forEach((p) => {
660
- var _a;
661
- // 指定されたproductTypeを強制する
662
- if (((_a = p.itemOffered) === null || _a === void 0 ? void 0 : _a.typeOf) !== productType) {
663
- throw new factory.errors.Argument('itemOffered.typeOf', `not matched with productType: ${productType}`);
664
- }
665
- // リソースのユニークネスを保証するfilter
666
- const filter = {
667
- 'project.id': { $eq: p.project.id },
668
- 'offers.identifier': { $exists: true, $eq: p.identifier },
669
- 'offers.itemOffered.typeOf': { $eq: productType } // プロダクトタイプを変更させないためにフィルター追加(2026-01-30~)
670
- };
671
- queryFilters.push({
672
- 'project.id': { $eq: p.project.id },
673
- 'offers.identifier': { $exists: true, $eq: p.identifier },
674
- 'offers.itemOffered.typeOf': { $eq: productType } // プロダクトタイプを変更させないためにフィルター追加(2026-01-30~)
675
- });
676
- const newOfferId = uniqid(); // setOnInsert時のみに利用する新ID
677
- // サブオファー最適化(2023-12-22~)
678
- const { project } = p, subOffer = __rest(p, ["project"]);
679
- const aggregateOffer = {
680
- project: p.project,
681
- typeOf: factory.offerType.AggregateOffer,
682
- offers: [subOffer]
683
- };
684
- const setOnInsert = {
685
- project: aggregateOffer.project,
686
- typeOf: aggregateOffer.typeOf,
687
- _id: newOfferId
688
- };
689
- const updateFilter = {
690
- $setOnInsert: setOnInsert,
691
- $set: { offers: aggregateOffer.offers }
692
- };
693
- const updateOneOnInsert = {
694
- filter,
695
- update: updateFilter,
696
- upsert: true
697
- };
698
- insertBulkWriteOps.push({ updateOne: updateOneOnInsert });
626
+ async upsertByIdentifier(params, options) {
627
+ const { productType } = options;
628
+ const uniqid = await Promise.resolve().then(() => require('uniqid'));
629
+ const insertBulkWriteOps = [];
630
+ // const updateBulkWriteOps: AnyBulkWriteOperation<factory.aggregateOffer.IAggregateOffer>[] = [];
631
+ const queryFilters = [];
632
+ if (Array.isArray(params)) {
633
+ params.forEach((p) => {
634
+ // 指定されたproductTypeを強制する
635
+ if (p.itemOffered?.typeOf !== productType) {
636
+ throw new factory.errors.Argument('itemOffered.typeOf', `not matched with productType: ${productType}`);
637
+ }
638
+ // リソースのユニークネスを保証するfilter
639
+ const filter = {
640
+ 'project.id': { $eq: p.project.id },
641
+ 'offers.identifier': { $exists: true, $eq: p.identifier },
642
+ 'offers.itemOffered.typeOf': { $eq: productType } // プロダクトタイプを変更させないためにフィルター追加(2026-01-30~)
643
+ };
644
+ queryFilters.push({
645
+ 'project.id': { $eq: p.project.id },
646
+ 'offers.identifier': { $exists: true, $eq: p.identifier },
647
+ 'offers.itemOffered.typeOf': { $eq: productType } // プロダクトタイプを変更させないためにフィルター追加(2026-01-30~)
699
648
  });
700
- }
701
- if (insertBulkWriteOps.length > 0) {
702
- const bulkWriteResult = yield this.aggregateOfferModel.bulkWrite(insertBulkWriteOps, { ordered: false });
703
- // modifiedの場合upsertedIdsに含まれないので、idを検索する
704
- const modifiedOffers = yield this.aggregateOfferModel.find({ $or: queryFilters },
705
- // { _id: 1, 'offers.identifier': 1 }
706
- { _id: 0, id: '$_id' })
707
- .lean() // lean(2024-09-26~)
708
- .exec();
709
- return { bulkWriteResult, modifiedOffers };
710
- }
711
- });
649
+ const newOfferId = uniqid(); // setOnInsert時のみに利用する新ID
650
+ // サブオファー最適化(2023-12-22~)
651
+ const { project, ...subOffer } = p;
652
+ const aggregateOffer = {
653
+ project: p.project,
654
+ typeOf: factory.offerType.AggregateOffer,
655
+ offers: [subOffer]
656
+ };
657
+ const setOnInsert = {
658
+ project: aggregateOffer.project,
659
+ typeOf: aggregateOffer.typeOf,
660
+ _id: newOfferId
661
+ };
662
+ const updateFilter = {
663
+ $setOnInsert: setOnInsert,
664
+ $set: { offers: aggregateOffer.offers }
665
+ };
666
+ const updateOneOnInsert = {
667
+ filter,
668
+ update: updateFilter,
669
+ upsert: true
670
+ };
671
+ insertBulkWriteOps.push({ updateOne: updateOneOnInsert });
672
+ });
673
+ }
674
+ if (insertBulkWriteOps.length > 0) {
675
+ const bulkWriteResult = await this.aggregateOfferModel.bulkWrite(insertBulkWriteOps, { ordered: false });
676
+ // modifiedの場合upsertedIdsに含まれないので、idを検索する
677
+ const modifiedOffers = await this.aggregateOfferModel.find({ $or: queryFilters },
678
+ // { _id: 1, 'offers.identifier': 1 }
679
+ { _id: 0, id: '$_id' })
680
+ .lean() // lean(2024-09-26~)
681
+ .exec();
682
+ return { bulkWriteResult, modifiedOffers };
683
+ }
712
684
  }
713
685
  /**
714
686
  * sskts専用オファー保管
715
687
  */
716
- // tslint:disable-next-line:max-func-body-length
717
- saveManyByIdentifier4sskts(params) {
718
- return __awaiter(this, void 0, void 0, function* () {
719
- const uniqid = yield Promise.resolve().then(() => require('uniqid'));
720
- const insertBulkWriteOps = [];
721
- // const updateBulkWriteOps: AnyBulkWriteOperation[] = [];
722
- if (Array.isArray(params)) {
723
- params.forEach((p) => {
724
- const newOfferId = uniqid();
725
- // サブオファー最適化(2023-12-22~)
726
- // const unitPriceOffer: factory.aggregateOffer.ISubOffer = { ...p.attributes, id: newOfferId };
727
- const subOffer = p.attributes;
728
- const aggregateOffer = {
729
- project: { id: p.project.id, typeOf: factory.organizationType.Project },
730
- typeOf: factory.offerType.AggregateOffer,
731
- offers: [subOffer]
732
- };
733
- insertBulkWriteOps.push({
734
- updateOne: {
735
- filter: {
736
- 'project.id': { $eq: p.project.id },
737
- 'offers.identifier': { $exists: true, $eq: p.attributes.identifier }
738
- },
739
- update: {
740
- $setOnInsert: {
741
- // ...aggregateOffer,
742
- project: aggregateOffer.project,
743
- typeOf: aggregateOffer.typeOf,
744
- _id: newOfferId
745
- },
746
- $set: { offers: aggregateOffer.offers } // サブオファー最適化(2023-12-22~)
688
+ async saveManyByIdentifier4sskts(params) {
689
+ const uniqid = await Promise.resolve().then(() => require('uniqid'));
690
+ const insertBulkWriteOps = [];
691
+ // const updateBulkWriteOps: AnyBulkWriteOperation[] = [];
692
+ if (Array.isArray(params)) {
693
+ params.forEach((p) => {
694
+ const newOfferId = uniqid();
695
+ // サブオファー最適化(2023-12-22~)
696
+ // const unitPriceOffer: factory.aggregateOffer.ISubOffer = { ...p.attributes, id: newOfferId };
697
+ const subOffer = p.attributes;
698
+ const aggregateOffer = {
699
+ project: { id: p.project.id, typeOf: factory.organizationType.Project },
700
+ typeOf: factory.offerType.AggregateOffer,
701
+ offers: [subOffer]
702
+ };
703
+ insertBulkWriteOps.push({
704
+ updateOne: {
705
+ filter: {
706
+ 'project.id': { $eq: p.project.id },
707
+ 'offers.identifier': { $exists: true, $eq: p.attributes.identifier }
708
+ },
709
+ update: {
710
+ $setOnInsert: {
711
+ // ...aggregateOffer,
712
+ project: aggregateOffer.project,
713
+ typeOf: aggregateOffer.typeOf,
714
+ _id: newOfferId
747
715
  },
748
- upsert: true
749
- }
750
- });
751
- // updateBulkWriteOps.push({
752
- // updateOne: {
753
- // filter: {
754
- // 'project.id': { $eq: aggregateOffer.project.id },
755
- // 'offers.identifier': { $exists: true, $eq: subOffer.identifier }
756
- // },
757
- // update: {
758
- // // 特定の属性のみ更新する(IDを上書きできないので)
759
- // $set: {
760
- // 'offers.0.name': subOffer.name,
761
- // 'offers.0.description': subOffer.description,
762
- // 'offers.0.alternateName': subOffer.alternateName,
763
- // 'offers.0.priceSpecification': subOffer.priceSpecification,
764
- // 'offers.0.additionalProperty': subOffer.additionalProperty,
765
- // ...(Array.isArray(subOffer.eligibleMembershipType))
766
- // ? { 'offers.0.eligibleMembershipType': subOffer.eligibleMembershipType }
767
- // : undefined,
768
- // ...(Array.isArray(subOffer.eligibleMonetaryAmount))
769
- // ? { 'offers.0.eligibleMonetaryAmount': subOffer.eligibleMonetaryAmount }
770
- // : undefined
771
- // },
772
- // },
773
- // upsert: false
774
- // }
775
- // });
716
+ $set: { offers: aggregateOffer.offers } // サブオファー最適化(2023-12-22~)
717
+ },
718
+ upsert: true
719
+ }
776
720
  });
777
- }
778
- if (insertBulkWriteOps.length > 0) {
779
- yield this.aggregateOfferModel.bulkWrite(insertBulkWriteOps, { ordered: false });
780
- // await this.aggregateOfferModel.bulkWrite(updateBulkWriteOps, { ordered: false });
781
- }
782
- });
721
+ // updateBulkWriteOps.push({
722
+ // updateOne: {
723
+ // filter: {
724
+ // 'project.id': { $eq: aggregateOffer.project.id },
725
+ // 'offers.identifier': { $exists: true, $eq: subOffer.identifier }
726
+ // },
727
+ // update: {
728
+ // // 特定の属性のみ更新する(IDを上書きできないので)
729
+ // $set: {
730
+ // 'offers.0.name': subOffer.name,
731
+ // 'offers.0.description': subOffer.description,
732
+ // 'offers.0.alternateName': subOffer.alternateName,
733
+ // 'offers.0.priceSpecification': subOffer.priceSpecification,
734
+ // 'offers.0.additionalProperty': subOffer.additionalProperty,
735
+ // ...(Array.isArray(subOffer.eligibleMembershipType))
736
+ // ? { 'offers.0.eligibleMembershipType': subOffer.eligibleMembershipType }
737
+ // : undefined,
738
+ // ...(Array.isArray(subOffer.eligibleMonetaryAmount))
739
+ // ? { 'offers.0.eligibleMonetaryAmount': subOffer.eligibleMonetaryAmount }
740
+ // : undefined
741
+ // },
742
+ // },
743
+ // upsert: false
744
+ // }
745
+ // });
746
+ });
747
+ }
748
+ if (insertBulkWriteOps.length > 0) {
749
+ await this.aggregateOfferModel.bulkWrite(insertBulkWriteOps, { ordered: false });
750
+ // await this.aggregateOfferModel.bulkWrite(updateBulkWriteOps, { ordered: false });
751
+ }
783
752
  }
784
753
  /**
785
754
  * プロダクトIDからアドオンを除外する
786
755
  */
787
- pullAddOns(params) {
788
- return __awaiter(this, void 0, void 0, function* () {
789
- if (params.addOn.itemOffered.id.$in.length === 0) {
790
- return;
791
- }
792
- const conditions = {
793
- 'project.id': { $eq: params.project.id },
794
- 'offers.addOn.itemOffered.id': { $exists: true, $in: params.addOn.itemOffered.id.$in }
795
- };
796
- // const updatingOffers = <Pick<factory.unitPriceOffer.IUnitPriceOffer, 'id' | 'identifier'>[]>await this.search(
797
- // {
798
- // project: { id: { $eq: params.project.id } },
799
- // addOn: { itemOffered: { id: { $in: params.addOn.itemOffered.id.$in } } }
800
- // },
801
- // { identifier: 1 }
802
- // );
803
- return this.aggregateOfferModel.updateMany(conditions, {
804
- $pull: {
805
- 'offers.$[offer].addOn': {
806
- 'itemOffered.id': { $in: params.addOn.itemOffered.id.$in }
807
- }
756
+ async pullAddOns(params) {
757
+ if (params.addOn.itemOffered.id.$in.length === 0) {
758
+ return;
759
+ }
760
+ const conditions = {
761
+ 'project.id': { $eq: params.project.id },
762
+ 'offers.addOn.itemOffered.id': { $exists: true, $in: params.addOn.itemOffered.id.$in }
763
+ };
764
+ // const updatingOffers = <Pick<factory.unitPriceOffer.IUnitPriceOffer, 'id' | 'identifier'>[]>await this.search(
765
+ // {
766
+ // project: { id: { $eq: params.project.id } },
767
+ // addOn: { itemOffered: { id: { $in: params.addOn.itemOffered.id.$in } } }
768
+ // },
769
+ // { identifier: 1 }
770
+ // );
771
+ return this.aggregateOfferModel.updateMany(conditions, {
772
+ $pull: {
773
+ 'offers.$[offer].addOn': {
774
+ 'itemOffered.id': { $in: params.addOn.itemOffered.id.$in }
808
775
  }
809
- }, {
810
- arrayFilters: [
811
- { 'offer.addOn.itemOffered.id': { $exists: true, $in: params.addOn.itemOffered.id.$in } }
812
- ]
813
- })
814
- .exec();
815
- // if (updatingOffers.length > 0) {
816
- // // no op
817
- // }
818
- // return result;
819
- });
776
+ }
777
+ }, {
778
+ arrayFilters: [
779
+ { 'offer.addOn.itemOffered.id': { $exists: true, $in: params.addOn.itemOffered.id.$in } }
780
+ ]
781
+ })
782
+ .exec();
783
+ // if (updatingOffers.length > 0) {
784
+ // // no op
785
+ // }
786
+ // return result;
820
787
  }
821
- countIncludedInDataCatalog(params) {
822
- return __awaiter(this, void 0, void 0, function* () {
823
- const aggregate = this.aggregateOfferModel.aggregate([
824
- {
825
- $match: {
826
- _id: { $eq: params.id.$eq }
827
- }
828
- },
829
- {
830
- $project: {
831
- _id: 0,
832
- includedInDataCatalogCount: {
833
- $cond: {
834
- if: { $isArray: '$includedInDataCatalog' },
835
- then: { $size: '$includedInDataCatalog' },
836
- else: 0
837
- }
788
+ async countIncludedInDataCatalog(params) {
789
+ const aggregate = this.aggregateOfferModel.aggregate([
790
+ {
791
+ $match: {
792
+ _id: { $eq: params.id.$eq }
793
+ }
794
+ },
795
+ {
796
+ $project: {
797
+ _id: 0,
798
+ includedInDataCatalogCount: {
799
+ $cond: {
800
+ if: { $isArray: '$includedInDataCatalog' },
801
+ then: { $size: '$includedInDataCatalog' },
802
+ else: 0
838
803
  }
839
804
  }
840
805
  }
841
- ]);
842
- return aggregate.exec();
843
- });
806
+ }
807
+ ]);
808
+ return aggregate.exec();
844
809
  }
845
- maxIncludedInDataCatalogCount() {
846
- return __awaiter(this, void 0, void 0, function* () {
847
- const aggregate = this.aggregateOfferModel.aggregate([
848
- // {
849
- // $match: {
850
- // _id: { $eq: params.id.$eq }
851
- // }
852
- // },
853
- {
854
- $project: {
855
- _id: 0,
856
- includedInDataCatalogCount: {
857
- $cond: {
858
- if: { $isArray: '$includedInDataCatalog' },
859
- then: { $size: '$includedInDataCatalog' },
860
- else: 0
861
- }
810
+ async maxIncludedInDataCatalogCount() {
811
+ const aggregate = this.aggregateOfferModel.aggregate([
812
+ // {
813
+ // $match: {
814
+ // _id: { $eq: params.id.$eq }
815
+ // }
816
+ // },
817
+ {
818
+ $project: {
819
+ _id: 0,
820
+ includedInDataCatalogCount: {
821
+ $cond: {
822
+ if: { $isArray: '$includedInDataCatalog' },
823
+ then: { $size: '$includedInDataCatalog' },
824
+ else: 0
862
825
  }
863
826
  }
864
- },
865
- {
866
- $group: {
867
- // tslint:disable-next-line:no-null-keyword
868
- _id: null,
869
- maxCount: { $max: '$includedInDataCatalogCount' }
870
- }
871
- },
872
- {
873
- $project: {
874
- _id: 0,
875
- maxCount: '$maxCount'
876
- }
877
827
  }
878
- ]);
879
- return aggregate.exec();
880
- });
828
+ },
829
+ {
830
+ $group: {
831
+ _id: null,
832
+ maxCount: { $max: '$includedInDataCatalogCount' }
833
+ }
834
+ },
835
+ {
836
+ $project: {
837
+ _id: 0,
838
+ maxCount: '$maxCount'
839
+ }
840
+ }
841
+ ]);
842
+ return aggregate.exec();
881
843
  }
882
844
  }
883
845
  exports.AggregateOfferRepo = AggregateOfferRepo;