@chevre/domain 23.2.0-alpha.60 → 23.2.0-alpha.62

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 (513) 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 -54
  7. package/lib/chevre/factory/event.js +69 -42
  8. package/lib/chevre/factory/transactionNumber.js +3 -1
  9. package/lib/chevre/index.js +15 -30
  10. package/lib/chevre/repo/acceptedOffer.js +178 -197
  11. package/lib/chevre/repo/acceptedPaymentMethod.js +131 -143
  12. package/lib/chevre/repo/account.js +196 -223
  13. package/lib/chevre/repo/accountTitle.js +9 -21
  14. package/lib/chevre/repo/accountTransaction.js +189 -189
  15. package/lib/chevre/repo/accountingReport.js +88 -107
  16. package/lib/chevre/repo/action.js +853 -880
  17. package/lib/chevre/repo/additionalProperty.js +65 -91
  18. package/lib/chevre/repo/advanceBookingRequirement.js +69 -90
  19. package/lib/chevre/repo/aggregateOffer.js +394 -427
  20. package/lib/chevre/repo/aggregateOrder.js +50 -62
  21. package/lib/chevre/repo/aggregateReservation.js +76 -89
  22. package/lib/chevre/repo/aggregation.js +42 -63
  23. package/lib/chevre/repo/assetTransaction.js +696 -716
  24. package/lib/chevre/repo/authorization.js +115 -127
  25. package/lib/chevre/repo/categoryCode.js +115 -143
  26. package/lib/chevre/repo/comment.js +74 -82
  27. package/lib/chevre/repo/concurrentLock.js +17 -29
  28. package/lib/chevre/repo/confirmationNumber.js +21 -33
  29. package/lib/chevre/repo/creativeWork.js +154 -176
  30. package/lib/chevre/repo/credentials.js +40 -51
  31. package/lib/chevre/repo/customer.js +65 -88
  32. package/lib/chevre/repo/customerType.js +52 -61
  33. package/lib/chevre/repo/emailMessage.js +52 -80
  34. package/lib/chevre/repo/event.d.ts +0 -15
  35. package/lib/chevre/repo/event.js +720 -744
  36. package/lib/chevre/repo/eventOffer.js +122 -125
  37. package/lib/chevre/repo/eventSellerMakesOffer.js +64 -76
  38. package/lib/chevre/repo/eventSeries.d.ts +1 -7
  39. package/lib/chevre/repo/eventSeries.js +258 -277
  40. package/lib/chevre/repo/identity.js +94 -106
  41. package/lib/chevre/repo/identityProvider.js +72 -95
  42. package/lib/chevre/repo/issuer.js +102 -135
  43. package/lib/chevre/repo/member.js +238 -258
  44. package/lib/chevre/repo/memberProgram.js +157 -177
  45. package/lib/chevre/repo/merchantReturnPolicy.js +62 -93
  46. package/lib/chevre/repo/message.js +122 -135
  47. package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.js +1 -1
  48. package/lib/chevre/repo/mongoose/schemas/account.js +1 -1
  49. package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -1
  50. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  51. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -1
  52. package/lib/chevre/repo/mongoose/schemas/action.js +1 -1
  53. package/lib/chevre/repo/mongoose/schemas/actionRecipe.js +1 -1
  54. package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -1
  55. package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.js +1 -1
  56. package/lib/chevre/repo/mongoose/schemas/aggregateOffer.js +1 -1
  57. package/lib/chevre/repo/mongoose/schemas/aggregateOrder.js +1 -1
  58. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +1 -1
  59. package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -1
  60. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +1 -1
  61. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  62. package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -1
  63. package/lib/chevre/repo/mongoose/schemas/civicStructure.js +1 -1
  64. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -1
  65. package/lib/chevre/repo/mongoose/schemas/customer.js +1 -1
  66. package/lib/chevre/repo/mongoose/schemas/customerType.js +1 -1
  67. package/lib/chevre/repo/mongoose/schemas/event.js +1 -1
  68. package/lib/chevre/repo/mongoose/schemas/eventOffer.js +1 -1
  69. package/lib/chevre/repo/mongoose/schemas/eventSeries.js +41 -14
  70. package/lib/chevre/repo/mongoose/schemas/identity.js +1 -1
  71. package/lib/chevre/repo/mongoose/schemas/identityProvider.js +1 -1
  72. package/lib/chevre/repo/mongoose/schemas/issuer.js +1 -1
  73. package/lib/chevre/repo/mongoose/schemas/member/global.js +1 -1
  74. package/lib/chevre/repo/mongoose/schemas/member.js +1 -1
  75. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -1
  76. package/lib/chevre/repo/mongoose/schemas/message.js +1 -1
  77. package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.js +1 -1
  78. package/lib/chevre/repo/mongoose/schemas/note.js +1 -1
  79. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -1
  80. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.js +1 -1
  81. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +1 -1
  82. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  83. package/lib/chevre/repo/mongoose/schemas/paymentService.js +1 -1
  84. package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.js +1 -1
  85. package/lib/chevre/repo/mongoose/schemas/pendingReservation.js +1 -1
  86. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.js +1 -1
  87. package/lib/chevre/repo/mongoose/schemas/place.js +1 -1
  88. package/lib/chevre/repo/mongoose/schemas/potentialAction.js +1 -1
  89. package/lib/chevre/repo/mongoose/schemas/product.js +1 -1
  90. package/lib/chevre/repo/mongoose/schemas/productModel.js +1 -1
  91. package/lib/chevre/repo/mongoose/schemas/productOffer.js +1 -1
  92. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  93. package/lib/chevre/repo/mongoose/schemas/reserveInterface.js +1 -1
  94. package/lib/chevre/repo/mongoose/schemas/role.js +1 -1
  95. package/lib/chevre/repo/mongoose/schemas/schedule.js +1 -1
  96. package/lib/chevre/repo/mongoose/schemas/seller.js +1 -1
  97. package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.js +1 -1
  98. package/lib/chevre/repo/mongoose/schemas/service/availableHour.js +1 -1
  99. package/lib/chevre/repo/mongoose/schemas/setting.js +1 -1
  100. package/lib/chevre/repo/mongoose/schemas/task.js +1 -1
  101. package/lib/chevre/repo/mongoose/schemas/ticket.js +1 -1
  102. package/lib/chevre/repo/mongoose/schemas/transaction.js +1 -1
  103. package/lib/chevre/repo/mongoose/schemas/transactionNumber.js +1 -1
  104. package/lib/chevre/repo/mongoose/schemas/trip.js +1 -1
  105. package/lib/chevre/repo/mongoose/schemas/webSite.js +1 -1
  106. package/lib/chevre/repo/movieTicketType.js +68 -89
  107. package/lib/chevre/repo/note.js +143 -146
  108. package/lib/chevre/repo/noteAboutOrder.js +112 -113
  109. package/lib/chevre/repo/offer/unitPriceInCatalog.js +331 -313
  110. package/lib/chevre/repo/offerCatalog.js +302 -333
  111. package/lib/chevre/repo/offerCatalogItem.js +289 -316
  112. package/lib/chevre/repo/offerItemCondition.js +60 -85
  113. package/lib/chevre/repo/order.js +563 -572
  114. package/lib/chevre/repo/orderInTransaction.js +113 -136
  115. package/lib/chevre/repo/orderNumber.d.ts +0 -1
  116. package/lib/chevre/repo/orderNumber.js +108 -122
  117. package/lib/chevre/repo/ownershipInfo.js +213 -233
  118. package/lib/chevre/repo/passport.js +94 -102
  119. package/lib/chevre/repo/paymentMethod/creditCard.js +153 -169
  120. package/lib/chevre/repo/paymentService.js +180 -199
  121. package/lib/chevre/repo/paymentServiceChannel.js +76 -99
  122. package/lib/chevre/repo/paymentServiceProvider.js +186 -201
  123. package/lib/chevre/repo/pendingReservation.js +275 -305
  124. package/lib/chevre/repo/permit.js +47 -42
  125. package/lib/chevre/repo/person.js +227 -247
  126. package/lib/chevre/repo/place/busStop.js +77 -103
  127. package/lib/chevre/repo/place/entranceGate.js +123 -128
  128. package/lib/chevre/repo/place/hasPOS.js +108 -120
  129. package/lib/chevre/repo/place/movieTheater.js +187 -219
  130. package/lib/chevre/repo/place/screeningRoom.js +340 -324
  131. package/lib/chevre/repo/place/seat.js +539 -475
  132. package/lib/chevre/repo/place/section.js +329 -292
  133. package/lib/chevre/repo/potentialAction.js +67 -86
  134. package/lib/chevre/repo/priceSpecification.js +103 -141
  135. package/lib/chevre/repo/product.js +204 -238
  136. package/lib/chevre/repo/productHasOfferCatalog.js +39 -50
  137. package/lib/chevre/repo/productModel.js +94 -126
  138. package/lib/chevre/repo/productOffer.js +119 -118
  139. package/lib/chevre/repo/project.js +123 -141
  140. package/lib/chevre/repo/projectMakesOffer.js +96 -108
  141. package/lib/chevre/repo/rateLimit/offer.js +43 -56
  142. package/lib/chevre/repo/reservation.js +370 -345
  143. package/lib/chevre/repo/reserveInterface.js +31 -42
  144. package/lib/chevre/repo/role.js +94 -112
  145. package/lib/chevre/repo/schedule.js +25 -36
  146. package/lib/chevre/repo/seller.js +115 -145
  147. package/lib/chevre/repo/sellerMakesOffer.js +95 -110
  148. package/lib/chevre/repo/sellerPaymentAccepted.js +92 -109
  149. package/lib/chevre/repo/sellerReturnPolicy.js +74 -96
  150. package/lib/chevre/repo/service/availableHour.js +27 -38
  151. package/lib/chevre/repo/serviceOutput.js +55 -66
  152. package/lib/chevre/repo/serviceOutputIdentifier.js +46 -57
  153. package/lib/chevre/repo/setting/jwt.js +40 -50
  154. package/lib/chevre/repo/setting.js +48 -48
  155. package/lib/chevre/repo/stockHolder.js +179 -197
  156. package/lib/chevre/repo/task.d.ts +1 -1
  157. package/lib/chevre/repo/task.js +615 -617
  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 +758 -795
  161. package/lib/chevre/repo/transactionNumber.js +67 -80
  162. package/lib/chevre/repo/transactionNumberCounter.js +69 -79
  163. package/lib/chevre/repo/transactionProcess.js +36 -47
  164. package/lib/chevre/repo/trip.js +145 -163
  165. package/lib/chevre/repo/webSite.js +90 -105
  166. package/lib/chevre/repository.js +455 -646
  167. package/lib/chevre/service/account.js +9 -18
  168. package/lib/chevre/service/accountTransaction/deposit.js +16 -17
  169. package/lib/chevre/service/accountTransaction/transfer.js +18 -19
  170. package/lib/chevre/service/accountTransaction/withdraw.js +16 -17
  171. package/lib/chevre/service/accountTransaction.js +4 -13
  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 -13
  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 -23
  180. package/lib/chevre/service/assetTransaction/cancelReservation/startAndConfirm.js +17 -15
  181. package/lib/chevre/service/assetTransaction/cancelReservation.js +7 -16
  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.d.ts +3 -0
  185. package/lib/chevre/service/assetTransaction/fixInformAction.js +9 -16
  186. package/lib/chevre/service/assetTransaction/moneyTransfer/potentialActions.js +13 -25
  187. package/lib/chevre/service/assetTransaction/moneyTransfer.js +101 -88
  188. package/lib/chevre/service/assetTransaction/pay/cancel.d.ts +12 -0
  189. package/lib/chevre/service/assetTransaction/pay/cancel.js +16 -0
  190. package/lib/chevre/service/assetTransaction/pay/check.d.ts +23 -0
  191. package/lib/chevre/service/assetTransaction/pay/check.js +27 -0
  192. package/lib/chevre/service/assetTransaction/pay/confirm.d.ts +24 -0
  193. package/lib/chevre/service/assetTransaction/pay/confirm.js +69 -0
  194. package/lib/chevre/service/assetTransaction/pay/exportTasksById.d.ts +18 -0
  195. package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +102 -0
  196. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +48 -0
  197. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +165 -0
  198. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.d.ts +20 -0
  199. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.js +49 -0
  200. package/lib/chevre/service/assetTransaction/pay/{account → start/account}/validation.d.ts +2 -2
  201. package/lib/chevre/service/assetTransaction/pay/{account → start/account}/validation.js +7 -17
  202. package/lib/chevre/service/assetTransaction/pay/{factory.d.ts → start/factory.d.ts} +1 -1
  203. package/lib/chevre/service/assetTransaction/pay/{factory.js → start/factory.js} +65 -37
  204. package/lib/chevre/service/assetTransaction/pay/{validateAcceptedPaymentMethodIfNeeded.d.ts → start/preStart/validateAcceptedPaymentMethodIfNeeded.d.ts} +4 -4
  205. package/lib/chevre/service/assetTransaction/pay/{validateAcceptedPaymentMethodIfNeeded.js → start/preStart/validateAcceptedPaymentMethodIfNeeded.js} +8 -21
  206. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.d.ts +8 -0
  207. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +44 -0
  208. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.d.ts +13 -0
  209. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.js +39 -0
  210. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +29 -0
  211. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.js +31 -0
  212. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +42 -0
  213. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +22 -0
  214. package/lib/chevre/service/assetTransaction/pay/start.d.ts +60 -0
  215. package/lib/chevre/service/assetTransaction/pay/start.js +139 -0
  216. package/lib/chevre/service/assetTransaction/pay.d.ts +8 -170
  217. package/lib/chevre/service/assetTransaction/pay.js +16 -623
  218. package/lib/chevre/service/assetTransaction/refund/factory.js +36 -16
  219. package/lib/chevre/service/assetTransaction/refund/potentialActions.js +12 -21
  220. package/lib/chevre/service/assetTransaction/refund.js +35 -39
  221. package/lib/chevre/service/assetTransaction/registerService/factory.js +65 -28
  222. package/lib/chevre/service/assetTransaction/registerService/potentialActions.js +50 -41
  223. package/lib/chevre/service/assetTransaction/registerService.js +45 -52
  224. package/lib/chevre/service/assetTransaction/reserve/cancel.js +5 -14
  225. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.js +15 -3
  226. package/lib/chevre/service/assetTransaction/reserve/confirm.js +21 -26
  227. package/lib/chevre/service/assetTransaction/reserve/exportTasksById.js +3 -12
  228. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +99 -79
  229. package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.js +17 -12
  230. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +108 -70
  231. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +69 -30
  232. package/lib/chevre/service/assetTransaction/reserve/start/factory/price.js +29 -20
  233. package/lib/chevre/service/assetTransaction/reserve/start.js +91 -106
  234. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/fixExtendedEventOffer.js +5 -15
  235. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateIssuedOfferIfExists.js +41 -54
  236. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateMemberTierIfExists.js +42 -55
  237. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/verifyTicketTokenAsNeeded.js +7 -17
  238. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest.js +15 -27
  239. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +24 -24
  240. package/lib/chevre/service/assetTransaction/reserveCOA/factory.js +12 -4
  241. package/lib/chevre/service/assetTransaction/reserveCOA.js +4 -13
  242. package/lib/chevre/service/assetTransaction.js +17 -21
  243. package/lib/chevre/service/delivery/factory.js +3 -4
  244. package/lib/chevre/service/delivery/product/factory.js +16 -7
  245. package/lib/chevre/service/delivery/reservation/factory.js +14 -3
  246. package/lib/chevre/service/delivery.js +47 -49
  247. package/lib/chevre/service/event/processUpdateMovieTheater.js +21 -23
  248. package/lib/chevre/service/event/saveScreeningEventSeries.js +56 -37
  249. package/lib/chevre/service/event/saveScreeningEvents.js +14 -23
  250. package/lib/chevre/service/event.js +34 -27
  251. package/lib/chevre/service/iam.js +8 -17
  252. package/lib/chevre/service/moneyTransfer.js +128 -112
  253. package/lib/chevre/service/notification/factory.js +11 -8
  254. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +11 -15
  255. package/lib/chevre/service/notification/notifyByEmail.js +7 -17
  256. package/lib/chevre/service/notification/sendEmailMessage.js +23 -26
  257. package/lib/chevre/service/notification/triggerWebhook.js +58 -54
  258. package/lib/chevre/service/offer/any.js +6 -15
  259. package/lib/chevre/service/offer/event/authorize/factory.js +139 -61
  260. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre/requestedProgramMembershipUsed2permit.js +8 -18
  261. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.js +43 -27
  262. package/lib/chevre/service/offer/event/authorize.js +114 -68
  263. package/lib/chevre/service/offer/event/checkAvailability.js +5 -15
  264. package/lib/chevre/service/offer/event/importFromCOA/factory.js +9 -2
  265. package/lib/chevre/service/offer/event/importFromCOA.js +13 -19
  266. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +38 -39
  267. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +26 -38
  268. package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +11 -22
  269. package/lib/chevre/service/offer/event/searchOfferCatalogItemAvailability.js +13 -24
  270. package/lib/chevre/service/offer/event/searchOfferCatalogItems.js +15 -22
  271. package/lib/chevre/service/offer/event/searchOffersByIds.js +24 -36
  272. package/lib/chevre/service/offer/event/searchPriceSpecs4event.js +5 -14
  273. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +4 -13
  274. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.js +6 -15
  275. package/lib/chevre/service/offer/event/voidTransaction.js +35 -39
  276. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +14 -20
  277. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/authorize.js +52 -40
  278. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/factory.js +5 -1
  279. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +34 -37
  280. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +45 -22
  281. package/lib/chevre/service/offer/eventServiceByCOA/authorize/validateAcceptedOffers.js +67 -59
  282. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +16 -26
  283. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +8 -18
  284. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +42 -41
  285. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +22 -25
  286. package/lib/chevre/service/offer/factory.js +18 -7
  287. package/lib/chevre/service/offer/moneyTransfer/authorize.js +31 -36
  288. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +9 -18
  289. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +10 -19
  290. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +14 -24
  291. package/lib/chevre/service/offer/onEventChanged.js +69 -64
  292. package/lib/chevre/service/offer/product/factory.js +54 -29
  293. package/lib/chevre/service/offer/product/searchProductOffers.js +30 -23
  294. package/lib/chevre/service/offer/product.js +106 -80
  295. package/lib/chevre/service/offer.js +48 -44
  296. package/lib/chevre/service/order/confirmPayTransaction.js +28 -27
  297. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +54 -41
  298. package/lib/chevre/service/order/deleteOrder.js +28 -35
  299. package/lib/chevre/service/order/findPlaceOrderTransaction.js +3 -12
  300. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +64 -68
  301. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  302. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.js +1 -2
  303. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled.js +3 -12
  304. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +11 -6
  305. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +5 -14
  306. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
  307. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +22 -9
  308. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +5 -14
  309. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +23 -26
  310. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +13 -19
  311. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +5 -14
  312. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +24 -13
  313. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +23 -32
  314. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +8 -18
  315. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  316. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +10 -9
  317. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +23 -28
  318. package/lib/chevre/service/order/onOrderUpdated/factory.js +3 -5
  319. package/lib/chevre/service/order/onOrderUpdated.js +13 -15
  320. package/lib/chevre/service/order/payOrder.js +3 -12
  321. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +9 -19
  322. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +31 -15
  323. package/lib/chevre/service/order/placeOrder/factory.js +35 -22
  324. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +3 -12
  325. package/lib/chevre/service/order/placeOrder.js +12 -22
  326. package/lib/chevre/service/order/placeOrderWithoutTransaction.js +10 -18
  327. package/lib/chevre/service/order/returnOrder.js +27 -29
  328. package/lib/chevre/service/order/sendOrder.js +37 -36
  329. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.js +19 -25
  330. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +24 -37
  331. package/lib/chevre/service/payment/any/factory.js +106 -49
  332. package/lib/chevre/service/payment/any/fixOrderAsNeeded.js +4 -13
  333. package/lib/chevre/service/payment/any/onPayActionCompleted.js +13 -18
  334. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.js +34 -37
  335. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.js +18 -24
  336. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +16 -16
  337. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.js +15 -20
  338. package/lib/chevre/service/payment/any/person2username.js +33 -45
  339. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.js +8 -18
  340. package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +5 -15
  341. package/lib/chevre/service/payment/any.js +181 -137
  342. package/lib/chevre/service/payment/creditCard/authorize/handleAuthorizeError.js +2 -2
  343. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +44 -24
  344. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +6 -15
  345. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3dsResult2recipe.js +5 -1
  346. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCardResult2recipe.js +10 -2
  347. package/lib/chevre/service/payment/creditCard/authorize.js +20 -22
  348. package/lib/chevre/service/payment/creditCard/factory.js +22 -4
  349. package/lib/chevre/service/payment/creditCard/getGMOInfoFromSeller.js +8 -18
  350. package/lib/chevre/service/payment/creditCard/payCreditCard.js +31 -36
  351. package/lib/chevre/service/payment/creditCard/refundCreditCard.js +40 -49
  352. package/lib/chevre/service/payment/creditCard/searchGMOTrade.js +33 -45
  353. package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -25
  354. package/lib/chevre/service/payment/faceToFace.js +14 -23
  355. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +44 -25
  356. package/lib/chevre/service/payment/factory.js +50 -23
  357. package/lib/chevre/service/payment/movieTicket/authorize.js +35 -28
  358. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +22 -25
  359. package/lib/chevre/service/payment/movieTicket/factory.js +33 -10
  360. package/lib/chevre/service/payment/movieTicket/getCredentials.js +5 -15
  361. package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +29 -40
  362. package/lib/chevre/service/payment/movieTicket/processPurchaseNumberAuth.js +8 -18
  363. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.js +60 -59
  364. package/lib/chevre/service/payment/movieTicket/validation.js +41 -36
  365. package/lib/chevre/service/payment/movieTicket/voidTransaction.js +8 -18
  366. package/lib/chevre/service/payment/paymentCard.js +87 -103
  367. package/lib/chevre/service/permit.js +36 -35
  368. package/lib/chevre/service/product.js +23 -27
  369. package/lib/chevre/service/project.js +22 -31
  370. package/lib/chevre/service/report/ownershipInfo.js +3 -4
  371. package/lib/chevre/service/report/telemetry.js +51 -55
  372. package/lib/chevre/service/reserve/cancelReservation.js +92 -90
  373. package/lib/chevre/service/reserve/checkInReservation.js +24 -29
  374. package/lib/chevre/service/reserve/confirmReservation.js +33 -38
  375. package/lib/chevre/service/reserve/factory.js +42 -20
  376. package/lib/chevre/service/reserve/findByCode.js +13 -18
  377. package/lib/chevre/service/reserve/potentialActions/onPendingReservationCanceled.js +18 -24
  378. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +17 -24
  379. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +38 -29
  380. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +45 -35
  381. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +37 -32
  382. package/lib/chevre/service/reserve/potentialActions/onReservationsCreated.js +17 -23
  383. package/lib/chevre/service/reserve/searchByOrder.js +10 -19
  384. package/lib/chevre/service/reserve/useReservation.js +47 -32
  385. package/lib/chevre/service/reserve/verifyToken4reservation.js +7 -14
  386. package/lib/chevre/service/reserveCOA/cancelReservation.js +7 -16
  387. package/lib/chevre/service/reserveCOA/factory.js +5 -1
  388. package/lib/chevre/service/task/acceptCOAOffer.js +20 -24
  389. package/lib/chevre/service/task/aggregateOffers.js +3 -12
  390. package/lib/chevre/service/task/aggregateOnSystem.js +4 -14
  391. package/lib/chevre/service/task/aggregateScreeningEvent.js +3 -12
  392. package/lib/chevre/service/task/authorizePayment.js +9 -15
  393. package/lib/chevre/service/task/cancelMoneyTransfer.js +3 -12
  394. package/lib/chevre/service/task/cancelPendingReservation.js +10 -20
  395. package/lib/chevre/service/task/cancelReservation.js +3 -12
  396. package/lib/chevre/service/task/checkMovieTicket.js +16 -19
  397. package/lib/chevre/service/task/checkResource.js +7 -16
  398. package/lib/chevre/service/task/confirmMoneyTransfer.js +3 -12
  399. package/lib/chevre/service/task/confirmPayTransaction.js +6 -12
  400. package/lib/chevre/service/task/confirmRegisterService.js +3 -12
  401. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +24 -31
  402. package/lib/chevre/service/task/confirmReserveTransaction.js +48 -42
  403. package/lib/chevre/service/task/createAccountingReport.js +14 -20
  404. package/lib/chevre/service/task/deletePerson.js +48 -58
  405. package/lib/chevre/service/task/deleteTransaction.js +3 -12
  406. package/lib/chevre/service/task/givePointAward.js +3 -12
  407. package/lib/chevre/service/task/handleNotification.js +4 -14
  408. package/lib/chevre/service/task/importEventCapacitiesFromCOA.js +6 -16
  409. package/lib/chevre/service/task/importEventsFromCOA.js +6 -16
  410. package/lib/chevre/service/task/importOffersFromCOA.js +8 -18
  411. package/lib/chevre/service/task/invalidatePaymentUrl.js +6 -12
  412. package/lib/chevre/service/task/moneyTransfer.js +3 -12
  413. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +3 -12
  414. package/lib/chevre/service/task/onAuthorizationCreated.js +11 -18
  415. package/lib/chevre/service/task/onEventChanged.js +3 -12
  416. package/lib/chevre/service/task/onOrderPaymentCompleted.js +3 -12
  417. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +7 -16
  418. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +7 -16
  419. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +8 -17
  420. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +10 -19
  421. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +8 -17
  422. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +6 -15
  423. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +14 -23
  424. package/lib/chevre/service/task/onResourceDeleted.js +17 -26
  425. package/lib/chevre/service/task/onResourceUpdated/onAggregateOfferUpdated.js +9 -21
  426. package/lib/chevre/service/task/onResourceUpdated/onCategoryCodeUpdated.js +3 -12
  427. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +11 -23
  428. package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +13 -25
  429. package/lib/chevre/service/task/onResourceUpdated/syncCategoryCode.js +9 -15
  430. package/lib/chevre/service/task/onResourceUpdated/syncOfferCatalog.js +21 -27
  431. package/lib/chevre/service/task/onResourceUpdated.js +113 -153
  432. package/lib/chevre/service/task/pay.js +8 -16
  433. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.js +4 -14
  434. package/lib/chevre/service/task/payment/payByTask.js +49 -38
  435. package/lib/chevre/service/task/payment/refundByTask.js +7 -17
  436. package/lib/chevre/service/task/payment/voidPaymentByTask.js +6 -15
  437. package/lib/chevre/service/task/placeOrder.js +6 -12
  438. package/lib/chevre/service/task/publishPaymentUrl.js +9 -14
  439. package/lib/chevre/service/task/refund.js +8 -16
  440. package/lib/chevre/service/task/registerService.js +3 -12
  441. package/lib/chevre/service/task/reserve.js +3 -12
  442. package/lib/chevre/service/task/returnMoneyTransfer.js +3 -12
  443. package/lib/chevre/service/task/returnOrder.js +6 -12
  444. package/lib/chevre/service/task/returnPayTransaction.js +54 -48
  445. package/lib/chevre/service/task/returnPointAward.js +3 -12
  446. package/lib/chevre/service/task/returnReserveTransaction.js +29 -30
  447. package/lib/chevre/service/task/sendEmailMessage.js +6 -13
  448. package/lib/chevre/service/task/sendOrder.js +12 -15
  449. package/lib/chevre/service/task/syncResourcesFromCOA.js +39 -40
  450. package/lib/chevre/service/task/triggerWebhook.js +6 -12
  451. package/lib/chevre/service/task/useReservation.js +11 -14
  452. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +3 -12
  453. package/lib/chevre/service/task/voidPayTransaction.js +7 -12
  454. package/lib/chevre/service/task/voidPayment.js +3 -12
  455. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +3 -12
  456. package/lib/chevre/service/task/voidReserveTransaction.js +10 -16
  457. package/lib/chevre/service/task.js +16 -22
  458. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +9 -20
  459. package/lib/chevre/service/taskHandler/onOperationFailed.js +20 -17
  460. package/lib/chevre/service/taskHandler.js +19 -21
  461. package/lib/chevre/service/transaction/deleteTransaction.js +104 -84
  462. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +15 -6
  463. package/lib/chevre/service/transaction/moneyTransfer/factory.js +13 -4
  464. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +12 -24
  465. package/lib/chevre/service/transaction/moneyTransfer.js +119 -96
  466. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +49 -51
  467. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +14 -25
  468. package/lib/chevre/service/transaction/placeOrder/confirm/publishCode.js +4 -14
  469. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.js +3 -4
  470. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.js +3 -4
  471. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +2 -3
  472. package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +30 -45
  473. package/lib/chevre/service/transaction/placeOrder/confirm.js +75 -55
  474. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +31 -13
  475. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +6 -15
  476. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +6 -15
  477. package/lib/chevre/service/transaction/placeOrder/publishOrderNumberIfNotExist.js +7 -16
  478. package/lib/chevre/service/transaction/placeOrder/start/factory.js +27 -7
  479. package/lib/chevre/service/transaction/placeOrder/start/validateStartRequest.js +53 -59
  480. package/lib/chevre/service/transaction/placeOrder/start.js +14 -18
  481. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +13 -6
  482. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +176 -190
  483. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +77 -89
  484. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +40 -48
  485. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +52 -56
  486. package/lib/chevre/service/transaction/returnOrder/preStart/findApplicableReturnPolicy.js +100 -102
  487. package/lib/chevre/service/transaction/returnOrder/preStart/getReturnPolicyByProject.js +60 -80
  488. package/lib/chevre/service/transaction/returnOrder/preStart.js +42 -46
  489. package/lib/chevre/service/transaction/returnOrder.js +32 -36
  490. package/lib/chevre/service/transaction.js +75 -46
  491. package/lib/chevre/service/validation/validateEvent.js +2 -11
  492. package/lib/chevre/service/validation/validateOrder.js +7 -16
  493. package/lib/chevre/service.js +85 -128
  494. package/lib/chevre/settings/aggregation.js +4 -0
  495. package/lib/chevre/settings.js +7 -0
  496. package/package.json +8 -11
  497. package/example/src/chevre/addEventBySchedule.ts +0 -46
  498. package/example/src/chevre/orderNumber/decryptOrderNumber.ts +0 -14
  499. package/example/src/idaas/auth0/adminApplications.ts +0 -183
  500. package/example/src/idaas/auth0/getToken.ts +0 -55
  501. package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +0 -84
  502. package/lib/chevre/service/task/createEvent/createEvent.d.ts +0 -25
  503. package/lib/chevre/service/task/createEvent/createEvent.js +0 -45
  504. package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.d.ts +0 -22
  505. package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.js +0 -190
  506. package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.d.ts +0 -15
  507. package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.js +0 -118
  508. package/lib/chevre/service/task/createEvent/createEventBySchedule.d.ts +0 -25
  509. package/lib/chevre/service/task/createEvent/createEventBySchedule.js +0 -107
  510. package/lib/chevre/service/task/createEvent/createEventSeries.d.ts +0 -13
  511. package/lib/chevre/service/task/createEvent/createEventSeries.js +0 -118
  512. package/lib/chevre/service/task/createEvent.d.ts +0 -6
  513. package/lib/chevre/service/task/createEvent.js +0 -46
@@ -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.EventRepo = void 0;
24
4
  const mongoose_1 = require("mongoose");
@@ -39,6 +19,7 @@ const AVAILABLE_PUBLIC_PROJECT_FIELDS = [
39
19
  * イベントリポジトリ
40
20
  */
41
21
  class EventRepo {
22
+ eventModel;
42
23
  constructor(connection) {
43
24
  this.eventModel = connection.model(event_1.modelName, (0, event_1.createSchema)());
44
25
  }
@@ -52,7 +33,6 @@ class EventRepo {
52
33
  }
53
34
  // tslint:disable-next-line:cyclomatic-complexity max-func-body-length
54
35
  static CREATE_MONGO_CONDITIONS(conditions) {
55
- 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;
56
36
  const andConditions = [];
57
37
  const typeOfEq = conditions.typeOf;
58
38
  if (typeof typeOfEq === 'string') {
@@ -66,19 +46,19 @@ class EventRepo {
66
46
  if (typeof typeOfEq !== 'string' && !Array.isArray(typeOfIn)) {
67
47
  throw new factory.errors.ArgumentNull('typeOf');
68
48
  }
69
- const projectIdEq = (_b = (_a = conditions.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
49
+ const projectIdEq = conditions.project?.id?.$eq;
70
50
  if (typeof projectIdEq === 'string') {
71
51
  andConditions.push({ 'project.id': { $eq: projectIdEq } });
72
52
  }
73
- const organizerIdEq = (_d = (_c = conditions.organizer) === null || _c === void 0 ? void 0 : _c.id) === null || _d === void 0 ? void 0 : _d.$eq;
53
+ const organizerIdEq = conditions.organizer?.id?.$eq;
74
54
  if (typeof organizerIdEq === 'string') {
75
55
  andConditions.push({ 'organizer.id': { $exists: true, $eq: organizerIdEq } });
76
56
  }
77
- const idEq = (_e = conditions.id) === null || _e === void 0 ? void 0 : _e.$eq;
57
+ const idEq = conditions.id?.$eq;
78
58
  if (typeof idEq === 'string') {
79
59
  andConditions.push({ _id: { $eq: idEq } });
80
60
  }
81
- const idIn = (_f = conditions.id) === null || _f === void 0 ? void 0 : _f.$in;
61
+ const idIn = conditions.id?.$in;
82
62
  if (Array.isArray(idIn)) {
83
63
  andConditions.push({ _id: { $in: idIn } });
84
64
  }
@@ -135,15 +115,15 @@ class EventRepo {
135
115
  endDate: { $lte: conditions.endThrough }
136
116
  });
137
117
  }
138
- const locationBranchCodeEq = (_h = (_g = conditions.location) === null || _g === void 0 ? void 0 : _g.branchCode) === null || _h === void 0 ? void 0 : _h.$eq;
118
+ const locationBranchCodeEq = conditions.location?.branchCode?.$eq;
139
119
  if (typeof locationBranchCodeEq === 'string') {
140
120
  andConditions.push({ 'location.branchCode': { $exists: true, $eq: locationBranchCodeEq } });
141
121
  }
142
- const locationBranchCodeIn = (_k = (_j = conditions.location) === null || _j === void 0 ? void 0 : _j.branchCode) === null || _k === void 0 ? void 0 : _k.$in;
122
+ const locationBranchCodeIn = conditions.location?.branchCode?.$in;
143
123
  if (Array.isArray(locationBranchCodeIn)) {
144
124
  andConditions.push({ 'location.branchCode': { $exists: true, $in: locationBranchCodeIn } });
145
125
  }
146
- const additionalPropertyElemMatch = (_l = conditions.additionalProperty) === null || _l === void 0 ? void 0 : _l.$elemMatch;
126
+ const additionalPropertyElemMatch = conditions.additionalProperty?.$elemMatch;
147
127
  if (additionalPropertyElemMatch !== undefined && additionalPropertyElemMatch !== null) {
148
128
  andConditions.push({
149
129
  additionalProperty: {
@@ -178,7 +158,7 @@ class EventRepo {
178
158
  }
179
159
  // tslint:disable-next-line:no-single-line-block-comment
180
160
  /* istanbul ignore else */
181
- const superEventLocationIdEq = (_p = (_o = (_m = params.superEvent) === null || _m === void 0 ? void 0 : _m.location) === null || _o === void 0 ? void 0 : _o.id) === null || _p === void 0 ? void 0 : _p.$eq;
161
+ const superEventLocationIdEq = params.superEvent?.location?.id?.$eq;
182
162
  if (typeof superEventLocationIdEq === 'string') {
183
163
  andConditions.push({
184
164
  'superEvent.location.id': {
@@ -221,7 +201,7 @@ class EventRepo {
221
201
  });
222
202
  }
223
203
  }
224
- const itemOfferedIdIn = (_s = (_r = (_q = params.offers) === null || _q === void 0 ? void 0 : _q.itemOffered) === null || _r === void 0 ? void 0 : _r.id) === null || _s === void 0 ? void 0 : _s.$in;
204
+ const itemOfferedIdIn = params.offers?.itemOffered?.id?.$in;
225
205
  if (Array.isArray(itemOfferedIdIn)) {
226
206
  andConditions.push({
227
207
  'offers.itemOffered.id': {
@@ -230,7 +210,7 @@ class EventRepo {
230
210
  }
231
211
  });
232
212
  }
233
- const itemOfferedTicketedSeatTypeOfIn = (_x = (_w = (_v = (_u = (_t = params.offers) === null || _t === void 0 ? void 0 : _t.itemOffered) === null || _u === void 0 ? void 0 : _u.serviceOutput) === null || _v === void 0 ? void 0 : _v.reservedTicket) === null || _w === void 0 ? void 0 : _w.ticketedSeat) === null || _x === void 0 ? void 0 : _x.typeOfs;
213
+ const itemOfferedTicketedSeatTypeOfIn = params.offers?.itemOffered?.serviceOutput?.reservedTicket?.ticketedSeat?.typeOfs;
234
214
  if (Array.isArray(itemOfferedTicketedSeatTypeOfIn)) {
235
215
  andConditions.push({
236
216
  'offers.itemOffered.serviceOutput.reservedTicket.ticketedSeat.typeOf': {
@@ -239,7 +219,7 @@ class EventRepo {
239
219
  }
240
220
  });
241
221
  }
242
- const itemOfferedServiceTypeIdIn = (_0 = (_z = (_y = params.offers) === null || _y === void 0 ? void 0 : _y.itemOffered) === null || _z === void 0 ? void 0 : _z.serviceType) === null || _0 === void 0 ? void 0 : _0.ids;
222
+ const itemOfferedServiceTypeIdIn = params.offers?.itemOffered?.serviceType?.ids;
243
223
  if (Array.isArray(itemOfferedServiceTypeIdIn)) {
244
224
  andConditions.push({
245
225
  'offers.itemOffered.serviceType.id': {
@@ -248,8 +228,8 @@ class EventRepo {
248
228
  }
249
229
  });
250
230
  }
251
- const sellerMakesOfferElemMatch = (_3 = (_2 = (_1 = params.offers) === null || _1 === void 0 ? void 0 : _1.seller) === null || _2 === void 0 ? void 0 : _2.makesOffer) === null || _3 === void 0 ? void 0 : _3.$elemMatch;
252
- if (typeof ((_4 = sellerMakesOfferElemMatch === null || sellerMakesOfferElemMatch === void 0 ? void 0 : sellerMakesOfferElemMatch['availableAtOrFrom.id']) === null || _4 === void 0 ? void 0 : _4.$eq) === 'string') {
231
+ const sellerMakesOfferElemMatch = params.offers?.seller?.makesOffer?.$elemMatch;
232
+ if (typeof sellerMakesOfferElemMatch?.['availableAtOrFrom.id']?.$eq === 'string') {
253
233
  andConditions.push({
254
234
  'offers.seller.makesOffer': {
255
235
  $exists: true,
@@ -264,810 +244,806 @@ class EventRepo {
264
244
  }
265
245
  return andConditions;
266
246
  }
267
- /**
268
- * 複数イベントを作成する
269
- */
270
- createManyEvents(params) {
271
- return __awaiter(this, void 0, void 0, function* () {
272
- const insertingDocs = params.attributes.map((p) => {
273
- return Object.assign({ _id: EventRepo.CREATE_ID() }, p);
274
- });
275
- try {
276
- yield this.eventModel.insertMany(insertingDocs, { rawResult: true } // rawResult(2024-08-02~)
277
- );
278
- // console.dir(insertResult, { depth: null });
279
- }
280
- catch (error) {
281
- if (yield (0, errorHandler_1.isMongoError)(error)) {
282
- if (error.code === errorHandler_1.MongoErrorCode.DuplicateKey) {
283
- throw new factory.errors.AlreadyInUse(factory.eventType.ScreeningEvent, ['offeredBy.member.identifier']);
284
- }
285
- }
286
- throw error;
287
- }
288
- if (params.expectsNoContent) {
289
- return;
290
- }
291
- return insertingDocs.map(({ _id }) => _id);
292
- });
293
- }
247
+ // /**
248
+ // * 複数イベントを作成する
249
+ // */
250
+ // public async createManyEvents(params: {
251
+ // attributes: factory.event.screeningEvent.IAttributes[];
252
+ // expectsNoContent: boolean;
253
+ // }): Promise<string[] | void> { // optimize response(only id)(2024-08-02~)
254
+ // const insertingDocs: (factory.event.screeningEvent.IAttributes & { _id: string })[] =
255
+ // params.attributes.map((p) => {
256
+ // return {
257
+ // _id: EventRepo.CREATE_ID(),
258
+ // ...p
259
+ // };
260
+ // });
261
+ // try {
262
+ // await this.eventModel.insertMany<factory.event.screeningEvent.IAttributes & { _id: string }>(
263
+ // insertingDocs,
264
+ // { rawResult: true } // rawResult(2024-08-02~)
265
+ // );
266
+ // // console.dir(insertResult, { depth: null });
267
+ // } catch (error) {
268
+ // if (await isMongoError(error)) {
269
+ // if (error.code === MongoErrorCode.DuplicateKey) {
270
+ // throw new factory.errors.AlreadyInUse(factory.eventType.ScreeningEvent, ['offeredBy.member.identifier']);
271
+ // }
272
+ // }
273
+ // throw error;
274
+ // }
275
+ // if (params.expectsNoContent) {
276
+ // return;
277
+ // }
278
+ // return insertingDocs.map(({ _id }) => _id);
279
+ // }
294
280
  /**
295
281
  * イベントコードをキーにして冪等置換
296
282
  */
297
- upsertManyScreeningEventByIdentifier(params, options) {
298
- return __awaiter(this, void 0, void 0, function* () {
299
- const { update } = options;
300
- const bulkWriteOps = [];
301
- const queryFilters = [];
302
- if (Array.isArray(params)) {
303
- params.forEach(({ $set, $unset }) => {
304
- const { project, identifier } = $set;
305
- if (typeof identifier !== 'string' || identifier.length === 0) {
306
- throw new factory.errors.ArgumentNull('identifier');
307
- }
308
- // リソースのユニークネスを保証するfilter
309
- const filter = {
310
- 'project.id': { $eq: project.id },
311
- identifier: { $exists: true, $eq: identifier }
312
- };
313
- queryFilters.push({
314
- 'project.id': { $eq: project.id },
315
- identifier: { $exists: true, $eq: identifier }
316
- });
317
- if (update === true) {
318
- const { maximumPhysicalAttendeeCapacity, additionalProperty, eventStatus, location, name, superEvent, offers, doorTime, endDate, startDate } = $set;
319
- const setFields = {
320
- maximumPhysicalAttendeeCapacity, additionalProperty,
321
- eventStatus, location, name, superEvent, offers,
322
- doorTime, endDate, startDate
323
- };
324
- const updateOne = {
325
- filter,
326
- update: Object.assign({ $set: setFields }, ($unset !== undefined) ? { $unset } : undefined),
327
- upsert: false
328
- };
329
- bulkWriteOps.push({ updateOne });
330
- }
331
- else {
332
- const { id, coaInfo, description, maximumAttendeeCapacity, remainingAttendeeCapacity, checkInCount, attendeeCount, aggregateReservation } = $set, setOnInsertFields = __rest($set, ["id", "coaInfo", "description", "maximumAttendeeCapacity", "remainingAttendeeCapacity", "checkInCount", "attendeeCount", "aggregateReservation"]);
333
- const setOnInsert = Object.assign(Object.assign({}, setOnInsertFields), { identifier, _id: EventRepo.CREATE_ID() });
334
- const updateOne = {
335
- filter,
336
- update: {
337
- $setOnInsert: setOnInsert
338
- },
339
- upsert: true
340
- };
341
- bulkWriteOps.push({ updateOne });
342
- }
283
+ async upsertManyScreeningEventByIdentifier(params, options) {
284
+ const { update } = options;
285
+ const bulkWriteOps = [];
286
+ const queryFilters = [];
287
+ if (Array.isArray(params)) {
288
+ params.forEach(({ $set, $unset }) => {
289
+ const { project, identifier } = $set;
290
+ if (typeof identifier !== 'string' || identifier.length === 0) {
291
+ throw new factory.errors.ArgumentNull('identifier');
292
+ }
293
+ // リソースのユニークネスを保証するfilter
294
+ const filter = {
295
+ 'project.id': { $eq: project.id },
296
+ identifier: { $exists: true, $eq: identifier }
297
+ };
298
+ queryFilters.push({
299
+ 'project.id': { $eq: project.id },
300
+ identifier: { $exists: true, $eq: identifier }
343
301
  });
344
- }
345
- if (bulkWriteOps.length > 0) {
346
- const bulkWriteResult = yield this.eventModel.bulkWrite(bulkWriteOps, { ordered: false });
347
- // update:falseの場合、upsertedIdsのみmodifiedEventsとして返せばよい(2026-01-16~)
348
- if (!update) {
349
- // BulkWriteResult -> upsertedIds: { '0': '7iri6p4m54k0r3g' }
350
- return {
351
- bulkWriteResult,
352
- modifiedEvents: Object.values(bulkWriteResult.upsertedIds)
353
- .map((id) => ({ id: String(id) }))
302
+ if (update === true) {
303
+ const { maximumPhysicalAttendeeCapacity, additionalProperty, eventStatus, location, name, superEvent, offers, doorTime, endDate, startDate } = $set;
304
+ const setFields = {
305
+ maximumPhysicalAttendeeCapacity, additionalProperty,
306
+ eventStatus, location, name, superEvent, offers,
307
+ doorTime, endDate, startDate
308
+ };
309
+ const updateOne = {
310
+ filter,
311
+ update: {
312
+ $set: setFields,
313
+ ...($unset !== undefined) ? { $unset } : undefined
314
+ },
315
+ upsert: false
354
316
  };
317
+ bulkWriteOps.push({ updateOne });
355
318
  }
356
319
  else {
357
- // modifiedの場合upsertedIdsに含まれないので、idを検索する
358
- const modifiedEvents = yield this.eventModel.find({ $or: queryFilters }, {
359
- _id: 0,
360
- id: { $toString: '$_id' }
361
- })
362
- .lean()
363
- .exec();
364
- return { bulkWriteResult, modifiedEvents };
320
+ const { id, coaInfo, description, maximumAttendeeCapacity, remainingAttendeeCapacity, checkInCount, attendeeCount, aggregateReservation, ...setOnInsertFields } = $set;
321
+ const setOnInsert = {
322
+ ...setOnInsertFields,
323
+ identifier,
324
+ _id: EventRepo.CREATE_ID()
325
+ };
326
+ const updateOne = {
327
+ filter,
328
+ update: {
329
+ $setOnInsert: setOnInsert
330
+ },
331
+ upsert: true
332
+ };
333
+ bulkWriteOps.push({ updateOne });
365
334
  }
335
+ });
336
+ }
337
+ if (bulkWriteOps.length > 0) {
338
+ const bulkWriteResult = await this.eventModel.bulkWrite(bulkWriteOps, { ordered: false });
339
+ // update:falseの場合、upsertedIdsのみmodifiedEventsとして返せばよい(2026-01-16~)
340
+ if (!update) {
341
+ // BulkWriteResult -> upsertedIds: { '0': '7iri6p4m54k0r3g' }
342
+ return {
343
+ bulkWriteResult,
344
+ modifiedEvents: Object.values(bulkWriteResult.upsertedIds)
345
+ .map((id) => ({ id: String(id) }))
346
+ };
366
347
  }
367
- return { modifiedEvents: [] };
368
- });
348
+ else {
349
+ // modifiedの場合upsertedIdsに含まれないので、idを検索する
350
+ const modifiedEvents = await this.eventModel.find({ $or: queryFilters }, {
351
+ _id: 0,
352
+ id: { $toString: '$_id' }
353
+ })
354
+ .lean()
355
+ .exec();
356
+ return { bulkWriteResult, modifiedEvents };
357
+ }
358
+ }
359
+ return { modifiedEvents: [] };
369
360
  }
370
361
  /**
371
362
  * イベント部分更新
372
363
  */
373
- updatePartiallyById(params) {
374
- return __awaiter(this, void 0, void 0, function* () {
375
- // let doc: Document | null;
376
- const _a = params.attributes, { typeOf } = _a, updateFields = __rest(_a, ["typeOf"]);
377
- if (typeof typeOf !== 'string' || typeOf.length === 0) {
378
- throw new factory.errors.ArgumentNull('attributes.typeOf');
379
- }
380
- const doc = yield this.eventModel.findOneAndUpdate({
364
+ async updatePartiallyById(params) {
365
+ // let doc: Document | null;
366
+ const { typeOf, ...updateFields } = params.attributes;
367
+ if (typeof typeOf !== 'string' || typeOf.length === 0) {
368
+ throw new factory.errors.ArgumentNull('attributes.typeOf');
369
+ }
370
+ const doc = await this.eventModel.findOneAndUpdate({
371
+ _id: { $eq: params.id },
372
+ 'project.id': { $eq: params.project.id },
373
+ typeOf: { $eq: typeOf }
374
+ }, {
375
+ $set: updateFields
376
+ }, { upsert: false, new: false, projection: { _id: 1 } })
377
+ .lean()
378
+ .exec();
379
+ if (doc === null) {
380
+ throw new factory.errors.NotFound(this.eventModel.modelName);
381
+ }
382
+ }
383
+ /**
384
+ * 単一イベント編集
385
+ */
386
+ async updateEventById(params) {
387
+ let doc;
388
+ const { identifier, project, typeOf, organizer, aggregateReservation, maximumAttendeeCapacity, remainingAttendeeCapacity, checkInCount, attendeeCount, coaInfo, ...updateFields
389
+ // maximumPhysicalAttendeeCapacity, additionalProperty,
390
+ // eventStatus, location, name, superEvent, offers,
391
+ // doorTime, endDate, startDate
392
+ } = params.attributes;
393
+ if (typeof typeOf !== 'string' || typeOf.length === 0) {
394
+ throw new factory.errors.ArgumentNull('attributes.typeOf');
395
+ }
396
+ if (typeof params.id !== 'string' || params.id === '') {
397
+ throw new factory.errors.ArgumentNull('id');
398
+ }
399
+ try {
400
+ doc = await this.eventModel.findOneAndUpdate({
381
401
  _id: { $eq: params.id },
382
- 'project.id': { $eq: params.project.id },
383
402
  typeOf: { $eq: typeOf }
384
403
  }, {
385
- $set: updateFields
386
- }, { upsert: false, new: false, projection: { _id: 1 } })
404
+ // 編集のためのみのメソッドになったので、setOnInsertは廃止(2025-10-27~)
405
+ // 上書き禁止属性を除外(2022-08-24~)
406
+ // $setOnInsert: {
407
+ // typeOf,
408
+ // project,
409
+ // ...(typeof identifier === 'string' && identifier !== '') ? { identifier } : undefined
410
+ // },
411
+ $set: updateFields,
412
+ ...(params.$unset !== undefined) ? { $unset: params.$unset } : undefined
413
+ }, {
414
+ upsert: false,
415
+ new: true,
416
+ projection: { _id: 1 }
417
+ })
387
418
  .lean()
388
419
  .exec();
389
- if (doc === null) {
390
- throw new factory.errors.NotFound(this.eventModel.modelName);
391
- }
392
- });
393
- }
394
- /**
395
- * 単一イベント編集
396
- */
397
- updateEventById(params) {
398
- return __awaiter(this, void 0, void 0, function* () {
399
- let doc;
400
- const _a = params.attributes, { identifier, project, typeOf, organizer, aggregateReservation, maximumAttendeeCapacity, remainingAttendeeCapacity, checkInCount, attendeeCount, coaInfo } = _a, updateFields = __rest(_a, ["identifier", "project", "typeOf", "organizer", "aggregateReservation", "maximumAttendeeCapacity", "remainingAttendeeCapacity", "checkInCount", "attendeeCount", "coaInfo"])
401
- // maximumPhysicalAttendeeCapacity, additionalProperty,
402
- // eventStatus, location, name, superEvent, offers,
403
- // doorTime, endDate, startDate
404
- ;
405
- if (typeof typeOf !== 'string' || typeOf.length === 0) {
406
- throw new factory.errors.ArgumentNull('attributes.typeOf');
407
- }
408
- if (typeof params.id !== 'string' || params.id === '') {
409
- throw new factory.errors.ArgumentNull('id');
410
- }
411
- try {
412
- doc = yield this.eventModel.findOneAndUpdate({
413
- _id: { $eq: params.id },
414
- typeOf: { $eq: typeOf }
415
- }, Object.assign({
416
- // 編集のためのみのメソッドになったので、setOnInsertは廃止(2025-10-27~)
417
- // 上書き禁止属性を除外(2022-08-24~)
418
- // $setOnInsert: {
419
- // typeOf,
420
- // project,
421
- // ...(typeof identifier === 'string' && identifier !== '') ? { identifier } : undefined
422
- // },
423
- $set: updateFields }, (params.$unset !== undefined) ? { $unset: params.$unset } : undefined), {
424
- upsert: false,
425
- new: true,
426
- projection: { _id: 1 }
427
- })
428
- .lean()
429
- .exec();
430
- }
431
- catch (error) {
432
- if (yield (0, errorHandler_1.isMongoError)(error)) {
433
- if (error.code === errorHandler_1.MongoErrorCode.DuplicateKey) {
434
- throw new factory.errors.AlreadyInUse(factory.eventType.ScreeningEvent, ['offeredBy.member.identifier']);
435
- }
420
+ }
421
+ catch (error) {
422
+ if (await (0, errorHandler_1.isMongoError)(error)) {
423
+ if (error.code === errorHandler_1.MongoErrorCode.DuplicateKey) {
424
+ throw new factory.errors.AlreadyInUse(factory.eventType.ScreeningEvent, ['offeredBy.member.identifier']);
436
425
  }
437
- throw error;
438
426
  }
439
- if (doc === null) {
440
- throw new factory.errors.NotFound(this.eventModel.modelName);
441
- }
442
- });
427
+ throw error;
428
+ }
429
+ if (doc === null) {
430
+ throw new factory.errors.NotFound(this.eventModel.modelName);
431
+ }
443
432
  }
444
433
  /**
445
434
  * sskts専用
446
435
  */
447
- saveManyEvents(params) {
448
- return __awaiter(this, void 0, void 0, function* () {
449
- const bulkWriteOps = [];
450
- if (Array.isArray(params)) {
451
- params.forEach((p) => {
452
- const upsert = p.upsert === true;
453
- if (p.attributes.typeOf === factory.eventType.ScreeningEvent) {
454
- // 上書き禁止属性を除外(2022-08-24~)
455
- const _a = p.attributes, { identifier, project, typeOf, remainingAttendeeCapacity } = _a, updateFields = __rest(_a, ["identifier", "project", "typeOf", "remainingAttendeeCapacity"]);
456
- bulkWriteOps.push({
457
- updateOne: {
458
- filter: {
459
- _id: p.id,
460
- typeOf: p.attributes.typeOf
461
- },
462
- update: Object.assign({ $setOnInsert: Object.assign(Object.assign({ typeOf: p.attributes.typeOf, project: p.attributes.project }, (typeof p.attributes.identifier === 'string')
463
- ? { identifier: p.attributes.identifier } : undefined), (typeof p.attributes.remainingAttendeeCapacity === 'number')
436
+ async saveManyEvents(params) {
437
+ const bulkWriteOps = [];
438
+ if (Array.isArray(params)) {
439
+ params.forEach((p) => {
440
+ const upsert = p.upsert === true;
441
+ if (p.attributes.typeOf === factory.eventType.ScreeningEvent) {
442
+ // 上書き禁止属性を除外(2022-08-24~)
443
+ const { identifier, project, typeOf, remainingAttendeeCapacity, ...updateFields } = p.attributes;
444
+ bulkWriteOps.push({
445
+ updateOne: {
446
+ filter: {
447
+ _id: p.id,
448
+ typeOf: p.attributes.typeOf
449
+ },
450
+ update: {
451
+ $setOnInsert: {
452
+ typeOf: p.attributes.typeOf,
453
+ project: p.attributes.project,
454
+ ...(typeof p.attributes.identifier === 'string')
455
+ ? { identifier: p.attributes.identifier } : undefined,
456
+ ...(typeof p.attributes.remainingAttendeeCapacity === 'number')
464
457
  ? { remainingAttendeeCapacity: p.attributes.remainingAttendeeCapacity }
465
- : undefined), $set: updateFields }, (p.$unset !== undefined) ? { $unset: p.$unset } : undefined),
466
- upsert
467
- }
468
- });
469
- }
470
- else if (p.attributes.typeOf === factory.eventType.ScreeningEventSeries) {
471
- throw new factory.errors.Internal('typeOf: ScreeningEventSeries discontinued');
472
- }
473
- });
474
- }
475
- if (bulkWriteOps.length > 0) {
476
- yield this.eventModel.bulkWrite(bulkWriteOps, { ordered: false });
477
- }
478
- });
479
- }
480
- /**
481
- * tttsイベントを識別子によって冪等作成する
482
- */
483
- saveEventByIdentifier4ttts(params) {
484
- return __awaiter(this, void 0, void 0, function* () {
485
- // const { oldEventId } = params;
486
- const _a = params.attributes, { project, typeOf, eventStatus, identifier, organizer } = _a, updateFields = __rest(_a, ["project", "typeOf", "eventStatus", "identifier", "organizer"]);
487
- // const identifier = oldEventId;
488
- if (typeof identifier !== 'string' || identifier.length === 0) {
489
- throw new factory.errors.ArgumentNull('identifier');
490
- }
491
- const id = EventRepo.CREATE_ID();
492
- const doc = yield this.eventModel.findOneAndUpdate(
493
- // 全イベントにidentifierを保証したので、additionalPropertyによるフィルターからidentifierによるフィルターへ変更(2025-09-05~)
494
- // {
495
- // 'project.id': { $eq: project.id },
496
- // typeOf: { $eq: typeOf },
497
- // // 追加特性をキーに更新
498
- // additionalProperty: {
499
- // $exists: true,
500
- // $all: [{ name: 'oldEventId', value: identifier }]
501
- // }
502
- // },
503
- {
504
- 'project.id': { $eq: project.id },
505
- identifier: { $exists: true, $eq: identifier }
506
- },
507
- // upsertの場合、createがありうるので属性を除外しない
508
- {
509
- $setOnInsert: {
510
- _id: id,
511
- typeOf,
512
- project,
513
- eventStatus,
514
- organizer,
515
- identifier // イベントコードを必ず追加(2025-09-03~)
516
- // ...(typeof identifier === 'string' && identifier !== '') ? { identifier } : undefined
517
- },
518
- $set: updateFields
519
- }, { upsert: true, new: true, projection: { _id: 1 } })
520
- .lean()
521
- .exec();
522
- if (doc === null) {
523
- throw new factory.errors.NotFound(this.eventModel.modelName);
524
- }
525
- return { id: doc._id }; // optimize(2024-07-31~)
526
- });
458
+ : undefined
459
+ },
460
+ $set: updateFields,
461
+ // $unsetに対応(2022-08-31~)
462
+ ...(p.$unset !== undefined) ? { $unset: p.$unset } : undefined
463
+ },
464
+ upsert
465
+ }
466
+ });
467
+ }
468
+ else if (p.attributes.typeOf === factory.eventType.ScreeningEventSeries) {
469
+ throw new factory.errors.Internal('typeOf: ScreeningEventSeries discontinued');
470
+ }
471
+ });
472
+ }
473
+ if (bulkWriteOps.length > 0) {
474
+ await this.eventModel.bulkWrite(bulkWriteOps, { ordered: false });
475
+ }
527
476
  }
477
+ // /**
478
+ // * tttsイベントを識別子によって冪等作成する
479
+ // */
480
+ // public async saveEventByIdentifier4ttts(params: {
481
+ // // oldEventId: string;
482
+ // attributes: ICreatingEvent4ttts;
483
+ // }): Promise<{ id: string }> {
484
+ // // const { oldEventId } = params;
485
+ // const { project, typeOf, eventStatus, identifier, organizer, ...updateFields } = params.attributes;
486
+ // // const identifier = oldEventId;
487
+ // if (typeof identifier !== 'string' || identifier.length === 0) {
488
+ // throw new factory.errors.ArgumentNull('identifier');
489
+ // }
490
+ // const id = EventRepo.CREATE_ID();
491
+ // const doc = await this.eventModel.findOneAndUpdate(
492
+ // {
493
+ // 'project.id': { $eq: project.id },
494
+ // identifier: { $exists: true, $eq: identifier }
495
+ // },
496
+ // // upsertの場合、createがありうるので属性を除外しない
497
+ // {
498
+ // $setOnInsert: {
499
+ // _id: id,
500
+ // typeOf,
501
+ // project,
502
+ // eventStatus,
503
+ // organizer,
504
+ // identifier // イベントコードを必ず追加(2025-09-03~)
505
+ // // ...(typeof identifier === 'string' && identifier !== '') ? { identifier } : undefined
506
+ // },
507
+ // $set: updateFields
508
+ // },
509
+ // { upsert: true, new: true, projection: { _id: 1 } }
510
+ // )
511
+ // .lean<{ _id: string }>()
512
+ // .exec();
513
+ // if (doc === null) {
514
+ // throw new factory.errors.NotFound(this.eventModel.modelName);
515
+ // }
516
+ // return { id: doc._id }; // optimize(2024-07-31~)
517
+ // }
528
518
  /**
529
519
  * イベントを検索する(inclusion projection)
530
520
  */
531
- projectEventFields(params, inclusion) {
532
- return __awaiter(this, void 0, void 0, function* () {
533
- var _a;
534
- const conditions = EventRepo.CREATE_MONGO_CONDITIONS(params);
535
- let projection;
536
- const positiveProjectionFields = (Array.isArray(inclusion))
537
- ? inclusion.filter((key) => String(key) !== 'id' && String(key) !== '_id')
538
- : [];
539
- if (Array.isArray(inclusion) && inclusion.length > 0) {
540
- projection = Object.assign(Object.assign({}, Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))), { _id: 0, id: { $toString: '$_id' } });
541
- }
542
- else {
543
- // discontinue(2024-07-24~)
544
- throw new factory.errors.ArgumentNull('inclusion', 'inclusion must be specified');
545
- }
546
- const query = this.eventModel.find({ $and: conditions }, projection);
547
- if (typeof params.limit === 'number' && params.limit > 0) {
548
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
549
- query.limit(params.limit)
550
- .skip(params.limit * (page - 1));
551
- }
552
- // tslint:disable-next-line:no-single-line-block-comment
553
- /* istanbul ignore else */
554
- if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.startDate) !== undefined) {
555
- query.sort({ startDate: params.sort.startDate });
556
- }
557
- // const explainResult = await query.explain()
558
- // .exec();
559
- // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
560
- // console.log(explainResult[0].executionStats.allPlansExecution);
561
- // console.log(explainResult[0].queryPlanner?.winningPlan);
562
- // console.log(explainResult[0].queryPlanner?.winningPlan?.inputStage?.inputStage?.inputStage);
563
- // console.log(explainResult);
564
- // return [];
565
- return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
566
- .lean() // lean(2024-08-01~)
567
- .exec();
568
- });
521
+ async projectEventFields(params, inclusion) {
522
+ const conditions = EventRepo.CREATE_MONGO_CONDITIONS(params);
523
+ let projection;
524
+ const positiveProjectionFields = (Array.isArray(inclusion))
525
+ ? inclusion.filter((key) => String(key) !== 'id' && String(key) !== '_id')
526
+ : [];
527
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
528
+ projection = {
529
+ ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1]))),
530
+ _id: 0, // hide _id(2024-08-01~)
531
+ id: { $toString: '$_id' }
532
+ };
533
+ }
534
+ else {
535
+ // discontinue(2024-07-24~)
536
+ throw new factory.errors.ArgumentNull('inclusion', 'inclusion must be specified');
537
+ }
538
+ const query = this.eventModel.find({ $and: conditions }, projection);
539
+ if (typeof params.limit === 'number' && params.limit > 0) {
540
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
541
+ query.limit(params.limit)
542
+ .skip(params.limit * (page - 1));
543
+ }
544
+ // tslint:disable-next-line:no-single-line-block-comment
545
+ /* istanbul ignore else */
546
+ if (params.sort?.startDate !== undefined) {
547
+ query.sort({ startDate: params.sort.startDate });
548
+ }
549
+ // const explainResult = await query.explain()
550
+ // .exec();
551
+ // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
552
+ // console.log(explainResult[0].executionStats.allPlansExecution);
553
+ // console.log(explainResult[0].queryPlanner?.winningPlan);
554
+ // console.log(explainResult[0].queryPlanner?.winningPlan?.inputStage?.inputStage?.inputStage);
555
+ // console.log(explainResult);
556
+ // return [];
557
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
558
+ .lean() // lean(2024-08-01~)
559
+ .exec();
569
560
  }
570
- findByAdditionalProperty(params) {
571
- return __awaiter(this, void 0, void 0, function* () {
572
- const query = this.eventModel.find({
573
- 'project.id': { $eq: params.project.id },
574
- additionalProperty: { $eq: params.additionalProperty }
575
- }, { _id: 1 });
576
- // if (typeof params.limit === 'number' && params.limit > 0) {
577
- // const page: number = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
578
- // query.limit(params.limit)
579
- // .skip(params.limit * (page - 1));
580
- // }
581
- return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
582
- .lean()
583
- .exec();
584
- });
561
+ async findByAdditionalProperty(params) {
562
+ const query = this.eventModel.find({
563
+ 'project.id': { $eq: params.project.id },
564
+ additionalProperty: { $eq: params.additionalProperty }
565
+ }, { _id: 1 });
566
+ // if (typeof params.limit === 'number' && params.limit > 0) {
567
+ // const page: number = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
568
+ // query.limit(params.limit)
569
+ // .skip(params.limit * (page - 1));
570
+ // }
571
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
572
+ .lean()
573
+ .exec();
585
574
  }
586
575
  /**
587
576
  * apiで公開属性を検索する(2024-10-13~)
588
577
  */
589
- aggregatePublicFields(params, inclusion, options) {
590
- return __awaiter(this, void 0, void 0, function* () {
591
- var _a, _b;
592
- const { includeOffers, includeSellerMakesOffer, sellerMakesOfferAvailableAtIn } = options;
593
- const conditions = EventRepo.CREATE_MONGO_CONDITIONS(params);
594
- let projection;
595
- let positiveProjectionFields;
596
- if (Array.isArray(inclusion) && inclusion.length > 0) {
597
- positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PUBLIC_PROJECT_FIELDS.includes(key));
598
- projection = Object.assign({ _id: 0, id: { $toString: '$_id' } }, Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1]))));
599
- if (includeOffers) {
600
- projection = Object.assign(Object.assign(Object.assign({}, projection), { 'offers.typeOf': 1, 'offers.eligibleQuantity': 1, 'offers.itemOffered': 1, 'offers.identifier': 1, 'offers.offeredThrough': 1, 'offers.unacceptedPaymentMethod': 1, 'offers.seller.typeOf': 1, 'offers.seller.id': 1, 'offers.seller.name': 1 }), (includeSellerMakesOffer)
601
- ? Object.assign({}, (Array.isArray(sellerMakesOfferAvailableAtIn))
602
- ? {
603
- 'offers.seller.makesOffer': {
604
- $filter: {
605
- input: '$offers.seller.makesOffer',
606
- as: 'sellerMakesOffer',
607
- cond: { $in: ['$$sellerMakesOffer.availableAtOrFrom.id', sellerMakesOfferAvailableAtIn] }
578
+ async aggregatePublicFields(params, inclusion, options) {
579
+ const { includeOffers, includeSellerMakesOffer, sellerMakesOfferAvailableAtIn } = options;
580
+ const conditions = EventRepo.CREATE_MONGO_CONDITIONS(params);
581
+ let projection;
582
+ let positiveProjectionFields;
583
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
584
+ positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PUBLIC_PROJECT_FIELDS.includes(key));
585
+ projection = {
586
+ _id: 0,
587
+ id: { $toString: '$_id' },
588
+ ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
589
+ };
590
+ if (includeOffers) {
591
+ projection = {
592
+ ...projection,
593
+ 'offers.typeOf': 1,
594
+ 'offers.eligibleQuantity': 1,
595
+ 'offers.itemOffered': 1,
596
+ 'offers.identifier': 1, // support オファーコレクションコード(2025-09-29~)
597
+ 'offers.offeredThrough': 1,
598
+ 'offers.unacceptedPaymentMethod': 1,
599
+ 'offers.seller.typeOf': 1,
600
+ 'offers.seller.id': 1,
601
+ 'offers.seller.name': 1,
602
+ ...(includeSellerMakesOffer)
603
+ ? {
604
+ ...(Array.isArray(sellerMakesOfferAvailableAtIn))
605
+ ? {
606
+ 'offers.seller.makesOffer': {
607
+ $filter: {
608
+ input: '$offers.seller.makesOffer',
609
+ as: 'sellerMakesOffer',
610
+ cond: { $in: ['$$sellerMakesOffer.availableAtOrFrom.id', sellerMakesOfferAvailableAtIn] }
611
+ }
608
612
  }
609
613
  }
610
- }
611
- : { 'offers.seller.makesOffer': 1 }) : undefined);
612
- }
613
- }
614
- else {
615
- // discontinue(2024-07-24~)
616
- throw new factory.errors.ArgumentNull('inclusion', 'inclusion must be specified');
617
- }
618
- const aggregate = this.eventModel.aggregate([
619
- { $match: { $and: conditions } },
620
- ...(((_a = params.sort) === null || _a === void 0 ? void 0 : _a.startDate) !== undefined)
621
- ? [{ $sort: { startDate: params.sort.startDate } }]
622
- : [],
623
- { $project: projection }
624
- ]);
625
- if (typeof params.limit === 'number' && params.limit > 0) {
626
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
627
- aggregate.limit(params.limit * page)
628
- .skip(params.limit * (page - 1));
629
- }
630
- // tslint:disable-next-line:no-single-line-block-comment
631
- /* istanbul ignore else */
632
- if (((_b = params.sort) === null || _b === void 0 ? void 0 : _b.startDate) !== undefined) {
633
- aggregate.sort({ startDate: params.sort.startDate });
614
+ : { 'offers.seller.makesOffer': 1 }
615
+ }
616
+ : undefined
617
+ };
634
618
  }
635
- return aggregate
636
- .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
637
- .exec();
638
- });
619
+ }
620
+ else {
621
+ // discontinue(2024-07-24~)
622
+ throw new factory.errors.ArgumentNull('inclusion', 'inclusion must be specified');
623
+ }
624
+ const aggregate = this.eventModel.aggregate([
625
+ { $match: { $and: conditions } },
626
+ ...(params.sort?.startDate !== undefined)
627
+ ? [{ $sort: { startDate: params.sort.startDate } }]
628
+ : [],
629
+ { $project: projection }
630
+ ]);
631
+ if (typeof params.limit === 'number' && params.limit > 0) {
632
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
633
+ aggregate.limit(params.limit * page)
634
+ .skip(params.limit * (page - 1));
635
+ }
636
+ // tslint:disable-next-line:no-single-line-block-comment
637
+ /* istanbul ignore else */
638
+ if (params.sort?.startDate !== undefined) {
639
+ aggregate.sort({ startDate: params.sort.startDate });
640
+ }
641
+ return aggregate
642
+ .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
643
+ .exec();
639
644
  }
640
645
  /**
641
646
  * IDのみで検索する
642
647
  * projectionなし
643
648
  */
644
- findAnyEventById(params) {
645
- return __awaiter(this, void 0, void 0, function* () {
646
- var _a;
647
- const doc = yield this.eventModel.findOne(Object.assign({ _id: { $eq: params.id.$eq }, 'project.id': { $eq: params.project.id.$eq }, typeOf: { $in: [factory.eventType.ScreeningEvent] } }, (typeof ((_a = params.organizer) === null || _a === void 0 ? void 0 : _a.id.$eq) === 'string')
649
+ async findAnyEventById(params) {
650
+ const doc = await this.eventModel.findOne({
651
+ _id: { $eq: params.id.$eq },
652
+ 'project.id': { $eq: params.project.id.$eq },
653
+ typeOf: { $in: [factory.eventType.ScreeningEvent] },
654
+ ...(typeof params.organizer?.id.$eq === 'string')
648
655
  ? { 'organizer.id': { $exists: true, $eq: params.organizer.id.$eq } }
649
- : undefined), {
650
- __v: 0,
651
- createdAt: 0,
652
- updatedAt: 0,
653
- // DefaultでaggregateEntranceGateを取得しない(2023-01-25~)
654
- aggregateEntranceGate: 0,
655
- // DefaultでaggregateOfferを取得しない(2023-01-24~)
656
- aggregateOffer: 0
657
- })
658
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
659
- .exec();
660
- if (doc === null) {
661
- throw new factory.errors.NotFound('Event');
662
- }
663
- return doc.toObject();
664
- });
656
+ : undefined
657
+ }, {
658
+ __v: 0,
659
+ createdAt: 0,
660
+ updatedAt: 0,
661
+ // DefaultでaggregateEntranceGateを取得しない(2023-01-25~)
662
+ aggregateEntranceGate: 0,
663
+ // DefaultでaggregateOfferを取得しない(2023-01-24~)
664
+ aggregateOffer: 0
665
+ })
666
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
667
+ .exec();
668
+ if (doc === null) {
669
+ throw new factory.errors.NotFound('Event');
670
+ }
671
+ return doc.toObject();
665
672
  }
666
- searchEventIds(params) {
667
- return __awaiter(this, void 0, void 0, function* () {
668
- const conditions = EventRepo.CREATE_MONGO_CONDITIONS(params);
669
- const query = this.eventModel.distinct('_id', { $and: conditions });
670
- return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
671
- .exec();
672
- });
673
+ async searchEventIds(params) {
674
+ const conditions = EventRepo.CREATE_MONGO_CONDITIONS(params);
675
+ const query = this.eventModel.distinct('_id', { $and: conditions });
676
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
677
+ .exec();
673
678
  }
674
679
  /**
675
680
  * 特定イベントから指定フィールドのみ取得する
676
681
  * イベント IDは必ず返ります
677
682
  */
678
- projectEventFieldsById(params, inclusion // add projection(2024-07-18~)
683
+ async projectEventFieldsById(params, inclusion // add projection(2024-07-18~)
679
684
  ) {
680
- return __awaiter(this, void 0, void 0, function* () {
681
- const projection = {
682
- _id: 0,
683
- id: { $toString: '$_id' }
684
- };
685
- if (Array.isArray(inclusion) && inclusion.length > 0) {
686
- inclusion.forEach((field) => {
687
- if (String(field) !== '_id' && String(field) !== 'id') {
688
- projection[field] = 1;
689
- }
690
- });
691
- }
692
- else {
693
- // discontinue(2024-07-24~)
694
- throw new factory.errors.ArgumentNull('inclusion', 'inclusion must be specified');
695
- // projection = PROJECTION_MINIMIZED_EVENT;
696
- }
697
- const doc = yield this.eventModel.findOne({ _id: { $eq: params.id } }, projection)
698
- .lean() // lean(2024-07-24~)
699
- .exec();
700
- if (doc === null) {
701
- throw new factory.errors.NotFound(this.eventModel.modelName);
702
- }
703
- return doc;
704
- });
685
+ const projection = {
686
+ _id: 0,
687
+ id: { $toString: '$_id' }
688
+ };
689
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
690
+ inclusion.forEach((field) => {
691
+ if (String(field) !== '_id' && String(field) !== 'id') {
692
+ projection[field] = 1;
693
+ }
694
+ });
695
+ }
696
+ else {
697
+ // discontinue(2024-07-24~)
698
+ throw new factory.errors.ArgumentNull('inclusion', 'inclusion must be specified');
699
+ // projection = PROJECTION_MINIMIZED_EVENT;
700
+ }
701
+ const doc = await this.eventModel.findOne({ _id: { $eq: params.id } }, projection)
702
+ .lean() // lean(2024-07-24~)
703
+ .exec();
704
+ if (doc === null) {
705
+ throw new factory.errors.NotFound(this.eventModel.modelName);
706
+ }
707
+ return doc;
705
708
  }
706
709
  /**
707
710
  * イベントをキャンセルする
708
711
  */
709
- cancelEvent(params) {
710
- return __awaiter(this, void 0, void 0, function* () {
711
- return this.eventModel.updateOne({
712
- _id: { $eq: params.id },
713
- 'project.id': { $eq: params.project.id }
714
- }, { $set: { eventStatus: factory.eventStatusType.EventCancelled } }, { includeResultMetadata: true })
715
- .exec();
716
- });
712
+ async cancelEvent(params) {
713
+ return this.eventModel.updateOne({
714
+ _id: { $eq: params.id },
715
+ 'project.id': { $eq: params.project.id }
716
+ }, { $set: { eventStatus: factory.eventStatusType.EventCancelled } }, { includeResultMetadata: true })
717
+ .exec();
717
718
  }
718
719
  /**
719
720
  * 興行イベントのsuperEventを最新の情報に同期する
720
721
  */
721
- syncScreeningEventSeries2screeningEvents(params) {
722
- return __awaiter(this, void 0, void 0, function* () {
723
- const superEvent = EventFactory.minimizeSuperEvent({ superEventFromDB: params.superEventFromDB });
724
- yield this.eventModel.updateMany({
725
- typeOf: { $eq: factory.eventType.ScreeningEvent },
726
- 'project.id': { $eq: params.project.id },
727
- 'superEvent.id': { $exists: true, $eq: params.superEventFromDB.id },
728
- startDate: { $gte: params.startDate.$gte }
729
- }, {
730
- $set: {
731
- superEvent
732
- }
733
- })
734
- .exec();
735
- });
722
+ async syncScreeningEventSeries2screeningEvents(params) {
723
+ const superEvent = EventFactory.minimizeSuperEvent({ superEventFromDB: params.superEventFromDB });
724
+ await this.eventModel.updateMany({
725
+ typeOf: { $eq: factory.eventType.ScreeningEvent },
726
+ 'project.id': { $eq: params.project.id },
727
+ 'superEvent.id': { $exists: true, $eq: params.superEventFromDB.id },
728
+ startDate: { $gte: params.startDate.$gte }
729
+ }, {
730
+ $set: {
731
+ superEvent
732
+ }
733
+ })
734
+ .exec();
736
735
  }
737
- deleteEventById(params) {
738
- return __awaiter(this, void 0, void 0, function* () {
739
- yield this.eventModel.findOneAndDelete({
740
- _id: params.id,
741
- 'project.id': { $eq: params.project.id }
742
- })
743
- .exec();
744
- });
736
+ async deleteEventById(params) {
737
+ await this.eventModel.findOneAndDelete({
738
+ _id: params.id,
739
+ 'project.id': { $eq: params.project.id }
740
+ })
741
+ .exec();
745
742
  }
746
- deleteManyEventByOrganizerId(params) {
747
- return __awaiter(this, void 0, void 0, function* () {
748
- return this.eventModel.deleteMany({
749
- 'project.id': { $eq: params.project.id },
750
- 'organizer.id': { $exists: true, $eq: params.organizer.id }
751
- })
752
- .exec();
753
- });
743
+ async deleteManyEventByOrganizerId(params) {
744
+ return this.eventModel.deleteMany({
745
+ 'project.id': { $eq: params.project.id },
746
+ 'organizer.id': { $exists: true, $eq: params.organizer.id }
747
+ })
748
+ .exec();
754
749
  }
755
- deleteManyEventsByScreeningRoom(params) {
756
- return __awaiter(this, void 0, void 0, function* () {
757
- return this.eventModel.deleteMany({
758
- 'project.id': { $eq: params.project.id },
759
- 'location.branchCode': { $exists: true, $eq: params.location.branchCode },
760
- 'superEvent.location.id': { $exists: true, $eq: params.location.containedInPlace.id }
761
- })
762
- .exec();
763
- });
750
+ async deleteManyEventsByScreeningRoom(params) {
751
+ return this.eventModel.deleteMany({
752
+ 'project.id': { $eq: params.project.id },
753
+ 'location.branchCode': { $exists: true, $eq: params.location.branchCode },
754
+ 'superEvent.location.id': { $exists: true, $eq: params.location.containedInPlace.id }
755
+ })
756
+ .exec();
764
757
  }
765
- deleteManyBySuperEventId(params) {
766
- return __awaiter(this, void 0, void 0, function* () {
767
- return this.eventModel.deleteMany({
768
- 'project.id': { $eq: params.project.id },
769
- 'superEvent.id': { $exists: true, $eq: params.superEvent.id }
770
- })
771
- .exec();
772
- });
758
+ async deleteManyBySuperEventId(params) {
759
+ return this.eventModel.deleteMany({
760
+ 'project.id': { $eq: params.project.id },
761
+ 'superEvent.id': { $exists: true, $eq: params.superEvent.id }
762
+ })
763
+ .exec();
773
764
  }
774
- deleteManyBySuperEventLocationId(params) {
775
- return __awaiter(this, void 0, void 0, function* () {
776
- return this.eventModel.deleteMany({
777
- 'project.id': { $eq: params.project.id },
778
- 'superEvent.location.id': { $exists: true, $eq: params.superEvent.location.id }
779
- })
780
- .exec();
781
- });
765
+ async deleteManyBySuperEventLocationId(params) {
766
+ return this.eventModel.deleteMany({
767
+ 'project.id': { $eq: params.project.id },
768
+ 'superEvent.location.id': { $exists: true, $eq: params.superEvent.location.id }
769
+ })
770
+ .exec();
782
771
  }
783
772
  /**
784
773
  * 興行(プロダクト)から削除する
785
774
  */
786
- deleteManyEventsByItemOfferedId(params) {
787
- return __awaiter(this, void 0, void 0, function* () {
788
- return this.eventModel.deleteMany({
789
- 'project.id': { $eq: params.project.id },
790
- 'offers.itemOffered.id': { $exists: true, $in: params.offers.itemOffered.id.$in }
791
- })
792
- .exec();
793
- });
775
+ async deleteManyEventsByItemOfferedId(params) {
776
+ return this.eventModel.deleteMany({
777
+ 'project.id': { $eq: params.project.id },
778
+ 'offers.itemOffered.id': { $exists: true, $in: params.offers.itemOffered.id.$in }
779
+ })
780
+ .exec();
794
781
  }
795
- deleteManyEventsEndedByProject(params) {
796
- return __awaiter(this, void 0, void 0, function* () {
797
- return this.eventModel.deleteMany({
798
- typeOf: { $in: params.typeOf.$in },
799
- 'project.id': { $eq: params.project.id },
800
- endDate: { $lte: params.endDate.$lte }
801
- })
802
- .exec();
803
- });
782
+ async deleteManyEventsEndedByProject(params) {
783
+ return this.eventModel.deleteMany({
784
+ typeOf: { $in: params.typeOf.$in },
785
+ 'project.id': { $eq: params.project.id },
786
+ endDate: { $lte: params.endDate.$lte }
787
+ })
788
+ .exec();
804
789
  }
805
- deleteManyEventsEnded(params) {
806
- return __awaiter(this, void 0, void 0, function* () {
807
- return this.eventModel.deleteMany({
808
- typeOf: { $eq: params.typeOf.$eq },
809
- endDate: { $lte: params.endDate.$lte }
810
- })
811
- .exec();
812
- });
790
+ async deleteManyEventsEnded(params) {
791
+ return this.eventModel.deleteMany({
792
+ typeOf: { $eq: params.typeOf.$eq },
793
+ endDate: { $lte: params.endDate.$lte }
794
+ })
795
+ .exec();
813
796
  }
814
- deleteByProject(params) {
815
- return __awaiter(this, void 0, void 0, function* () {
816
- yield this.eventModel.deleteMany({
817
- 'project.id': { $eq: params.project.id }
818
- })
819
- .exec();
820
- });
797
+ async deleteByProject(params) {
798
+ await this.eventModel.deleteMany({
799
+ 'project.id': { $eq: params.project.id }
800
+ })
801
+ .exec();
821
802
  }
822
803
  /**
823
804
  * 集計属性を更新する
824
805
  */
825
- updateAggregationById(params, update) {
826
- return __awaiter(this, void 0, void 0, function* () {
827
- const doc = yield this.eventModel.findOneAndUpdate({ _id: { $eq: params.id } }, update, {
828
- new: false,
829
- projection: { _id: 1 }
830
- })
831
- .lean()
832
- .exec();
833
- if (doc === null) {
834
- throw new factory.errors.NotFound(this.eventModel.modelName);
835
- }
836
- });
806
+ async updateAggregationById(params, update) {
807
+ const doc = await this.eventModel.findOneAndUpdate({ _id: { $eq: params.id } }, update, {
808
+ new: false,
809
+ projection: { _id: 1 }
810
+ })
811
+ .lean()
812
+ .exec();
813
+ if (doc === null) {
814
+ throw new factory.errors.NotFound(this.eventModel.modelName);
815
+ }
837
816
  }
838
- bulkWrite(bulkWriteOps) {
839
- return __awaiter(this, void 0, void 0, function* () {
840
- return this.eventModel.bulkWrite(bulkWriteOps, { ordered: false });
841
- });
817
+ async bulkWrite(bulkWriteOps) {
818
+ return this.eventModel.bulkWrite(bulkWriteOps, { ordered: false });
842
819
  }
843
820
  getCursor(conditions, projection) {
844
821
  return this.eventModel.find(conditions, projection)
845
822
  .sort({ startDate: factory.sortType.Descending })
846
823
  .cursor();
847
824
  }
848
- addAvailableAtOrFrom(params) {
849
- return __awaiter(this, void 0, void 0, function* () {
850
- yield this.eventModel.updateOne({ _id: { $eq: params.id } }, {
851
- $push: {
852
- 'offers.seller.makesOffer': params.offers.seller.makesOffer
853
- }
854
- }, { includeResultMetadata: true })
855
- .exec();
856
- });
825
+ async addAvailableAtOrFrom(params) {
826
+ await this.eventModel.updateOne({ _id: { $eq: params.id } }, {
827
+ $push: {
828
+ 'offers.seller.makesOffer': params.offers.seller.makesOffer
829
+ }
830
+ }, { includeResultMetadata: true })
831
+ .exec();
857
832
  }
858
- unsetUnnecessaryFields(params) {
859
- return __awaiter(this, void 0, void 0, function* () {
860
- return this.eventModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
861
- .exec();
862
- });
833
+ async unsetUnnecessaryFields(params) {
834
+ return this.eventModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
835
+ .exec();
863
836
  }
864
- aggregateEvent(params) {
865
- return __awaiter(this, void 0, void 0, function* () {
866
- const statuses = yield Promise.all([
867
- factory.eventStatusType.EventScheduled,
868
- factory.eventStatusType.EventCancelled,
869
- factory.eventStatusType.EventPostponed
870
- ].map((eventStatus) => __awaiter(this, void 0, void 0, function* () {
871
- var _a, _b;
872
- const matchConditions = Object.assign({ startDate: {
873
- $gte: params.startFrom,
874
- $lte: params.startThrough
875
- }, typeOf: { $eq: params.typeOf }, eventStatus: { $eq: eventStatus } }, (typeof ((_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$ne) === 'string')
837
+ async aggregateEvent(params) {
838
+ const statuses = await Promise.all([
839
+ factory.eventStatusType.EventScheduled,
840
+ factory.eventStatusType.EventCancelled,
841
+ factory.eventStatusType.EventPostponed
842
+ ].map(async (eventStatus) => {
843
+ const matchConditions = {
844
+ startDate: {
845
+ $gte: params.startFrom,
846
+ $lte: params.startThrough
847
+ },
848
+ typeOf: { $eq: params.typeOf },
849
+ eventStatus: { $eq: eventStatus },
850
+ ...(typeof params.project?.id?.$ne === 'string')
876
851
  ? { 'project.id': { $ne: params.project.id.$ne } }
877
- : undefined);
878
- return this.agggregateByStatus({ matchConditions, status: eventStatus });
879
- })));
880
- return { statuses };
881
- });
852
+ : undefined
853
+ };
854
+ return this.agggregateByStatus({ matchConditions, status: eventStatus });
855
+ }));
856
+ return { statuses };
882
857
  }
883
858
  // tslint:disable-next-line:max-func-body-length
884
- agggregateByStatus(params) {
885
- return __awaiter(this, void 0, void 0, function* () {
886
- const matchConditions = params.matchConditions;
887
- const eventStatus = params.status;
888
- const aggregations = yield this.eventModel.aggregate([
889
- {
890
- $match: matchConditions
891
- },
892
- {
893
- $project: {
894
- remainingCapacityRate: {
895
- $cond: {
896
- if: {
897
- $and: [
898
- { $isNumber: '$maximumAttendeeCapacity' },
899
- { $isNumber: '$remainingAttendeeCapacity' }
900
- ]
901
- },
902
- then: {
903
- $cond: {
904
- if: { $gt: ['$maximumAttendeeCapacity', 0] },
905
- then: {
906
- $multiply: [
907
- { $divide: ['$remainingAttendeeCapacity', '$maximumAttendeeCapacity'] },
908
- // tslint:disable-next-line:no-magic-numbers
909
- 100
910
- ]
911
- },
912
- else: 0
913
- }
914
- },
915
- else: 0
916
- }
917
- },
918
- eventStatus: '$eventStatus',
919
- startDate: '$startDate',
920
- endDate: '$endDate',
921
- typeOf: '$typeOf',
922
- maximumAttendeeCapacity: {
923
- $cond: {
924
- if: { $isNumber: '$maximumAttendeeCapacity' },
925
- then: '$maximumAttendeeCapacity',
926
- else: 0
927
- }
928
- },
929
- remainingAttendeeCapacity: {
930
- $cond: {
931
- if: { $isNumber: '$remainingAttendeeCapacity' },
932
- then: '$remainingAttendeeCapacity',
933
- else: 0
934
- }
935
- },
936
- reservationCount: {
937
- $cond: {
938
- if: { $isNumber: '$aggregateReservation.reservationCount' },
939
- then: '$aggregateReservation.reservationCount',
940
- else: 0
941
- }
942
- },
943
- offerCount: {
944
- $cond: {
945
- if: { $isNumber: '$aggregateOffer.offerCount' },
946
- then: '$aggregateOffer.offerCount',
947
- else: 0
948
- }
859
+ async agggregateByStatus(params) {
860
+ const matchConditions = params.matchConditions;
861
+ const eventStatus = params.status;
862
+ const aggregations = await this.eventModel.aggregate([
863
+ {
864
+ $match: matchConditions
865
+ },
866
+ {
867
+ $project: {
868
+ remainingCapacityRate: {
869
+ $cond: {
870
+ if: {
871
+ $and: [
872
+ { $isNumber: '$maximumAttendeeCapacity' },
873
+ { $isNumber: '$remainingAttendeeCapacity' }
874
+ ]
875
+ },
876
+ then: {
877
+ $cond: {
878
+ if: { $gt: ['$maximumAttendeeCapacity', 0] },
879
+ then: {
880
+ $multiply: [
881
+ { $divide: ['$remainingAttendeeCapacity', '$maximumAttendeeCapacity'] },
882
+ // tslint:disable-next-line:no-magic-numbers
883
+ 100
884
+ ]
885
+ },
886
+ else: 0
887
+ }
888
+ },
889
+ else: 0
890
+ }
891
+ },
892
+ eventStatus: '$eventStatus',
893
+ startDate: '$startDate',
894
+ endDate: '$endDate',
895
+ typeOf: '$typeOf',
896
+ maximumAttendeeCapacity: {
897
+ $cond: {
898
+ if: { $isNumber: '$maximumAttendeeCapacity' },
899
+ then: '$maximumAttendeeCapacity',
900
+ else: 0
901
+ }
902
+ },
903
+ remainingAttendeeCapacity: {
904
+ $cond: {
905
+ if: { $isNumber: '$remainingAttendeeCapacity' },
906
+ then: '$remainingAttendeeCapacity',
907
+ else: 0
908
+ }
909
+ },
910
+ reservationCount: {
911
+ $cond: {
912
+ if: { $isNumber: '$aggregateReservation.reservationCount' },
913
+ then: '$aggregateReservation.reservationCount',
914
+ else: 0
915
+ }
916
+ },
917
+ offerCount: {
918
+ $cond: {
919
+ if: { $isNumber: '$aggregateOffer.offerCount' },
920
+ then: '$aggregateOffer.offerCount',
921
+ else: 0
949
922
  }
950
- }
951
- },
952
- {
953
- $group: {
954
- _id: '$typeOf',
955
- eventCount: { $sum: 1 },
956
- reservationCount: { $sum: '$reservationCount' },
957
- avgOfferCount: { $avg: '$offerCount' },
958
- maximumAttendeeCapacity: { $sum: '$maximumAttendeeCapacity' },
959
- remainingAttendeeCapacity: { $sum: '$remainingAttendeeCapacity' },
960
- avgRemainingCapacityRate: { $avg: '$remainingCapacityRate' },
961
- maxRemainingCapacityRate: { $max: '$remainingCapacityRate' },
962
- minRemainingCapacityRate: { $min: '$remainingCapacityRate' }
963
- }
964
- },
965
- {
966
- $project: {
967
- _id: 0,
968
- eventCount: '$eventCount',
969
- reservationCount: '$reservationCount',
970
- avgOfferCount: '$avgOfferCount',
971
- maximumAttendeeCapacity: '$maximumAttendeeCapacity',
972
- remainingAttendeeCapacity: '$remainingAttendeeCapacity',
973
- avgRemainingCapacityRate: '$avgRemainingCapacityRate',
974
- maxRemainingCapacityRate: '$maxRemainingCapacityRate',
975
- minRemainingCapacityRate: '$minRemainingCapacityRate'
976
923
  }
977
924
  }
978
- ])
979
- .exec();
980
- // tslint:disable-next-line:no-magic-numbers
981
- const percents = [50, 95, 99];
982
- if (aggregations.length === 0) {
983
- return {
984
- status: eventStatus,
985
- aggregation: {
986
- eventCount: 0,
987
- reservationCount: 0,
988
- avgOfferCount: 0,
989
- maximumAttendeeCapacity: 0,
990
- remainingAttendeeCapacity: 0,
991
- avgRemainingCapacityRate: 0,
992
- maxRemainingCapacityRate: 0,
993
- minRemainingCapacityRate: 0,
994
- percentilesRemainingCapacityRate: percents.map((percent) => {
995
- return {
996
- name: String(percent),
997
- value: 0
998
- };
999
- })
1000
- }
1001
- };
1002
- }
1003
- const ranks4percentile = percents.map((percentile) => {
1004
- return {
1005
- percentile,
1006
- // tslint:disable-next-line:no-magic-numbers
1007
- rank: Math.floor(aggregations[0].eventCount * percentile / 100)
1008
- };
1009
- });
1010
- const aggregations2 = yield this.eventModel.aggregate([
1011
- {
1012
- $match: matchConditions
1013
- },
1014
- {
1015
- $project: {
1016
- remainingCapacityRate: {
1017
- $cond: {
1018
- if: {
1019
- $and: [
1020
- { $isNumber: '$maximumAttendeeCapacity' },
1021
- { $isNumber: '$remainingAttendeeCapacity' }
1022
- ]
1023
- },
1024
- then: {
1025
- $cond: {
1026
- if: { $gt: ['$maximumAttendeeCapacity', 0] },
1027
- then: {
1028
- $multiply: [
1029
- { $divide: ['$remainingAttendeeCapacity', '$maximumAttendeeCapacity'] },
1030
- // tslint:disable-next-line:no-magic-numbers
1031
- 100
1032
- ]
1033
- },
1034
- else: 0
1035
- }
1036
- },
1037
- else: 0
1038
- }
1039
- },
1040
- eventStatus: '$eventStatus',
1041
- startDate: '$startDate',
1042
- endDate: '$endDate',
1043
- typeOf: '$typeOf'
1044
- }
1045
- },
1046
- { $sort: { remainingCapacityRate: 1 } },
1047
- {
1048
- $group: {
1049
- _id: '$typeOf',
1050
- remainingCapacityRates: { $push: '$remainingCapacityRate' }
1051
- }
1052
- },
1053
- {
1054
- $project: {
1055
- _id: 0,
1056
- percentilesRemainingCapacityRate: ranks4percentile.map((rank) => {
1057
- return {
1058
- name: String(rank.percentile),
1059
- value: { $arrayElemAt: ['$remainingCapacityRates', rank.rank] }
1060
- };
1061
- })
1062
- }
925
+ },
926
+ {
927
+ $group: {
928
+ _id: '$typeOf',
929
+ eventCount: { $sum: 1 },
930
+ reservationCount: { $sum: '$reservationCount' },
931
+ avgOfferCount: { $avg: '$offerCount' },
932
+ maximumAttendeeCapacity: { $sum: '$maximumAttendeeCapacity' },
933
+ remainingAttendeeCapacity: { $sum: '$remainingAttendeeCapacity' },
934
+ avgRemainingCapacityRate: { $avg: '$remainingCapacityRate' },
935
+ maxRemainingCapacityRate: { $max: '$remainingCapacityRate' },
936
+ minRemainingCapacityRate: { $min: '$remainingCapacityRate' }
1063
937
  }
1064
- ])
1065
- .exec();
938
+ },
939
+ {
940
+ $project: {
941
+ _id: 0,
942
+ eventCount: '$eventCount',
943
+ reservationCount: '$reservationCount',
944
+ avgOfferCount: '$avgOfferCount',
945
+ maximumAttendeeCapacity: '$maximumAttendeeCapacity',
946
+ remainingAttendeeCapacity: '$remainingAttendeeCapacity',
947
+ avgRemainingCapacityRate: '$avgRemainingCapacityRate',
948
+ maxRemainingCapacityRate: '$maxRemainingCapacityRate',
949
+ minRemainingCapacityRate: '$minRemainingCapacityRate'
950
+ }
951
+ }
952
+ ])
953
+ .exec();
954
+ // tslint:disable-next-line:no-magic-numbers
955
+ const percents = [50, 95, 99];
956
+ if (aggregations.length === 0) {
1066
957
  return {
1067
958
  status: eventStatus,
1068
- aggregation: Object.assign(Object.assign({}, aggregations[0]), aggregations2[0])
959
+ aggregation: {
960
+ eventCount: 0,
961
+ reservationCount: 0,
962
+ avgOfferCount: 0,
963
+ maximumAttendeeCapacity: 0,
964
+ remainingAttendeeCapacity: 0,
965
+ avgRemainingCapacityRate: 0,
966
+ maxRemainingCapacityRate: 0,
967
+ minRemainingCapacityRate: 0,
968
+ percentilesRemainingCapacityRate: percents.map((percent) => {
969
+ return {
970
+ name: String(percent),
971
+ value: 0
972
+ };
973
+ })
974
+ }
975
+ };
976
+ }
977
+ const ranks4percentile = percents.map((percentile) => {
978
+ return {
979
+ percentile,
980
+ // tslint:disable-next-line:no-magic-numbers
981
+ rank: Math.floor(aggregations[0].eventCount * percentile / 100)
1069
982
  };
1070
983
  });
984
+ const aggregations2 = await this.eventModel.aggregate([
985
+ {
986
+ $match: matchConditions
987
+ },
988
+ {
989
+ $project: {
990
+ remainingCapacityRate: {
991
+ $cond: {
992
+ if: {
993
+ $and: [
994
+ { $isNumber: '$maximumAttendeeCapacity' },
995
+ { $isNumber: '$remainingAttendeeCapacity' }
996
+ ]
997
+ },
998
+ then: {
999
+ $cond: {
1000
+ if: { $gt: ['$maximumAttendeeCapacity', 0] },
1001
+ then: {
1002
+ $multiply: [
1003
+ { $divide: ['$remainingAttendeeCapacity', '$maximumAttendeeCapacity'] },
1004
+ // tslint:disable-next-line:no-magic-numbers
1005
+ 100
1006
+ ]
1007
+ },
1008
+ else: 0
1009
+ }
1010
+ },
1011
+ else: 0
1012
+ }
1013
+ },
1014
+ eventStatus: '$eventStatus',
1015
+ startDate: '$startDate',
1016
+ endDate: '$endDate',
1017
+ typeOf: '$typeOf'
1018
+ }
1019
+ },
1020
+ { $sort: { remainingCapacityRate: 1 } },
1021
+ {
1022
+ $group: {
1023
+ _id: '$typeOf',
1024
+ remainingCapacityRates: { $push: '$remainingCapacityRate' }
1025
+ }
1026
+ },
1027
+ {
1028
+ $project: {
1029
+ _id: 0,
1030
+ percentilesRemainingCapacityRate: ranks4percentile.map((rank) => {
1031
+ return {
1032
+ name: String(rank.percentile),
1033
+ value: { $arrayElemAt: ['$remainingCapacityRates', rank.rank] }
1034
+ };
1035
+ })
1036
+ }
1037
+ }
1038
+ ])
1039
+ .exec();
1040
+ return {
1041
+ status: eventStatus,
1042
+ aggregation: {
1043
+ ...aggregations[0],
1044
+ ...aggregations2[0]
1045
+ }
1046
+ };
1071
1047
  }
1072
1048
  }
1073
1049
  exports.EventRepo = EventRepo;