@chevre/domain 23.2.0-alpha.61 → 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 (476) 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 +2 -0
  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 +20 -32
  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.js +646 -669
  35. package/lib/chevre/repo/eventOffer.js +122 -125
  36. package/lib/chevre/repo/eventSellerMakesOffer.js +64 -76
  37. package/lib/chevre/repo/eventSeries.js +208 -231
  38. package/lib/chevre/repo/identity.js +94 -106
  39. package/lib/chevre/repo/identityProvider.js +72 -95
  40. package/lib/chevre/repo/issuer.js +102 -135
  41. package/lib/chevre/repo/member.js +238 -258
  42. package/lib/chevre/repo/memberProgram.js +157 -177
  43. package/lib/chevre/repo/merchantReturnPolicy.js +62 -93
  44. package/lib/chevre/repo/message.js +122 -135
  45. package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.js +1 -1
  46. package/lib/chevre/repo/mongoose/schemas/account.js +1 -1
  47. package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -1
  48. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  49. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -1
  50. package/lib/chevre/repo/mongoose/schemas/action.js +1 -1
  51. package/lib/chevre/repo/mongoose/schemas/actionRecipe.js +1 -1
  52. package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -1
  53. package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.js +1 -1
  54. package/lib/chevre/repo/mongoose/schemas/aggregateOffer.js +1 -1
  55. package/lib/chevre/repo/mongoose/schemas/aggregateOrder.js +1 -1
  56. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +1 -1
  57. package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -1
  58. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +1 -1
  59. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  60. package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -1
  61. package/lib/chevre/repo/mongoose/schemas/civicStructure.js +1 -1
  62. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -1
  63. package/lib/chevre/repo/mongoose/schemas/customer.js +1 -1
  64. package/lib/chevre/repo/mongoose/schemas/customerType.js +1 -1
  65. package/lib/chevre/repo/mongoose/schemas/event.js +1 -1
  66. package/lib/chevre/repo/mongoose/schemas/eventOffer.js +1 -1
  67. package/lib/chevre/repo/mongoose/schemas/eventSeries.js +1 -1
  68. package/lib/chevre/repo/mongoose/schemas/identity.js +1 -1
  69. package/lib/chevre/repo/mongoose/schemas/identityProvider.js +1 -1
  70. package/lib/chevre/repo/mongoose/schemas/issuer.js +1 -1
  71. package/lib/chevre/repo/mongoose/schemas/member/global.js +1 -1
  72. package/lib/chevre/repo/mongoose/schemas/member.js +1 -1
  73. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -1
  74. package/lib/chevre/repo/mongoose/schemas/message.js +1 -1
  75. package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.js +1 -1
  76. package/lib/chevre/repo/mongoose/schemas/note.js +1 -1
  77. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -1
  78. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.js +1 -1
  79. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +1 -1
  80. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  81. package/lib/chevre/repo/mongoose/schemas/paymentService.js +1 -1
  82. package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.js +1 -1
  83. package/lib/chevre/repo/mongoose/schemas/pendingReservation.js +1 -1
  84. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.js +1 -1
  85. package/lib/chevre/repo/mongoose/schemas/place.js +1 -1
  86. package/lib/chevre/repo/mongoose/schemas/potentialAction.js +1 -1
  87. package/lib/chevre/repo/mongoose/schemas/product.js +1 -1
  88. package/lib/chevre/repo/mongoose/schemas/productModel.js +1 -1
  89. package/lib/chevre/repo/mongoose/schemas/productOffer.js +1 -1
  90. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  91. package/lib/chevre/repo/mongoose/schemas/reserveInterface.js +1 -1
  92. package/lib/chevre/repo/mongoose/schemas/role.js +1 -1
  93. package/lib/chevre/repo/mongoose/schemas/schedule.js +1 -1
  94. package/lib/chevre/repo/mongoose/schemas/seller.js +1 -1
  95. package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.js +1 -1
  96. package/lib/chevre/repo/mongoose/schemas/service/availableHour.js +1 -1
  97. package/lib/chevre/repo/mongoose/schemas/setting.js +1 -1
  98. package/lib/chevre/repo/mongoose/schemas/task.js +1 -1
  99. package/lib/chevre/repo/mongoose/schemas/ticket.js +1 -1
  100. package/lib/chevre/repo/mongoose/schemas/transaction.js +1 -1
  101. package/lib/chevre/repo/mongoose/schemas/transactionNumber.js +1 -1
  102. package/lib/chevre/repo/mongoose/schemas/trip.js +1 -1
  103. package/lib/chevre/repo/mongoose/schemas/webSite.js +1 -1
  104. package/lib/chevre/repo/movieTicketType.js +68 -89
  105. package/lib/chevre/repo/note.js +143 -146
  106. package/lib/chevre/repo/noteAboutOrder.js +112 -113
  107. package/lib/chevre/repo/offer/unitPriceInCatalog.js +331 -313
  108. package/lib/chevre/repo/offerCatalog.js +302 -333
  109. package/lib/chevre/repo/offerCatalogItem.js +289 -316
  110. package/lib/chevre/repo/offerItemCondition.js +60 -85
  111. package/lib/chevre/repo/order.js +563 -572
  112. package/lib/chevre/repo/orderInTransaction.js +113 -136
  113. package/lib/chevre/repo/orderNumber.js +99 -112
  114. package/lib/chevre/repo/ownershipInfo.js +213 -233
  115. package/lib/chevre/repo/passport.js +94 -102
  116. package/lib/chevre/repo/paymentMethod/creditCard.js +153 -169
  117. package/lib/chevre/repo/paymentService.js +180 -199
  118. package/lib/chevre/repo/paymentServiceChannel.js +76 -99
  119. package/lib/chevre/repo/paymentServiceProvider.js +186 -201
  120. package/lib/chevre/repo/pendingReservation.js +275 -305
  121. package/lib/chevre/repo/permit.js +47 -42
  122. package/lib/chevre/repo/person.js +227 -247
  123. package/lib/chevre/repo/place/busStop.js +77 -103
  124. package/lib/chevre/repo/place/entranceGate.js +123 -128
  125. package/lib/chevre/repo/place/hasPOS.js +108 -120
  126. package/lib/chevre/repo/place/movieTheater.js +187 -219
  127. package/lib/chevre/repo/place/screeningRoom.js +340 -324
  128. package/lib/chevre/repo/place/seat.js +539 -475
  129. package/lib/chevre/repo/place/section.js +329 -292
  130. package/lib/chevre/repo/potentialAction.js +67 -86
  131. package/lib/chevre/repo/priceSpecification.js +103 -141
  132. package/lib/chevre/repo/product.js +204 -238
  133. package/lib/chevre/repo/productHasOfferCatalog.js +39 -50
  134. package/lib/chevre/repo/productModel.js +94 -126
  135. package/lib/chevre/repo/productOffer.js +119 -118
  136. package/lib/chevre/repo/project.js +123 -141
  137. package/lib/chevre/repo/projectMakesOffer.js +96 -108
  138. package/lib/chevre/repo/rateLimit/offer.js +43 -56
  139. package/lib/chevre/repo/reservation.js +370 -345
  140. package/lib/chevre/repo/reserveInterface.js +31 -42
  141. package/lib/chevre/repo/role.js +94 -112
  142. package/lib/chevre/repo/schedule.js +25 -36
  143. package/lib/chevre/repo/seller.js +115 -145
  144. package/lib/chevre/repo/sellerMakesOffer.js +95 -110
  145. package/lib/chevre/repo/sellerPaymentAccepted.js +92 -109
  146. package/lib/chevre/repo/sellerReturnPolicy.js +74 -96
  147. package/lib/chevre/repo/service/availableHour.js +27 -38
  148. package/lib/chevre/repo/serviceOutput.js +55 -66
  149. package/lib/chevre/repo/serviceOutputIdentifier.js +46 -57
  150. package/lib/chevre/repo/setting/jwt.js +40 -50
  151. package/lib/chevre/repo/setting.js +48 -48
  152. package/lib/chevre/repo/stockHolder.js +179 -197
  153. package/lib/chevre/repo/task.js +615 -617
  154. package/lib/chevre/repo/telemetry.js +1 -0
  155. package/lib/chevre/repo/ticket.js +52 -65
  156. package/lib/chevre/repo/transaction.js +758 -795
  157. package/lib/chevre/repo/transactionNumber.js +67 -80
  158. package/lib/chevre/repo/transactionNumberCounter.js +69 -79
  159. package/lib/chevre/repo/transactionProcess.js +36 -47
  160. package/lib/chevre/repo/trip.js +145 -163
  161. package/lib/chevre/repo/webSite.js +90 -105
  162. package/lib/chevre/repository.js +455 -646
  163. package/lib/chevre/service/account.js +9 -18
  164. package/lib/chevre/service/accountTransaction/deposit.js +16 -17
  165. package/lib/chevre/service/accountTransaction/transfer.js +18 -19
  166. package/lib/chevre/service/accountTransaction/withdraw.js +16 -17
  167. package/lib/chevre/service/accountTransaction.js +4 -13
  168. package/lib/chevre/service/aggregation/event/aggregateOffers.js +63 -60
  169. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +52 -55
  170. package/lib/chevre/service/aggregation/event/findEventOffers.js +7 -17
  171. package/lib/chevre/service/aggregation/event/importFromCOA.js +4 -13
  172. package/lib/chevre/service/aggregation/project.js +10 -19
  173. package/lib/chevre/service/aggregation/system.js +182 -99
  174. package/lib/chevre/service/assetTransaction/cancelReservation/factory.js +31 -17
  175. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +17 -23
  176. package/lib/chevre/service/assetTransaction/cancelReservation/startAndConfirm.js +17 -15
  177. package/lib/chevre/service/assetTransaction/cancelReservation.js +7 -16
  178. package/lib/chevre/service/assetTransaction/cancelReservationCOA/factory.js +11 -4
  179. package/lib/chevre/service/assetTransaction/cancelReservationCOA.js +4 -13
  180. package/lib/chevre/service/assetTransaction/fixInformAction.js +6 -16
  181. package/lib/chevre/service/assetTransaction/moneyTransfer/potentialActions.js +13 -25
  182. package/lib/chevre/service/assetTransaction/moneyTransfer.js +101 -88
  183. package/lib/chevre/service/assetTransaction/pay/cancel.js +3 -12
  184. package/lib/chevre/service/assetTransaction/pay/check.js +4 -14
  185. package/lib/chevre/service/assetTransaction/pay/confirm.js +18 -21
  186. package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +4 -13
  187. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +33 -32
  188. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.js +7 -17
  189. package/lib/chevre/service/assetTransaction/pay/start/account/validation.js +6 -16
  190. package/lib/chevre/service/assetTransaction/pay/start/factory.js +64 -36
  191. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateAcceptedPaymentMethodIfNeeded.js +7 -17
  192. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +6 -16
  193. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.js +7 -17
  194. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.js +9 -15
  195. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +3 -12
  196. package/lib/chevre/service/assetTransaction/pay/start.js +29 -35
  197. package/lib/chevre/service/assetTransaction/refund/factory.js +36 -16
  198. package/lib/chevre/service/assetTransaction/refund/potentialActions.js +12 -21
  199. package/lib/chevre/service/assetTransaction/refund.js +35 -39
  200. package/lib/chevre/service/assetTransaction/registerService/factory.js +65 -28
  201. package/lib/chevre/service/assetTransaction/registerService/potentialActions.js +50 -41
  202. package/lib/chevre/service/assetTransaction/registerService.js +45 -52
  203. package/lib/chevre/service/assetTransaction/reserve/cancel.js +5 -14
  204. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.js +15 -3
  205. package/lib/chevre/service/assetTransaction/reserve/confirm.js +21 -26
  206. package/lib/chevre/service/assetTransaction/reserve/exportTasksById.js +3 -12
  207. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +99 -79
  208. package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.js +17 -12
  209. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +108 -70
  210. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +69 -30
  211. package/lib/chevre/service/assetTransaction/reserve/start/factory/price.js +29 -20
  212. package/lib/chevre/service/assetTransaction/reserve/start.js +91 -106
  213. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/fixExtendedEventOffer.js +5 -15
  214. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateIssuedOfferIfExists.js +41 -54
  215. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateMemberTierIfExists.js +42 -55
  216. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/verifyTicketTokenAsNeeded.js +7 -17
  217. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest.js +15 -27
  218. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +24 -24
  219. package/lib/chevre/service/assetTransaction/reserveCOA/factory.js +12 -4
  220. package/lib/chevre/service/assetTransaction/reserveCOA.js +4 -13
  221. package/lib/chevre/service/assetTransaction.js +17 -21
  222. package/lib/chevre/service/delivery/factory.js +3 -4
  223. package/lib/chevre/service/delivery/product/factory.js +16 -7
  224. package/lib/chevre/service/delivery/reservation/factory.js +14 -3
  225. package/lib/chevre/service/delivery.js +47 -49
  226. package/lib/chevre/service/event/processUpdateMovieTheater.js +21 -23
  227. package/lib/chevre/service/event/saveScreeningEventSeries.js +56 -37
  228. package/lib/chevre/service/event/saveScreeningEvents.js +14 -23
  229. package/lib/chevre/service/event.js +34 -27
  230. package/lib/chevre/service/iam.js +8 -17
  231. package/lib/chevre/service/moneyTransfer.js +128 -112
  232. package/lib/chevre/service/notification/factory.js +11 -8
  233. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +11 -15
  234. package/lib/chevre/service/notification/notifyByEmail.js +7 -17
  235. package/lib/chevre/service/notification/sendEmailMessage.js +23 -26
  236. package/lib/chevre/service/notification/triggerWebhook.js +58 -54
  237. package/lib/chevre/service/offer/any.js +6 -15
  238. package/lib/chevre/service/offer/event/authorize/factory.js +139 -61
  239. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre/requestedProgramMembershipUsed2permit.js +8 -18
  240. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.js +43 -27
  241. package/lib/chevre/service/offer/event/authorize.js +114 -68
  242. package/lib/chevre/service/offer/event/checkAvailability.js +5 -15
  243. package/lib/chevre/service/offer/event/importFromCOA/factory.js +9 -2
  244. package/lib/chevre/service/offer/event/importFromCOA.js +13 -19
  245. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +38 -39
  246. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +26 -38
  247. package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +11 -22
  248. package/lib/chevre/service/offer/event/searchOfferCatalogItemAvailability.js +13 -24
  249. package/lib/chevre/service/offer/event/searchOfferCatalogItems.js +15 -22
  250. package/lib/chevre/service/offer/event/searchOffersByIds.js +24 -36
  251. package/lib/chevre/service/offer/event/searchPriceSpecs4event.js +5 -14
  252. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +4 -13
  253. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.js +6 -15
  254. package/lib/chevre/service/offer/event/voidTransaction.js +35 -39
  255. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +14 -20
  256. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/authorize.js +52 -40
  257. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/factory.js +5 -1
  258. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +34 -37
  259. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +45 -22
  260. package/lib/chevre/service/offer/eventServiceByCOA/authorize/validateAcceptedOffers.js +67 -59
  261. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +16 -26
  262. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +8 -18
  263. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +42 -41
  264. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +22 -25
  265. package/lib/chevre/service/offer/factory.js +18 -7
  266. package/lib/chevre/service/offer/moneyTransfer/authorize.js +31 -36
  267. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +9 -18
  268. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +10 -19
  269. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +14 -24
  270. package/lib/chevre/service/offer/onEventChanged.js +69 -64
  271. package/lib/chevre/service/offer/product/factory.js +54 -29
  272. package/lib/chevre/service/offer/product/searchProductOffers.js +30 -23
  273. package/lib/chevre/service/offer/product.js +106 -80
  274. package/lib/chevre/service/offer.js +48 -44
  275. package/lib/chevre/service/order/confirmPayTransaction.js +28 -27
  276. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +54 -41
  277. package/lib/chevre/service/order/deleteOrder.js +28 -35
  278. package/lib/chevre/service/order/findPlaceOrderTransaction.js +3 -12
  279. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +64 -68
  280. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.js +1 -2
  281. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled.js +3 -12
  282. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +11 -6
  283. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +5 -14
  284. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +22 -9
  285. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +5 -14
  286. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +23 -26
  287. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +13 -19
  288. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +5 -14
  289. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +24 -13
  290. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +23 -32
  291. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +8 -18
  292. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +10 -9
  293. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +23 -28
  294. package/lib/chevre/service/order/onOrderUpdated/factory.js +3 -5
  295. package/lib/chevre/service/order/onOrderUpdated.js +13 -15
  296. package/lib/chevre/service/order/payOrder.js +3 -12
  297. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +9 -19
  298. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +31 -15
  299. package/lib/chevre/service/order/placeOrder/factory.js +35 -22
  300. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +3 -12
  301. package/lib/chevre/service/order/placeOrder.js +12 -22
  302. package/lib/chevre/service/order/placeOrderWithoutTransaction.js +10 -18
  303. package/lib/chevre/service/order/returnOrder.js +27 -29
  304. package/lib/chevre/service/order/sendOrder.js +37 -36
  305. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.js +19 -25
  306. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +24 -37
  307. package/lib/chevre/service/payment/any/factory.js +106 -49
  308. package/lib/chevre/service/payment/any/fixOrderAsNeeded.js +4 -13
  309. package/lib/chevre/service/payment/any/onPayActionCompleted.js +13 -18
  310. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.js +34 -37
  311. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.js +18 -24
  312. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +16 -16
  313. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.js +15 -20
  314. package/lib/chevre/service/payment/any/person2username.js +33 -45
  315. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.js +8 -18
  316. package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +5 -15
  317. package/lib/chevre/service/payment/any.js +181 -137
  318. package/lib/chevre/service/payment/creditCard/authorize/handleAuthorizeError.js +2 -2
  319. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +44 -24
  320. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +6 -15
  321. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3dsResult2recipe.js +5 -1
  322. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCardResult2recipe.js +10 -2
  323. package/lib/chevre/service/payment/creditCard/authorize.js +20 -22
  324. package/lib/chevre/service/payment/creditCard/factory.js +22 -4
  325. package/lib/chevre/service/payment/creditCard/getGMOInfoFromSeller.js +8 -18
  326. package/lib/chevre/service/payment/creditCard/payCreditCard.js +31 -36
  327. package/lib/chevre/service/payment/creditCard/refundCreditCard.js +40 -49
  328. package/lib/chevre/service/payment/creditCard/searchGMOTrade.js +33 -45
  329. package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -25
  330. package/lib/chevre/service/payment/faceToFace.js +14 -23
  331. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +44 -25
  332. package/lib/chevre/service/payment/factory.js +50 -23
  333. package/lib/chevre/service/payment/movieTicket/authorize.js +35 -28
  334. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +22 -25
  335. package/lib/chevre/service/payment/movieTicket/factory.js +33 -10
  336. package/lib/chevre/service/payment/movieTicket/getCredentials.js +5 -15
  337. package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +29 -40
  338. package/lib/chevre/service/payment/movieTicket/processPurchaseNumberAuth.js +8 -18
  339. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.js +60 -59
  340. package/lib/chevre/service/payment/movieTicket/validation.js +41 -36
  341. package/lib/chevre/service/payment/movieTicket/voidTransaction.js +8 -18
  342. package/lib/chevre/service/payment/paymentCard.js +87 -103
  343. package/lib/chevre/service/permit.js +36 -35
  344. package/lib/chevre/service/product.js +23 -27
  345. package/lib/chevre/service/project.js +22 -31
  346. package/lib/chevre/service/report/ownershipInfo.js +3 -4
  347. package/lib/chevre/service/report/telemetry.js +51 -55
  348. package/lib/chevre/service/reserve/cancelReservation.js +92 -90
  349. package/lib/chevre/service/reserve/checkInReservation.js +24 -29
  350. package/lib/chevre/service/reserve/confirmReservation.js +33 -38
  351. package/lib/chevre/service/reserve/factory.js +42 -20
  352. package/lib/chevre/service/reserve/findByCode.js +13 -18
  353. package/lib/chevre/service/reserve/potentialActions/onPendingReservationCanceled.js +18 -24
  354. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +17 -24
  355. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +38 -29
  356. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +45 -35
  357. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +37 -32
  358. package/lib/chevre/service/reserve/potentialActions/onReservationsCreated.js +17 -23
  359. package/lib/chevre/service/reserve/searchByOrder.js +10 -19
  360. package/lib/chevre/service/reserve/useReservation.js +47 -32
  361. package/lib/chevre/service/reserve/verifyToken4reservation.js +7 -14
  362. package/lib/chevre/service/reserveCOA/cancelReservation.js +7 -16
  363. package/lib/chevre/service/reserveCOA/factory.js +5 -1
  364. package/lib/chevre/service/task/acceptCOAOffer.js +20 -24
  365. package/lib/chevre/service/task/aggregateOffers.js +3 -12
  366. package/lib/chevre/service/task/aggregateOnSystem.js +4 -14
  367. package/lib/chevre/service/task/aggregateScreeningEvent.js +3 -12
  368. package/lib/chevre/service/task/authorizePayment.js +9 -15
  369. package/lib/chevre/service/task/cancelMoneyTransfer.js +3 -12
  370. package/lib/chevre/service/task/cancelPendingReservation.js +10 -20
  371. package/lib/chevre/service/task/cancelReservation.js +3 -12
  372. package/lib/chevre/service/task/checkMovieTicket.js +16 -19
  373. package/lib/chevre/service/task/checkResource.js +7 -16
  374. package/lib/chevre/service/task/confirmMoneyTransfer.js +3 -12
  375. package/lib/chevre/service/task/confirmPayTransaction.js +6 -12
  376. package/lib/chevre/service/task/confirmRegisterService.js +3 -12
  377. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +24 -31
  378. package/lib/chevre/service/task/confirmReserveTransaction.js +48 -42
  379. package/lib/chevre/service/task/createAccountingReport.js +14 -20
  380. package/lib/chevre/service/task/deletePerson.js +48 -58
  381. package/lib/chevre/service/task/deleteTransaction.js +3 -12
  382. package/lib/chevre/service/task/givePointAward.js +3 -12
  383. package/lib/chevre/service/task/handleNotification.js +4 -14
  384. package/lib/chevre/service/task/importEventCapacitiesFromCOA.js +6 -16
  385. package/lib/chevre/service/task/importEventsFromCOA.js +6 -16
  386. package/lib/chevre/service/task/importOffersFromCOA.js +8 -18
  387. package/lib/chevre/service/task/invalidatePaymentUrl.js +6 -12
  388. package/lib/chevre/service/task/moneyTransfer.js +3 -12
  389. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +3 -12
  390. package/lib/chevre/service/task/onAuthorizationCreated.js +11 -18
  391. package/lib/chevre/service/task/onEventChanged.js +3 -12
  392. package/lib/chevre/service/task/onOrderPaymentCompleted.js +3 -12
  393. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +7 -16
  394. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +7 -16
  395. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +8 -17
  396. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +10 -19
  397. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +8 -17
  398. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +6 -15
  399. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +14 -23
  400. package/lib/chevre/service/task/onResourceDeleted.js +17 -26
  401. package/lib/chevre/service/task/onResourceUpdated/onAggregateOfferUpdated.js +9 -21
  402. package/lib/chevre/service/task/onResourceUpdated/onCategoryCodeUpdated.js +3 -12
  403. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +11 -23
  404. package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +13 -25
  405. package/lib/chevre/service/task/onResourceUpdated/syncCategoryCode.js +9 -15
  406. package/lib/chevre/service/task/onResourceUpdated/syncOfferCatalog.js +21 -27
  407. package/lib/chevre/service/task/onResourceUpdated.js +113 -153
  408. package/lib/chevre/service/task/pay.js +8 -16
  409. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.js +4 -14
  410. package/lib/chevre/service/task/payment/payByTask.js +49 -38
  411. package/lib/chevre/service/task/payment/refundByTask.js +7 -17
  412. package/lib/chevre/service/task/payment/voidPaymentByTask.js +6 -15
  413. package/lib/chevre/service/task/placeOrder.js +6 -12
  414. package/lib/chevre/service/task/publishPaymentUrl.js +9 -14
  415. package/lib/chevre/service/task/refund.js +8 -16
  416. package/lib/chevre/service/task/registerService.js +3 -12
  417. package/lib/chevre/service/task/reserve.js +3 -12
  418. package/lib/chevre/service/task/returnMoneyTransfer.js +3 -12
  419. package/lib/chevre/service/task/returnOrder.js +6 -12
  420. package/lib/chevre/service/task/returnPayTransaction.js +54 -48
  421. package/lib/chevre/service/task/returnPointAward.js +3 -12
  422. package/lib/chevre/service/task/returnReserveTransaction.js +29 -30
  423. package/lib/chevre/service/task/sendEmailMessage.js +6 -13
  424. package/lib/chevre/service/task/sendOrder.js +12 -15
  425. package/lib/chevre/service/task/syncResourcesFromCOA.js +39 -40
  426. package/lib/chevre/service/task/triggerWebhook.js +6 -12
  427. package/lib/chevre/service/task/useReservation.js +11 -14
  428. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +3 -12
  429. package/lib/chevre/service/task/voidPayTransaction.js +7 -12
  430. package/lib/chevre/service/task/voidPayment.js +3 -12
  431. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +3 -12
  432. package/lib/chevre/service/task/voidReserveTransaction.js +10 -16
  433. package/lib/chevre/service/task.js +16 -22
  434. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +9 -20
  435. package/lib/chevre/service/taskHandler/onOperationFailed.js +20 -17
  436. package/lib/chevre/service/taskHandler.js +19 -21
  437. package/lib/chevre/service/transaction/deleteTransaction.js +104 -84
  438. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +15 -6
  439. package/lib/chevre/service/transaction/moneyTransfer/factory.js +13 -4
  440. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +12 -24
  441. package/lib/chevre/service/transaction/moneyTransfer.js +119 -96
  442. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +49 -51
  443. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +14 -25
  444. package/lib/chevre/service/transaction/placeOrder/confirm/publishCode.js +4 -14
  445. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.js +3 -4
  446. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.js +3 -4
  447. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +2 -3
  448. package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +30 -45
  449. package/lib/chevre/service/transaction/placeOrder/confirm.js +75 -55
  450. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +31 -13
  451. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +6 -15
  452. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +6 -15
  453. package/lib/chevre/service/transaction/placeOrder/publishOrderNumberIfNotExist.js +7 -16
  454. package/lib/chevre/service/transaction/placeOrder/start/factory.js +27 -7
  455. package/lib/chevre/service/transaction/placeOrder/start/validateStartRequest.js +53 -59
  456. package/lib/chevre/service/transaction/placeOrder/start.js +14 -18
  457. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +13 -6
  458. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +176 -190
  459. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +77 -89
  460. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +40 -48
  461. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +52 -56
  462. package/lib/chevre/service/transaction/returnOrder/preStart/findApplicableReturnPolicy.js +100 -102
  463. package/lib/chevre/service/transaction/returnOrder/preStart/getReturnPolicyByProject.js +60 -80
  464. package/lib/chevre/service/transaction/returnOrder/preStart.js +42 -46
  465. package/lib/chevre/service/transaction/returnOrder.js +32 -36
  466. package/lib/chevre/service/transaction.js +75 -46
  467. package/lib/chevre/service/validation/validateEvent.js +2 -11
  468. package/lib/chevre/service/validation/validateOrder.js +7 -16
  469. package/lib/chevre/service.js +85 -128
  470. package/lib/chevre/settings/aggregation.js +4 -0
  471. package/lib/chevre/settings.js +7 -0
  472. package/package.json +6 -7
  473. package/example/src/chevre/addEventBySchedule.ts +0 -46
  474. package/example/src/idaas/auth0/adminApplications.ts +0 -183
  475. package/example/src/idaas/auth0/getToken.ts +0 -55
  476. package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +0 -84
@@ -1,24 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
21
- };
22
2
  Object.defineProperty(exports, "__esModule", { value: true });
23
3
  exports.SeatRepo = exports.DEFAULT_ROOM_MAXIMUM_CAPACITY = void 0;
24
4
  const factory = require("../../factory");
@@ -30,6 +10,8 @@ exports.DEFAULT_ROOM_MAXIMUM_CAPACITY = 10000;
30
10
  * 座席リポジトリ
31
11
  */
32
12
  class SeatRepo {
13
+ civicStructureModel;
14
+ placeModel;
33
15
  constructor(connection) {
34
16
  this.civicStructureModel = connection.model(civicStructure_1.modelName, (0, civicStructure_1.createSchema)());
35
17
  this.placeModel = connection.model(place_1.modelName, (0, place_1.createSchema)());
@@ -43,25 +25,39 @@ class SeatRepo {
43
25
  * containedInPlaceについて何かしたprojectするかどうか
44
26
  */
45
27
  const includeContaindInPlace = includeSectionBranchCode || includeSectionName || includeSectionTypeOf || includeScreeningRooms;
46
- const projectStage = Object.assign(Object.assign({ _id: 0, typeOf: '$containsPlace.containsPlace.typeOf', branchCode: '$containsPlace.containsPlace.branchCode', name: '$containsPlace.containsPlace.name', seatingType: '$containsPlace.containsPlace.seatingType', maximumAttendeeCapacity: '$containsPlace.containsPlace.maximumAttendeeCapacity' }, (includeContaindInPlace)
47
- ? {
48
- containedInPlace: Object.assign(Object.assign(Object.assign(Object.assign({}, (includeSectionBranchCode) ? { branchCode: '$containsPlace.branchCode' } : undefined), (includeSectionName) ? { name: '$containsPlace.name' } : undefined), (includeSectionTypeOf) ? { typeOf: '$containsPlace.typeOf' } : undefined), (includeScreeningRooms)
49
- ? {
50
- containedInPlace: {
51
- typeOf: '$typeOf',
52
- branchCode: '$branchCode',
53
- name: '$name',
54
- containedInPlace: {
55
- id: '$containedInPlace.id',
56
- typeOf: '$containedInPlace.typeOf',
57
- branchCode: '$containedInPlace.branchCode',
58
- name: '$containedInPlace.name'
28
+ const projectStage = {
29
+ _id: 0,
30
+ typeOf: '$containsPlace.containsPlace.typeOf',
31
+ branchCode: '$containsPlace.containsPlace.branchCode',
32
+ name: '$containsPlace.containsPlace.name',
33
+ seatingType: '$containsPlace.containsPlace.seatingType',
34
+ maximumAttendeeCapacity: '$containsPlace.containsPlace.maximumAttendeeCapacity', // add maximumAttendeeCapacity(2024-04-02~)
35
+ ...(includeContaindInPlace)
36
+ ? {
37
+ containedInPlace: {
38
+ ...(includeSectionBranchCode) ? { branchCode: '$containsPlace.branchCode' } : undefined,
39
+ ...(includeSectionName) ? { name: '$containsPlace.name' } : undefined,
40
+ ...(includeSectionTypeOf) ? { typeOf: '$containsPlace.typeOf' } : undefined,
41
+ ...(includeScreeningRooms)
42
+ ? {
43
+ containedInPlace: {
44
+ typeOf: '$typeOf',
45
+ branchCode: '$branchCode',
46
+ name: '$name',
47
+ containedInPlace: {
48
+ id: '$containedInPlace.id',
49
+ typeOf: '$containedInPlace.typeOf',
50
+ branchCode: '$containedInPlace.branchCode',
51
+ name: '$containedInPlace.name'
52
+ }
53
+ }
59
54
  }
60
- }
55
+ : undefined
61
56
  }
62
- : undefined)
63
- }
64
- : undefined), { additionalProperty: '$containsPlace.containsPlace.additionalProperty' });
57
+ }
58
+ : undefined,
59
+ additionalProperty: '$containsPlace.containsPlace.additionalProperty'
60
+ };
65
61
  Object.keys(params)
66
62
  .forEach((field) => {
67
63
  if (typeof projectStage[field] === 'string') {
@@ -73,19 +69,18 @@ class SeatRepo {
73
69
  }
74
70
  // tslint:disable-next-line:cyclomatic-complexity max-func-body-length
75
71
  static CREATE_MATCH_STAGES(params, options) {
76
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
77
72
  const { filterTypeOf } = options;
78
73
  const matchStages = [];
79
74
  if (filterTypeOf) {
80
75
  matchStages.push({ $match: { typeOf: { $eq: factory.placeType.ScreeningRoom } } });
81
76
  }
82
- const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
77
+ const projectIdEq = params.project?.id?.$eq;
83
78
  if (typeof projectIdEq === 'string') {
84
79
  matchStages.push({
85
80
  $match: { 'project.id': { $eq: projectIdEq } }
86
81
  });
87
82
  }
88
- const parentOrganizationIdEq = (_d = (_c = params.parentOrganization) === null || _c === void 0 ? void 0 : _c.id) === null || _d === void 0 ? void 0 : _d.$eq;
83
+ const parentOrganizationIdEq = params.parentOrganization?.id?.$eq;
89
84
  if (typeof parentOrganizationIdEq === 'string') {
90
85
  matchStages.push({
91
86
  $match: { 'parentOrganization.id': { $exists: true, $eq: parentOrganizationIdEq } }
@@ -123,7 +118,7 @@ class SeatRepo {
123
118
  }
124
119
  }
125
120
  // セクション
126
- const containedInPlaceBranchCodeEq = (_f = (_e = params.containedInPlace) === null || _e === void 0 ? void 0 : _e.branchCode) === null || _f === void 0 ? void 0 : _f.$eq;
121
+ const containedInPlaceBranchCodeEq = params.containedInPlace?.branchCode?.$eq;
127
122
  if (typeof containedInPlaceBranchCodeEq === 'string') {
128
123
  matchStages.push({
129
124
  $match: {
@@ -134,7 +129,7 @@ class SeatRepo {
134
129
  }
135
130
  });
136
131
  }
137
- const containedInPlaceBranchCodeIn = (_h = (_g = params.containedInPlace) === null || _g === void 0 ? void 0 : _g.branchCode) === null || _h === void 0 ? void 0 : _h.$in;
132
+ const containedInPlaceBranchCodeIn = params.containedInPlace?.branchCode?.$in;
138
133
  if (Array.isArray(containedInPlaceBranchCodeIn)) {
139
134
  matchStages.push({
140
135
  $match: {
@@ -158,7 +153,7 @@ class SeatRepo {
158
153
  });
159
154
  }
160
155
  }
161
- const branchCodeIn = (_j = params.branchCode) === null || _j === void 0 ? void 0 : _j.$in;
156
+ const branchCodeIn = params.branchCode?.$in;
162
157
  if (Array.isArray(branchCodeIn)) {
163
158
  matchStages.push({
164
159
  $match: {
@@ -169,7 +164,7 @@ class SeatRepo {
169
164
  }
170
165
  });
171
166
  }
172
- const branchCodeRegex = (_k = params.branchCode) === null || _k === void 0 ? void 0 : _k.$regex;
167
+ const branchCodeRegex = params.branchCode?.$regex;
173
168
  if (typeof branchCodeRegex === 'string' && branchCodeRegex.length > 0) {
174
169
  matchStages.push({
175
170
  $match: {
@@ -180,7 +175,7 @@ class SeatRepo {
180
175
  }
181
176
  });
182
177
  }
183
- const nameRegex = (_l = params.name) === null || _l === void 0 ? void 0 : _l.$regex;
178
+ const nameRegex = params.name?.$regex;
184
179
  if (typeof nameRegex === 'string' && nameRegex.length > 0) {
185
180
  matchStages.push({
186
181
  $match: {
@@ -201,7 +196,7 @@ class SeatRepo {
201
196
  }
202
197
  });
203
198
  }
204
- const seatingTypeEq = (_m = params.seatingType) === null || _m === void 0 ? void 0 : _m.$eq;
199
+ const seatingTypeEq = params.seatingType?.$eq;
205
200
  if (typeof seatingTypeEq === 'string') {
206
201
  matchStages.push({
207
202
  $match: {
@@ -212,7 +207,7 @@ class SeatRepo {
212
207
  }
213
208
  });
214
209
  }
215
- const additionalPropertyElemMatch = (_o = params.additionalProperty) === null || _o === void 0 ? void 0 : _o.$elemMatch;
210
+ const additionalPropertyElemMatch = params.additionalProperty?.$elemMatch;
216
211
  if (additionalPropertyElemMatch !== undefined && additionalPropertyElemMatch !== null) {
217
212
  matchStages.push({
218
213
  $match: {
@@ -226,522 +221,591 @@ class SeatRepo {
226
221
  return matchStages;
227
222
  }
228
223
  // tslint:disable-next-line:max-func-body-length
229
- createSeat(seat, options) {
230
- return __awaiter(this, void 0, void 0, function* () {
231
- var _a, _b;
232
- const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
233
- // 施設存在確認
234
- const movieTheaterDoc = yield this.civicStructureModel.findOne(Object.assign({ typeOf: { $eq: factory.placeType.MovieTheater }, 'project.id': { $eq: project.id }, branchCode: { $eq: movieTheaterCode } }, (typeof (parentOrganization === null || parentOrganization === void 0 ? void 0 : parentOrganization.id) === 'string')
224
+ async createSeat(seat, options) {
225
+ const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
226
+ // 施設存在確認
227
+ const movieTheaterDoc = await this.civicStructureModel.findOne({
228
+ typeOf: { $eq: factory.placeType.MovieTheater },
229
+ 'project.id': { $eq: project.id },
230
+ branchCode: { $eq: movieTheaterCode },
231
+ ...(typeof parentOrganization?.id === 'string')
235
232
  ? { 'parentOrganization.id': { $exists: true, $eq: parentOrganization.id } }
236
- : undefined), { _id: 1 })
237
- .lean()
238
- .exec();
239
- if (movieTheaterDoc === null) {
240
- throw new factory.errors.NotFound(factory.placeType.MovieTheater);
233
+ : undefined
234
+ }, { _id: 1 })
235
+ .lean()
236
+ .exec();
237
+ if (movieTheaterDoc === null) {
238
+ throw new factory.errors.NotFound(factory.placeType.MovieTheater);
239
+ }
240
+ const doc = await this.placeModel.findOneAndUpdate({
241
+ typeOf: { $eq: factory.placeType.ScreeningRoom },
242
+ 'project.id': { $eq: project.id },
243
+ 'containedInPlace.branchCode': { $exists: true, $eq: movieTheaterCode },
244
+ branchCode: { $eq: roomCode },
245
+ 'containsPlace.branchCode': { $eq: sectionCode }
246
+ }, {
247
+ $push: {
248
+ 'containsPlace.$[screeningRoomSection].containsPlace': {
249
+ typeOf: factory.placeType.Seat,
250
+ branchCode: seat.branchCode,
251
+ additionalProperty: seat.additionalProperty,
252
+ ...(typeof seat.name?.ja === 'string' || typeof seat.name?.en === 'string') ? { name: seat.name } : undefined,
253
+ ...(Array.isArray(seat.seatingType)) ? { seatingType: seat.seatingType } : undefined,
254
+ // add maximumAttendeeCapacity(2024-04-02~)
255
+ ...(seat.maximumAttendeeCapacity === 0) ? { maximumAttendeeCapacity: seat.maximumAttendeeCapacity } : undefined
256
+ }
241
257
  }
242
- const doc = yield this.placeModel.findOneAndUpdate({
258
+ }, {
259
+ new: true,
260
+ arrayFilters: [
261
+ {
262
+ 'screeningRoomSection.branchCode': { $eq: sectionCode },
263
+ 'screeningRoomSection.containsPlace.branchCode': { $ne: seat.branchCode }
264
+ }
265
+ ],
266
+ projection: { 'containedInPlace.id': 1, typeOf: 1 }
267
+ })
268
+ .exec();
269
+ // 存在しなければコード重複
270
+ if (doc === null) {
271
+ throw new factory.errors.AlreadyInUse(factory.placeType.Seat, ['branchCode']);
272
+ }
273
+ return doc.toObject();
274
+ }
275
+ /**
276
+ * コードをキーにして冪等追加
277
+ */
278
+ async addSeatsByBranchCodeIfNotExist(params, options) {
279
+ const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
280
+ // 施設存在確認
281
+ const movieTheaterDoc = await this.civicStructureModel.findOne({
282
+ typeOf: { $eq: factory.placeType.MovieTheater },
283
+ 'project.id': { $eq: project.id },
284
+ branchCode: { $eq: movieTheaterCode },
285
+ ...(typeof parentOrganization?.id === 'string')
286
+ ? { 'parentOrganization.id': { $exists: true, $eq: parentOrganization.id } }
287
+ : undefined
288
+ }, { _id: 1 })
289
+ .lean()
290
+ .exec();
291
+ if (movieTheaterDoc === null) {
292
+ throw new factory.errors.NotFound(factory.placeType.MovieTheater);
293
+ }
294
+ const bulkWriteOps = [];
295
+ if (Array.isArray(params)) {
296
+ // セクションの存在するドキュメントでフィルター
297
+ const filter = {
243
298
  typeOf: { $eq: factory.placeType.ScreeningRoom },
244
299
  'project.id': { $eq: project.id },
245
300
  'containedInPlace.branchCode': { $exists: true, $eq: movieTheaterCode },
246
301
  branchCode: { $eq: roomCode },
247
302
  'containsPlace.branchCode': { $eq: sectionCode }
248
- }, {
249
- $push: {
250
- 'containsPlace.$[screeningRoomSection].containsPlace': Object.assign(Object.assign(Object.assign({ typeOf: factory.placeType.Seat, branchCode: seat.branchCode, additionalProperty: seat.additionalProperty }, (typeof ((_a = seat.name) === null || _a === void 0 ? void 0 : _a.ja) === 'string' || typeof ((_b = seat.name) === null || _b === void 0 ? void 0 : _b.en) === 'string') ? { name: seat.name } : undefined), (Array.isArray(seat.seatingType)) ? { seatingType: seat.seatingType } : undefined), (seat.maximumAttendeeCapacity === 0) ? { maximumAttendeeCapacity: seat.maximumAttendeeCapacity } : undefined)
251
- }
252
- }, {
253
- new: true,
254
- arrayFilters: [
303
+ };
304
+ params.forEach(({ $set }) => {
305
+ const { ...setFields } = $set;
306
+ const pushingSeat = {
307
+ typeOf: factory.placeType.Seat,
308
+ branchCode: setFields.branchCode,
309
+ ...(typeof setFields.name?.ja === 'string' || typeof setFields.name?.en === 'string')
310
+ ? { name: setFields.name }
311
+ : undefined,
312
+ ...(Array.isArray(setFields.seatingType)) ? { seatingType: setFields.seatingType } : undefined,
313
+ ...(Array.isArray(setFields.additionalProperty)) ? { additionalProperty: setFields.additionalProperty } : undefined,
314
+ ...(setFields.maximumAttendeeCapacity === 0)
315
+ ? { maximumAttendeeCapacity: setFields.maximumAttendeeCapacity }
316
+ : undefined
317
+ };
318
+ const updateFilter = {
319
+ $push: { 'containsPlace.$[screeningRoomSection].containsPlace': pushingSeat }
320
+ };
321
+ const arrayFilters = [
255
322
  {
256
- 'screeningRoomSection.branchCode': { $eq: sectionCode },
257
- 'screeningRoomSection.containsPlace.branchCode': { $ne: seat.branchCode }
323
+ 'screeningRoomSection.branchCode': { $eq: sectionCode }, // セクションに
324
+ 'screeningRoomSection.containsPlace.branchCode': { $ne: pushingSeat.branchCode } // 座席が存在しなければ
258
325
  }
259
- ],
260
- projection: { 'containedInPlace.id': 1, typeOf: 1 }
261
- })
262
- .exec();
263
- // 存在しなければコード重複
264
- if (doc === null) {
265
- throw new factory.errors.AlreadyInUse(factory.placeType.Seat, ['branchCode']);
266
- }
267
- return doc.toObject();
268
- });
326
+ ];
327
+ const updateOne = {
328
+ filter,
329
+ update: updateFilter,
330
+ arrayFilters
331
+ };
332
+ bulkWriteOps.push({ updateOne });
333
+ });
334
+ }
335
+ if (bulkWriteOps.length > 0) {
336
+ const bulkWriteResult = await this.placeModel.bulkWrite(bulkWriteOps, { ordered: false });
337
+ return { bulkWriteResult };
338
+ }
269
339
  }
270
340
  /**
271
- * コードをキーにして冪等追加
341
+ * コードをキーにして冪等編集
272
342
  */
273
- addSeatsByBranchCodeIfNotExist(params, options) {
274
- return __awaiter(this, void 0, void 0, function* () {
275
- const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
276
- // 施設存在確認
277
- const movieTheaterDoc = yield this.civicStructureModel.findOne(Object.assign({ typeOf: { $eq: factory.placeType.MovieTheater }, 'project.id': { $eq: project.id }, branchCode: { $eq: movieTheaterCode } }, (typeof (parentOrganization === null || parentOrganization === void 0 ? void 0 : parentOrganization.id) === 'string')
278
- ? { 'parentOrganization.id': { $exists: true, $eq: parentOrganization.id } }
279
- : undefined), { _id: 1 })
280
- .lean()
281
- .exec();
282
- if (movieTheaterDoc === null) {
283
- throw new factory.errors.NotFound(factory.placeType.MovieTheater);
284
- }
285
- const bulkWriteOps = [];
286
- if (Array.isArray(params)) {
287
- // セクションの存在するドキュメントでフィルター
343
+ async updateSeatsByBranchCode(params, options) {
344
+ const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
345
+ const bulkWriteOps = [];
346
+ if (Array.isArray(params)) {
347
+ params.forEach(({ $set, $unset }) => {
348
+ // 座席の存在するドキュメントでフィルター
288
349
  const filter = {
289
350
  typeOf: { $eq: factory.placeType.ScreeningRoom },
290
351
  'project.id': { $eq: project.id },
291
352
  'containedInPlace.branchCode': { $exists: true, $eq: movieTheaterCode },
292
353
  branchCode: { $eq: roomCode },
293
- 'containsPlace.branchCode': { $eq: sectionCode }
294
- };
295
- params.forEach(({ $set }) => {
296
- var _a, _b;
297
- const setFields = __rest($set, []);
298
- const pushingSeat = Object.assign(Object.assign(Object.assign(Object.assign({ typeOf: factory.placeType.Seat, branchCode: setFields.branchCode }, (typeof ((_a = setFields.name) === null || _a === void 0 ? void 0 : _a.ja) === 'string' || typeof ((_b = setFields.name) === null || _b === void 0 ? void 0 : _b.en) === 'string')
299
- ? { name: setFields.name }
300
- : undefined), (Array.isArray(setFields.seatingType)) ? { seatingType: setFields.seatingType } : undefined), (Array.isArray(setFields.additionalProperty)) ? { additionalProperty: setFields.additionalProperty } : undefined), (setFields.maximumAttendeeCapacity === 0)
301
- ? { maximumAttendeeCapacity: setFields.maximumAttendeeCapacity }
302
- : undefined);
303
- const updateFilter = {
304
- $push: { 'containsPlace.$[screeningRoomSection].containsPlace': pushingSeat }
305
- };
306
- const arrayFilters = [
307
- {
308
- 'screeningRoomSection.branchCode': { $eq: sectionCode }, // セクションに
309
- 'screeningRoomSection.containsPlace.branchCode': { $ne: pushingSeat.branchCode } // 座席が存在しなければ
310
- }
311
- ];
312
- const updateOne = {
313
- filter,
314
- update: updateFilter,
315
- arrayFilters
316
- };
317
- bulkWriteOps.push({ updateOne });
318
- });
319
- }
320
- if (bulkWriteOps.length > 0) {
321
- const bulkWriteResult = yield this.placeModel.bulkWrite(bulkWriteOps, { ordered: false });
322
- return { bulkWriteResult };
323
- }
324
- });
325
- }
326
- /**
327
- * コードをキーにして冪等編集
328
- */
329
- updateSeatsByBranchCode(params, options) {
330
- return __awaiter(this, void 0, void 0, function* () {
331
- const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
332
- const bulkWriteOps = [];
333
- if (Array.isArray(params)) {
334
- params.forEach(({ $set, $unset }) => {
335
- var _a, _b;
336
- // 座席の存在するドキュメントでフィルター
337
- const filter = Object.assign({ typeOf: { $eq: factory.placeType.ScreeningRoom }, 'project.id': { $eq: project.id }, 'containedInPlace.branchCode': { $exists: true, $eq: movieTheaterCode }, branchCode: { $eq: roomCode }, 'containsPlace.branchCode': { $eq: sectionCode }, 'containsPlace.containsPlace.branchCode': { $eq: $set.branchCode } }, (typeof (parentOrganization === null || parentOrganization === void 0 ? void 0 : parentOrganization.id) === 'string')
354
+ 'containsPlace.branchCode': { $eq: sectionCode },
355
+ 'containsPlace.containsPlace.branchCode': { $eq: $set.branchCode },
356
+ ...(typeof parentOrganization?.id === 'string')
338
357
  ? { 'parentOrganization.id': { $exists: true, $eq: parentOrganization.id } }
339
- : undefined);
340
- const setFields = __rest($set, []);
341
- const updateFilter = {
342
- $set: Object.assign(Object.assign(Object.assign(Object.assign({ 'containsPlace.$[screeningRoomSection].containsPlace.$[seat].branchCode': setFields.branchCode }, (typeof ((_a = setFields.name) === null || _a === void 0 ? void 0 : _a.ja) === 'string' || typeof ((_b = setFields.name) === null || _b === void 0 ? void 0 : _b.en) === 'string')
358
+ : undefined
359
+ };
360
+ const { ...setFields } = $set;
361
+ const updateFilter = {
362
+ $set: {
363
+ 'containsPlace.$[screeningRoomSection].containsPlace.$[seat].branchCode': setFields.branchCode,
364
+ ...(typeof setFields.name?.ja === 'string' || typeof setFields.name?.en === 'string')
343
365
  ? {
344
366
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].name': setFields.name
345
367
  }
346
- : undefined), (Array.isArray(setFields.seatingType))
368
+ : undefined,
369
+ ...(Array.isArray(setFields.seatingType))
347
370
  ? {
348
371
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].seatingType': setFields.seatingType
349
372
  }
350
- : undefined), (Array.isArray(setFields.additionalProperty))
373
+ : undefined,
374
+ ...(Array.isArray(setFields.additionalProperty))
351
375
  ? {
352
376
  // tslint:disable-next-line:max-line-length
353
377
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].additionalProperty': setFields.additionalProperty
354
378
  }
355
- : undefined), (setFields.maximumAttendeeCapacity === 0)
379
+ : undefined,
380
+ // add maximumAttendeeCapacity(2024-04-02~)
381
+ ...(setFields.maximumAttendeeCapacity === 0)
356
382
  ? {
357
383
  // tslint:disable-next-line:max-line-length
358
384
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].maximumAttendeeCapacity': setFields.maximumAttendeeCapacity
359
385
  }
360
- : undefined),
361
- $unset: Object.assign(Object.assign(Object.assign({}, (($unset === null || $unset === void 0 ? void 0 : $unset.name) === 1)
386
+ : undefined
387
+ },
388
+ $unset: {
389
+ ...($unset?.name === 1)
362
390
  ? { 'containsPlace.$[screeningRoomSection].containsPlace.$[seat].name': 1 }
363
- : undefined), (($unset === null || $unset === void 0 ? void 0 : $unset.seatingType) === 1)
391
+ : undefined,
392
+ ...($unset?.seatingType === 1)
364
393
  ? { 'containsPlace.$[screeningRoomSection].containsPlace.$[seat].seatingType': 1 }
365
- : undefined), (($unset === null || $unset === void 0 ? void 0 : $unset.maximumAttendeeCapacity) === 1)
394
+ : undefined,
395
+ // add maximumAttendeeCapacity(2024-04-02~)
396
+ ...($unset?.maximumAttendeeCapacity === 1)
366
397
  ? { 'containsPlace.$[screeningRoomSection].containsPlace.$[seat].maximumAttendeeCapacity': 1 }
367
- : undefined)
368
- };
369
- const arrayFilters = [
370
- { 'screeningRoomSection.branchCode': { $eq: sectionCode } },
371
- { 'seat.branchCode': { $eq: setFields.branchCode } }
372
- ];
373
- const updateOne = {
374
- filter,
375
- update: updateFilter,
376
- arrayFilters
377
- };
378
- bulkWriteOps.push({ updateOne });
379
- });
380
- }
381
- if (bulkWriteOps.length > 0) {
382
- const bulkWriteResult = yield this.placeModel.bulkWrite(bulkWriteOps, { ordered: false });
383
- return { bulkWriteResult };
384
- }
385
- });
398
+ : undefined
399
+ }
400
+ };
401
+ const arrayFilters = [
402
+ { 'screeningRoomSection.branchCode': { $eq: sectionCode } },
403
+ { 'seat.branchCode': { $eq: setFields.branchCode } }
404
+ ];
405
+ const updateOne = {
406
+ filter,
407
+ update: updateFilter,
408
+ arrayFilters
409
+ };
410
+ bulkWriteOps.push({ updateOne });
411
+ });
412
+ }
413
+ if (bulkWriteOps.length > 0) {
414
+ const bulkWriteResult = await this.placeModel.bulkWrite(bulkWriteOps, { ordered: false });
415
+ return { bulkWriteResult };
416
+ }
386
417
  }
387
418
  // tslint:disable-next-line:cyclomatic-complexity max-func-body-length
388
- updateSeatByBranchCode(seat, $unset, options) {
389
- return __awaiter(this, void 0, void 0, function* () {
390
- var _a, _b;
391
- const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
392
- const doc = yield this.placeModel.findOneAndUpdate(Object.assign({ typeOf: { $eq: factory.placeType.ScreeningRoom }, 'project.id': { $eq: project.id }, 'containedInPlace.branchCode': { $exists: true, $eq: movieTheaterCode }, branchCode: { $eq: roomCode }, 'containsPlace.branchCode': { $eq: sectionCode }, 'containsPlace.containsPlace.branchCode': { $eq: seat.branchCode } }, (typeof (parentOrganization === null || parentOrganization === void 0 ? void 0 : parentOrganization.id) === 'string')
419
+ async updateSeatByBranchCode(seat, $unset, options) {
420
+ const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
421
+ const doc = await this.placeModel.findOneAndUpdate({
422
+ typeOf: { $eq: factory.placeType.ScreeningRoom },
423
+ 'project.id': { $eq: project.id },
424
+ 'containedInPlace.branchCode': { $exists: true, $eq: movieTheaterCode },
425
+ branchCode: { $eq: roomCode },
426
+ 'containsPlace.branchCode': { $eq: sectionCode },
427
+ 'containsPlace.containsPlace.branchCode': { $eq: seat.branchCode },
428
+ ...(typeof parentOrganization?.id === 'string')
393
429
  ? { 'parentOrganization.id': { $exists: true, $eq: parentOrganization.id } }
394
- : undefined), Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ 'containsPlace.$[screeningRoomSection].containsPlace.$[seat].branchCode': seat.branchCode }, (typeof ((_a = seat.name) === null || _a === void 0 ? void 0 : _a.ja) === 'string' || typeof ((_b = seat.name) === null || _b === void 0 ? void 0 : _b.en) === 'string')
430
+ : undefined
431
+ },
432
+ // 限られた属性のみ更新する
433
+ {
434
+ 'containsPlace.$[screeningRoomSection].containsPlace.$[seat].branchCode': seat.branchCode,
435
+ ...(typeof seat.name?.ja === 'string' || typeof seat.name?.en === 'string')
395
436
  ? {
396
437
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].name': seat.name
397
438
  }
398
- : undefined), (Array.isArray(seat.seatingType))
439
+ : undefined,
440
+ ...(Array.isArray(seat.seatingType))
399
441
  ? {
400
442
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].seatingType': seat.seatingType
401
443
  }
402
- : undefined), (Array.isArray(seat.additionalProperty))
444
+ : undefined,
445
+ ...(Array.isArray(seat.additionalProperty))
403
446
  ? {
404
447
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].additionalProperty': seat.additionalProperty
405
448
  }
406
- : undefined), (seat.maximumAttendeeCapacity === 0)
449
+ : undefined,
450
+ // add maximumAttendeeCapacity(2024-04-02~)
451
+ ...(seat.maximumAttendeeCapacity === 0)
407
452
  ? {
408
453
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].maximumAttendeeCapacity': seat.maximumAttendeeCapacity
409
454
  }
410
- : undefined), { $unset: Object.assign(Object.assign(Object.assign({ noExistingAttributeName: 1 }, (($unset === null || $unset === void 0 ? void 0 : $unset['containsPlace.$[screeningRoom].containsPlace.$[screeningRoomSection].containsPlace.$[seat].name'])
455
+ : undefined,
456
+ $unset: {
457
+ noExistingAttributeName: 1, // $unsetは空だとエラーになるので
458
+ ...($unset?.['containsPlace.$[screeningRoom].containsPlace.$[screeningRoomSection].containsPlace.$[seat].name']
411
459
  === 1
412
- || ($unset === null || $unset === void 0 ? void 0 : $unset['containsPlace.$[screeningRoomSection].containsPlace.$[seat].name']) === 1)
460
+ || $unset?.['containsPlace.$[screeningRoomSection].containsPlace.$[seat].name'] === 1)
413
461
  ? {
414
462
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].name': 1
415
463
  }
416
- : undefined), (($unset === null || $unset === void 0 ? void 0 : $unset['containsPlace.$[screeningRoom].containsPlace.$[screeningRoomSection].containsPlace.$[seat].seatingType'])
464
+ : undefined,
465
+ ...($unset?.['containsPlace.$[screeningRoom].containsPlace.$[screeningRoomSection].containsPlace.$[seat].seatingType']
417
466
  === 1
418
- || ($unset === null || $unset === void 0 ? void 0 : $unset['containsPlace.$[screeningRoomSection].containsPlace.$[seat].seatingType']) === 1)
467
+ || $unset?.['containsPlace.$[screeningRoomSection].containsPlace.$[seat].seatingType'] === 1)
419
468
  ? {
420
469
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].seatingType': 1
421
470
  }
422
- : undefined), (($unset === null || $unset === void 0 ? void 0 : $unset['containsPlace.$[screeningRoom].containsPlace.$[screeningRoomSection].containsPlace.$[seat].maximumAttendeeCapacity'])
471
+ : undefined,
472
+ // add maximumAttendeeCapacity(2024-04-02~)
473
+ ...($unset?.['containsPlace.$[screeningRoom].containsPlace.$[screeningRoomSection].containsPlace.$[seat].maximumAttendeeCapacity']
423
474
  === 1
424
- || ($unset === null || $unset === void 0 ? void 0 : $unset['containsPlace.$[screeningRoomSection].containsPlace.$[seat].maximumAttendeeCapacity']) === 1)
475
+ || $unset?.['containsPlace.$[screeningRoomSection].containsPlace.$[seat].maximumAttendeeCapacity'] === 1)
425
476
  ? {
426
477
  'containsPlace.$[screeningRoomSection].containsPlace.$[seat].maximumAttendeeCapacity': 1
427
478
  }
428
- : undefined) }), {
429
- new: true,
430
- arrayFilters: [
431
- { 'screeningRoomSection.branchCode': { $eq: sectionCode } },
432
- { 'seat.branchCode': { $eq: seat.branchCode } }
433
- ],
434
- projection: { 'containedInPlace.id': 1, typeOf: 1 }
435
- })
436
- .exec();
437
- if (doc === null) {
438
- throw new factory.errors.NotFound(factory.placeType.Seat);
479
+ : undefined
439
480
  }
440
- return doc.toObject();
441
- });
481
+ }, {
482
+ new: true,
483
+ arrayFilters: [
484
+ { 'screeningRoomSection.branchCode': { $eq: sectionCode } },
485
+ { 'seat.branchCode': { $eq: seat.branchCode } }
486
+ ],
487
+ projection: { 'containedInPlace.id': 1, typeOf: 1 }
488
+ })
489
+ .exec();
490
+ if (doc === null) {
491
+ throw new factory.errors.NotFound(factory.placeType.Seat);
492
+ }
493
+ return doc.toObject();
442
494
  }
443
- searchSeats(params) {
444
- return __awaiter(this, void 0, void 0, function* () {
445
- const matchStages = SeatRepo.CREATE_MATCH_STAGES(params, { filterTypeOf: true });
446
- const projectStage = SeatRepo.CREATE_SEARCH_SEATS_PROJECTION(Object.assign({}, params.$projection));
447
- const aggregate = this.placeModel.aggregate([
448
- {
449
- $unwind: {
450
- path: '$containsPlace'
451
- }
452
- },
453
- {
454
- $unwind: {
455
- path: '$containsPlace.containsPlace'
456
- }
457
- },
458
- ...matchStages,
459
- {
460
- $project: projectStage
495
+ async searchSeats(params) {
496
+ const matchStages = SeatRepo.CREATE_MATCH_STAGES(params, { filterTypeOf: true });
497
+ const projectStage = SeatRepo.CREATE_SEARCH_SEATS_PROJECTION({ ...params.$projection });
498
+ const aggregate = this.placeModel.aggregate([
499
+ {
500
+ $unwind: {
501
+ path: '$containsPlace'
502
+ }
503
+ },
504
+ {
505
+ $unwind: {
506
+ path: '$containsPlace.containsPlace'
461
507
  }
462
- ]);
463
- if (typeof params.limit === 'number' && params.limit > 0) {
464
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
465
- aggregate.limit(params.limit * page)
466
- .skip(params.limit * (page - 1));
508
+ },
509
+ ...matchStages,
510
+ {
511
+ $project: projectStage
467
512
  }
468
- return aggregate
469
- .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
470
- .exec();
471
- });
513
+ ]);
514
+ if (typeof params.limit === 'number' && params.limit > 0) {
515
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
516
+ aggregate.limit(params.limit * page)
517
+ .skip(params.limit * (page - 1));
518
+ }
519
+ return aggregate
520
+ .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
521
+ .exec();
472
522
  }
473
523
  // ルーム指定の座席検索として再定義(2025-04-28~)
474
- projectSeatsByScreeningRoom(params) {
475
- return __awaiter(this, void 0, void 0, function* () {
476
- const { limit, page, project, containedInPlace, screeningRoom, $projection } = params, searchSeatsConditions = __rest(params, ["limit", "page", "project", "containedInPlace", "screeningRoom", "$projection"]);
477
- // まずルーム検索
478
- const screeningRoomDoc = yield this.placeModel.findOne({
479
- typeOf: { $eq: factory.placeType.ScreeningRoom },
480
- 'project.id': { $eq: project.id.$eq },
481
- 'containedInPlace.branchCode': { $exists: true, $eq: screeningRoom.containedInPlace.branchCode.$eq },
482
- branchCode: { $eq: screeningRoom.branchCode.$eq }
483
- }, { _id: 1 })
484
- .lean()
485
- .exec();
486
- // console.log('screeningRoomDoc:', screeningRoomDoc);
487
- if (screeningRoomDoc === null) {
488
- return [];
489
- }
490
- const matchStageBeforeUnwind = {
491
- $match: { _id: { $eq: screeningRoomDoc._id } }
492
- };
493
- const matchStages = SeatRepo.CREATE_MATCH_STAGES(Object.assign(Object.assign({}, searchSeatsConditions), { containedInPlace: Object.assign(Object.assign({}, containedInPlace), { containedInPlace: {
494
- containedInPlace: {}
495
- } }) }), { filterTypeOf: false });
496
- const projectStage = SeatRepo.CREATE_SEARCH_SEATS_PROJECTION(Object.assign({}, $projection));
497
- const pageMustBeOne = (typeof page === 'number' && page > 0) ? page : 1;
498
- let limitStage;
499
- let skipStage;
500
- if (typeof limit === 'number' && limit > 0) {
501
- limitStage = { $limit: limit * pageMustBeOne };
502
- skipStage = { $skip: limit * (pageMustBeOne - 1) };
524
+ async projectSeatsByScreeningRoom(params) {
525
+ const { limit, page, project, containedInPlace, screeningRoom, $projection, ...searchSeatsConditions } = params;
526
+ // まずルーム検索
527
+ const screeningRoomDoc = await this.placeModel.findOne({
528
+ typeOf: { $eq: factory.placeType.ScreeningRoom },
529
+ 'project.id': { $eq: project.id.$eq },
530
+ 'containedInPlace.branchCode': { $exists: true, $eq: screeningRoom.containedInPlace.branchCode.$eq },
531
+ branchCode: { $eq: screeningRoom.branchCode.$eq }
532
+ }, { _id: 1 })
533
+ .lean()
534
+ .exec();
535
+ // console.log('screeningRoomDoc:', screeningRoomDoc);
536
+ if (screeningRoomDoc === null) {
537
+ return [];
538
+ }
539
+ const matchStageBeforeUnwind = {
540
+ $match: { _id: { $eq: screeningRoomDoc._id } }
541
+ };
542
+ const matchStages = SeatRepo.CREATE_MATCH_STAGES({
543
+ ...searchSeatsConditions,
544
+ containedInPlace: {
545
+ ...containedInPlace,
546
+ containedInPlace: {
547
+ containedInPlace: {}
548
+ }
503
549
  }
504
- const pipeline = [
505
- // uniwind前はid指定に変更(2025-04-28~)
506
- matchStageBeforeUnwind,
507
- {
508
- $unwind: {
509
- path: '$containsPlace'
510
- // includeArrayIndex: 'sectionIndex'
511
- }
512
- },
513
- {
514
- $unwind: {
515
- path: '$containsPlace.containsPlace'
516
- // includeArrayIndex: 'seatIndex'
517
- }
518
- },
519
- ...matchStages,
520
- ...(limitStage !== undefined) ? [limitStage] : [],
521
- ...(skipStage !== undefined) ? [skipStage] : [],
522
- // {
523
- // $sort: {
524
- // 'containsPlace.branchCode': factory.sortType.Ascending,
525
- // 'containsPlace.containsPlace.branchCode': factory.sortType.Ascending
526
- // }
527
- // },
528
- // { $skip: limit * (pageMustBeOne - 1) },
529
- // { $limit: limit },
530
- { $project: projectStage }
531
- ];
532
- // console.log(pipeline);
533
- return this.placeModel.aggregate(pipeline)
534
- .option({
535
- maxTimeMS: settings_1.MONGO_MAX_TIME_MS
536
- // explain: true,
537
- // hint: 'searchSeatsSort'
538
- })
539
- .exec();
540
- });
550
+ }, { filterTypeOf: false });
551
+ const projectStage = SeatRepo.CREATE_SEARCH_SEATS_PROJECTION({ ...$projection });
552
+ const pageMustBeOne = (typeof page === 'number' && page > 0) ? page : 1;
553
+ let limitStage;
554
+ let skipStage;
555
+ if (typeof limit === 'number' && limit > 0) {
556
+ limitStage = { $limit: limit * pageMustBeOne };
557
+ skipStage = { $skip: limit * (pageMustBeOne - 1) };
558
+ }
559
+ const pipeline = [
560
+ // uniwind前はid指定に変更(2025-04-28~)
561
+ matchStageBeforeUnwind,
562
+ {
563
+ $unwind: {
564
+ path: '$containsPlace'
565
+ // includeArrayIndex: 'sectionIndex'
566
+ }
567
+ },
568
+ {
569
+ $unwind: {
570
+ path: '$containsPlace.containsPlace'
571
+ // includeArrayIndex: 'seatIndex'
572
+ }
573
+ },
574
+ ...matchStages,
575
+ ...(limitStage !== undefined) ? [limitStage] : [],
576
+ ...(skipStage !== undefined) ? [skipStage] : [],
577
+ // {
578
+ // $sort: {
579
+ // 'containsPlace.branchCode': factory.sortType.Ascending,
580
+ // 'containsPlace.containsPlace.branchCode': factory.sortType.Ascending
581
+ // }
582
+ // },
583
+ // { $skip: limit * (pageMustBeOne - 1) },
584
+ // { $limit: limit },
585
+ { $project: projectStage }
586
+ ];
587
+ // console.log(pipeline);
588
+ return this.placeModel.aggregate(pipeline)
589
+ .option({
590
+ maxTimeMS: settings_1.MONGO_MAX_TIME_MS
591
+ // explain: true,
592
+ // hint: 'searchSeatsSort'
593
+ })
594
+ .exec();
541
595
  }
542
596
  /**
543
597
  * セクション指定の座席検索として再定義(2025-12-06~)
544
598
  */
545
- findSeatsBySection(params, options) {
546
- return __awaiter(this, void 0, void 0, function* () {
547
- const { limit, page, projectId, sellerId, movieTheaterCode, roomCode, sectionCode } = params;
548
- // まずルーム検索
549
- const screeningRoomDoc = yield this.placeModel.findOne({
550
- typeOf: { $eq: factory.placeType.ScreeningRoom },
551
- 'project.id': { $eq: projectId },
552
- 'parentOrganization.id': { $exists: true, $eq: sellerId },
553
- 'containedInPlace.branchCode': { $exists: true, $eq: movieTheaterCode },
554
- branchCode: { $eq: roomCode }
555
- }, { _id: 1 })
556
- .lean()
557
- .exec();
558
- // console.log('screeningRoomDoc:', screeningRoomDoc);
559
- if (screeningRoomDoc === null) {
560
- return [];
561
- }
562
- const matchStageBeforeUnwind = {
563
- $match: { _id: { $eq: screeningRoomDoc._id } }
564
- };
565
- const matchStages = SeatRepo.CREATE_MATCH_STAGES(Object.assign(Object.assign({}, options), { containedInPlace: {
566
- branchCode: { $eq: sectionCode },
567
- containedInPlace: {
568
- containedInPlace: {}
569
- }
570
- } }), { filterTypeOf: false });
571
- const pageMustBeOne = (typeof page === 'number' && page > 0) ? page : 1;
572
- let skipStage;
573
- let limitStage;
574
- if (typeof limit === 'number' && limit > 0) {
575
- skipStage = { $skip: limit * (pageMustBeOne - 1) };
576
- limitStage = { $limit: limit };
577
- }
578
- else {
579
- throw new factory.errors.Argument('limit', 'must be number > 0');
599
+ async findSeatsBySection(params, options) {
600
+ const { limit, page, projectId, sellerId, movieTheaterCode, roomCode, sectionCode } = params;
601
+ // まずルーム検索
602
+ const screeningRoomDoc = await this.placeModel.findOne({
603
+ typeOf: { $eq: factory.placeType.ScreeningRoom },
604
+ 'project.id': { $eq: projectId },
605
+ 'parentOrganization.id': { $exists: true, $eq: sellerId },
606
+ 'containedInPlace.branchCode': { $exists: true, $eq: movieTheaterCode },
607
+ branchCode: { $eq: roomCode }
608
+ }, { _id: 1 })
609
+ .lean()
610
+ .exec();
611
+ // console.log('screeningRoomDoc:', screeningRoomDoc);
612
+ if (screeningRoomDoc === null) {
613
+ return [];
614
+ }
615
+ const matchStageBeforeUnwind = {
616
+ $match: { _id: { $eq: screeningRoomDoc._id } }
617
+ };
618
+ const matchStages = SeatRepo.CREATE_MATCH_STAGES({
619
+ ...options,
620
+ containedInPlace: {
621
+ branchCode: { $eq: sectionCode },
622
+ containedInPlace: {
623
+ containedInPlace: {}
624
+ }
580
625
  }
581
- const pipeline = [
582
- // uniwind前はドキュメントの_id指定
583
- matchStageBeforeUnwind,
584
- {
585
- $unwind: {
586
- path: '$containsPlace'
587
- // includeArrayIndex: 'sectionIndex'
588
- }
589
- },
590
- {
591
- $unwind: {
592
- path: '$containsPlace.containsPlace'
593
- // includeArrayIndex: 'seatIndex'
594
- }
595
- },
596
- ...matchStages,
597
- {
598
- $project: {
599
- _id: 0,
600
- branchCode: '$containsPlace.containsPlace.branchCode',
601
- name: '$containsPlace.containsPlace.name',
602
- seatingType: '$containsPlace.containsPlace.seatingType',
603
- maximumAttendeeCapacity: '$containsPlace.containsPlace.maximumAttendeeCapacity',
604
- additionalProperty: '$containsPlace.containsPlace.additionalProperty'
605
- }
606
- },
607
- // {
608
- // $sort: {
609
- // // branchCode: factory.sortType.Ascending
610
- // }
611
- // },
612
- skipStage,
613
- limitStage
614
- ];
615
- // console.log(pipeline);
616
- return this.placeModel.aggregate(pipeline)
617
- .option({
618
- maxTimeMS: settings_1.MONGO_MAX_TIME_MS
619
- // explain: true,
620
- // hint: 'searchSeatsSort'
621
- })
622
- .exec();
623
- });
626
+ }, { filterTypeOf: false });
627
+ const pageMustBeOne = (typeof page === 'number' && page > 0) ? page : 1;
628
+ let skipStage;
629
+ let limitStage;
630
+ if (typeof limit === 'number' && limit > 0) {
631
+ skipStage = { $skip: limit * (pageMustBeOne - 1) };
632
+ limitStage = { $limit: limit };
633
+ }
634
+ else {
635
+ throw new factory.errors.Argument('limit', 'must be number > 0');
636
+ }
637
+ const pipeline = [
638
+ // uniwind前はドキュメントの_id指定
639
+ matchStageBeforeUnwind,
640
+ {
641
+ $unwind: {
642
+ path: '$containsPlace'
643
+ // includeArrayIndex: 'sectionIndex'
644
+ }
645
+ },
646
+ {
647
+ $unwind: {
648
+ path: '$containsPlace.containsPlace'
649
+ // includeArrayIndex: 'seatIndex'
650
+ }
651
+ },
652
+ ...matchStages,
653
+ {
654
+ $project: {
655
+ _id: 0,
656
+ branchCode: '$containsPlace.containsPlace.branchCode',
657
+ name: '$containsPlace.containsPlace.name',
658
+ seatingType: '$containsPlace.containsPlace.seatingType',
659
+ maximumAttendeeCapacity: '$containsPlace.containsPlace.maximumAttendeeCapacity',
660
+ additionalProperty: '$containsPlace.containsPlace.additionalProperty'
661
+ }
662
+ },
663
+ // {
664
+ // $sort: {
665
+ // // branchCode: factory.sortType.Ascending
666
+ // }
667
+ // },
668
+ skipStage,
669
+ limitStage
670
+ ];
671
+ // console.log(pipeline);
672
+ return this.placeModel.aggregate(pipeline)
673
+ .option({
674
+ maxTimeMS: settings_1.MONGO_MAX_TIME_MS
675
+ // explain: true,
676
+ // hint: 'searchSeatsSort'
677
+ })
678
+ .exec();
624
679
  }
625
680
  /**
626
681
  * 座席区分集計検索
627
682
  */
628
- aggregateSeatingTypes(params) {
629
- return __awaiter(this, void 0, void 0, function* () {
630
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
631
- const matchStages = [{ $match: { typeOf: { $eq: factory.placeType.ScreeningRoom } } }];
632
- const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
633
- if (typeof projectIdEq === 'string') {
634
- matchStages.push({ $match: { 'project.id': { $eq: projectIdEq } } });
635
- }
636
- const branchCodeEq = (_e = (_d = (_c = params.containedInPlace) === null || _c === void 0 ? void 0 : _c.containedInPlace) === null || _d === void 0 ? void 0 : _d.branchCode) === null || _e === void 0 ? void 0 : _e.$eq;
637
- if (typeof branchCodeEq === 'string') {
638
- matchStages.push({ $match: { branchCode: { $eq: branchCodeEq } } });
639
- }
640
- const containedInPlaceBranchCodeEq = (_j = (_h = (_g = (_f = params.containedInPlace) === null || _f === void 0 ? void 0 : _f.containedInPlace) === null || _g === void 0 ? void 0 : _g.containedInPlace) === null || _h === void 0 ? void 0 : _h.branchCode) === null || _j === void 0 ? void 0 : _j.$eq;
641
- if (typeof containedInPlaceBranchCodeEq === 'string') {
642
- matchStages.push({
643
- $match: { 'containedInPlace.branchCode': { $exists: true, $eq: containedInPlaceBranchCodeEq } }
644
- });
645
- }
646
- const seatBranchCodeIn = (_k = params.branchCode) === null || _k === void 0 ? void 0 : _k.$in;
647
- if (Array.isArray(seatBranchCodeIn)) {
648
- matchStages.push({
649
- $match: { 'containsPlace.containsPlace.branchCode': { $exists: true, $in: seatBranchCodeIn } }
650
- });
651
- }
652
- const sectionBranchCodeIn = (_m = (_l = params.containedInPlace) === null || _l === void 0 ? void 0 : _l.branchCode) === null || _m === void 0 ? void 0 : _m.$in;
653
- if (Array.isArray(sectionBranchCodeIn)) {
654
- matchStages.push({
655
- $match: { 'containsPlace.branchCode': { $exists: true, $in: sectionBranchCodeIn } }
656
- });
657
- }
658
- const aggregate = this.placeModel.aggregate([
659
- { $unwind: { path: '$containsPlace', preserveNullAndEmptyArrays: false } },
660
- { $unwind: { path: '$containsPlace.containsPlace', preserveNullAndEmptyArrays: false } },
661
- { $unwind: { path: '$containsPlace.containsPlace.seatingType', preserveNullAndEmptyArrays: false } },
662
- ...matchStages, // $unwindとの順序に注意
663
- {
664
- $group: {
665
- _id: '$containsPlace.containsPlace.seatingType'
666
- }
667
- },
668
- {
669
- $group: {
670
- // tslint:disable-next-line:no-null-keyword
671
- _id: null,
672
- seatingTypes: { $push: '$_id' }
673
- }
683
+ async aggregateSeatingTypes(params) {
684
+ const matchStages = [{ $match: { typeOf: { $eq: factory.placeType.ScreeningRoom } } }];
685
+ const projectIdEq = params.project?.id?.$eq;
686
+ if (typeof projectIdEq === 'string') {
687
+ matchStages.push({ $match: { 'project.id': { $eq: projectIdEq } } });
688
+ }
689
+ const branchCodeEq = params.containedInPlace?.containedInPlace?.branchCode?.$eq;
690
+ if (typeof branchCodeEq === 'string') {
691
+ matchStages.push({ $match: { branchCode: { $eq: branchCodeEq } } });
692
+ }
693
+ const containedInPlaceBranchCodeEq = params.containedInPlace?.containedInPlace?.containedInPlace?.branchCode?.$eq;
694
+ if (typeof containedInPlaceBranchCodeEq === 'string') {
695
+ matchStages.push({
696
+ $match: { 'containedInPlace.branchCode': { $exists: true, $eq: containedInPlaceBranchCodeEq } }
697
+ });
698
+ }
699
+ const seatBranchCodeIn = params.branchCode?.$in;
700
+ if (Array.isArray(seatBranchCodeIn)) {
701
+ matchStages.push({
702
+ $match: { 'containsPlace.containsPlace.branchCode': { $exists: true, $in: seatBranchCodeIn } }
703
+ });
704
+ }
705
+ const sectionBranchCodeIn = params.containedInPlace?.branchCode?.$in;
706
+ if (Array.isArray(sectionBranchCodeIn)) {
707
+ matchStages.push({
708
+ $match: { 'containsPlace.branchCode': { $exists: true, $in: sectionBranchCodeIn } }
709
+ });
710
+ }
711
+ const aggregate = this.placeModel.aggregate([
712
+ { $unwind: { path: '$containsPlace', preserveNullAndEmptyArrays: false } },
713
+ { $unwind: { path: '$containsPlace.containsPlace', preserveNullAndEmptyArrays: false } },
714
+ { $unwind: { path: '$containsPlace.containsPlace.seatingType', preserveNullAndEmptyArrays: false } },
715
+ ...matchStages, // $unwindとの順序に注意
716
+ {
717
+ $group: {
718
+ _id: '$containsPlace.containsPlace.seatingType'
674
719
  }
675
- ]);
676
- const result = (yield aggregate
677
- .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
678
- .exec()).shift();
679
- // .then((result) => result.map(({ _id }) => _id));
680
- return (result !== undefined) ? result.seatingTypes : [];
681
- });
720
+ },
721
+ {
722
+ $group: {
723
+ // tslint:disable-next-line:no-null-keyword
724
+ _id: null,
725
+ seatingTypes: { $push: '$_id' }
726
+ }
727
+ }
728
+ ]);
729
+ const result = (await aggregate
730
+ .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
731
+ .exec()).shift();
732
+ // .then((result) => result.map(({ _id }) => _id));
733
+ return (result !== undefined) ? result.seatingTypes : [];
682
734
  }
683
735
  /**
684
736
  * コードをキーにして冪等削除
685
737
  */
686
- deleteSeatsByBranchCode(params, options) {
687
- return __awaiter(this, void 0, void 0, function* () {
688
- const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
689
- const bulkWriteOps = [];
690
- if (Array.isArray(params)) {
691
- params.forEach(({ branchCode }) => {
692
- // 座席の存在するドキュメントでフィルター
693
- const filter = Object.assign({ typeOf: { $eq: factory.placeType.ScreeningRoom }, 'project.id': { $eq: project.id }, 'containedInPlace.branchCode': { $exists: true, $eq: movieTheaterCode }, branchCode: { $eq: roomCode }, 'containsPlace.branchCode': { $eq: sectionCode }, 'containsPlace.containsPlace.branchCode': { $eq: branchCode } }, (typeof (parentOrganization === null || parentOrganization === void 0 ? void 0 : parentOrganization.id) === 'string')
738
+ async deleteSeatsByBranchCode(params, options) {
739
+ const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
740
+ const bulkWriteOps = [];
741
+ if (Array.isArray(params)) {
742
+ params.forEach(({ branchCode }) => {
743
+ // 座席の存在するドキュメントでフィルター
744
+ const filter = {
745
+ typeOf: { $eq: factory.placeType.ScreeningRoom },
746
+ 'project.id': { $eq: project.id },
747
+ 'containedInPlace.branchCode': { $exists: true, $eq: movieTheaterCode },
748
+ branchCode: { $eq: roomCode },
749
+ 'containsPlace.branchCode': { $eq: sectionCode },
750
+ 'containsPlace.containsPlace.branchCode': { $eq: branchCode },
751
+ ...(typeof parentOrganization?.id === 'string')
694
752
  ? { 'parentOrganization.id': { $exists: true, $eq: parentOrganization.id } }
695
- : undefined);
696
- const updateFilter = {
697
- $pull: {
698
- 'containsPlace.$[screeningRoomSection].containsPlace': { branchCode }
699
- }
700
- };
701
- const arrayFilters = [
702
- { 'screeningRoomSection.branchCode': { $eq: sectionCode } }
703
- ];
704
- const updateOne = {
705
- filter,
706
- update: updateFilter,
707
- arrayFilters
708
- };
709
- bulkWriteOps.push({ updateOne });
710
- });
711
- }
712
- if (bulkWriteOps.length > 0) {
713
- const bulkWriteResult = yield this.placeModel.bulkWrite(bulkWriteOps, { ordered: false });
714
- return { bulkWriteResult };
715
- }
716
- });
753
+ : undefined
754
+ };
755
+ const updateFilter = {
756
+ $pull: {
757
+ 'containsPlace.$[screeningRoomSection].containsPlace': { branchCode }
758
+ }
759
+ };
760
+ const arrayFilters = [
761
+ { 'screeningRoomSection.branchCode': { $eq: sectionCode } }
762
+ ];
763
+ const updateOne = {
764
+ filter,
765
+ update: updateFilter,
766
+ arrayFilters
767
+ };
768
+ bulkWriteOps.push({ updateOne });
769
+ });
770
+ }
771
+ if (bulkWriteOps.length > 0) {
772
+ const bulkWriteResult = await this.placeModel.bulkWrite(bulkWriteOps, { ordered: false });
773
+ return { bulkWriteResult };
774
+ }
717
775
  }
718
- deleteSeatByBranchCode(seat, options) {
719
- return __awaiter(this, void 0, void 0, function* () {
720
- const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
721
- const doc = yield this.placeModel.findOneAndUpdate(Object.assign({ typeOf: { $eq: factory.placeType.ScreeningRoom }, 'project.id': { $eq: project.id }, 'containedInPlace.branchCode': {
722
- $exists: true,
723
- $eq: movieTheaterCode
724
- }, branchCode: { $eq: roomCode }, 'containsPlace.branchCode': { $eq: sectionCode }, 'containsPlace.containsPlace.branchCode': { $eq: seat.branchCode } }, (typeof (parentOrganization === null || parentOrganization === void 0 ? void 0 : parentOrganization.id) === 'string')
776
+ async deleteSeatByBranchCode(seat, options) {
777
+ const { project, parentOrganization, movieTheaterCode, roomCode, sectionCode } = options;
778
+ const doc = await this.placeModel.findOneAndUpdate({
779
+ typeOf: { $eq: factory.placeType.ScreeningRoom },
780
+ 'project.id': { $eq: project.id },
781
+ 'containedInPlace.branchCode': {
782
+ $exists: true,
783
+ $eq: movieTheaterCode
784
+ },
785
+ branchCode: { $eq: roomCode },
786
+ 'containsPlace.branchCode': { $eq: sectionCode },
787
+ 'containsPlace.containsPlace.branchCode': { $eq: seat.branchCode },
788
+ ...(typeof parentOrganization?.id === 'string')
725
789
  ? { 'parentOrganization.id': { $exists: true, $eq: parentOrganization.id } }
726
- : undefined), {
727
- $pull: {
728
- 'containsPlace.$[screeningRoomSection].containsPlace': {
729
- branchCode: seat.branchCode
730
- }
790
+ : undefined
791
+ }, {
792
+ $pull: {
793
+ 'containsPlace.$[screeningRoomSection].containsPlace': {
794
+ branchCode: seat.branchCode
731
795
  }
732
- }, {
733
- new: true,
734
- arrayFilters: [
735
- { 'screeningRoomSection.branchCode': { $eq: sectionCode } }
736
- ],
737
- projection: { 'containedInPlace.id': 1, typeOf: 1 }
738
- })
739
- .exec();
740
- if (doc === null) {
741
- throw new factory.errors.NotFound(factory.placeType.Seat);
742
796
  }
743
- return doc.toObject();
744
- });
797
+ }, {
798
+ new: true,
799
+ arrayFilters: [
800
+ { 'screeningRoomSection.branchCode': { $eq: sectionCode } }
801
+ ],
802
+ projection: { 'containedInPlace.id': 1, typeOf: 1 }
803
+ })
804
+ .exec();
805
+ if (doc === null) {
806
+ throw new factory.errors.NotFound(factory.placeType.Seat);
807
+ }
808
+ return doc.toObject();
745
809
  }
746
810
  }
747
811
  exports.SeatRepo = SeatRepo;