@chevre/domain 21.2.0-alpha.98 → 21.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/example/src/chevre/aggregateEventReservation.ts +1 -1
  2. package/example/src/chevre/aggregateSellerPaymentAccepted.ts +27 -0
  3. package/example/src/chevre/aggregation/aggregateSystem.ts +53 -22
  4. package/example/src/chevre/countDelayedTasks.ts +7 -2
  5. package/example/src/chevre/createManyEventsIfNotExist.ts +199 -46
  6. package/example/src/chevre/findScreeningRoomsByBranchCode.ts +4 -3
  7. package/example/src/chevre/giveUpStartDatePassedCertainPeriod.ts +56 -0
  8. package/example/src/chevre/lockStockHolder.ts +5 -2
  9. package/example/src/chevre/migrateCategoryCodeAdditionalProperties.ts +116 -0
  10. package/example/src/chevre/migrateScreeningEventSeriesVersion.ts +79 -0
  11. package/example/src/chevre/processPay.ts +5 -2
  12. package/example/src/chevre/processRegisterMembership.ts +8 -4
  13. package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
  14. package/example/src/chevre/processReserve.ts +1 -1
  15. package/example/src/chevre/searchAbortedTasks.ts +4 -6
  16. package/example/src/chevre/searchActions.ts +33 -0
  17. package/example/src/chevre/searchEventSeats.ts +5 -2
  18. package/example/src/chevre/searchHoldReservations.ts +38 -0
  19. package/example/src/chevre/searchPermissions.ts +54 -0
  20. package/example/src/chevre/searchScreeningRooms.ts +35 -0
  21. package/example/src/chevre/sendEmailMessage.ts +1 -2
  22. package/example/src/chevre/syncScreeningRooms.ts +22 -0
  23. package/example/src/chevre/syncScreeningRoomsAll.ts +44 -0
  24. package/example/src/chevre/unsetContainsInPlaceFromMovieTheater.ts +41 -0
  25. package/lib/chevre/factory/order.d.ts +4 -1
  26. package/lib/chevre/factory/order.js +19 -6
  27. package/lib/chevre/repo/account.js +3 -2
  28. package/lib/chevre/repo/accountTransaction.js +2 -1
  29. package/lib/chevre/repo/accountingReport.d.ts +1 -3
  30. package/lib/chevre/repo/action.d.ts +50 -1
  31. package/lib/chevre/repo/action.js +103 -34
  32. package/lib/chevre/repo/additionalProperty.js +2 -1
  33. package/lib/chevre/repo/aggregation.d.ts +3 -0
  34. package/lib/chevre/repo/aggregation.js +3 -0
  35. package/lib/chevre/repo/assetTransaction.js +6 -5
  36. package/lib/chevre/repo/categoryCode.d.ts +1 -1
  37. package/lib/chevre/repo/categoryCode.js +37 -25
  38. package/lib/chevre/repo/code.js +3 -2
  39. package/lib/chevre/repo/comment.js +2 -1
  40. package/lib/chevre/repo/creativeWork.d.ts +1 -1
  41. package/lib/chevre/repo/creativeWork.js +35 -12
  42. package/lib/chevre/repo/customer.js +2 -1
  43. package/lib/chevre/repo/emailMessage.js +2 -1
  44. package/lib/chevre/repo/event.d.ts +30 -2
  45. package/lib/chevre/repo/event.js +87 -36
  46. package/lib/chevre/repo/member.d.ts +14 -0
  47. package/lib/chevre/repo/member.js +31 -3
  48. package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
  49. package/lib/chevre/repo/mongoose/schemas/action.js +12 -0
  50. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +3 -3
  51. package/lib/chevre/repo/mongoose/schemas/holdReservation.d.ts +75 -0
  52. package/lib/chevre/repo/mongoose/schemas/holdReservation.js +93 -0
  53. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +3 -3
  54. package/lib/chevre/repo/mongoose/schemas/order.d.ts +21 -21
  55. package/lib/chevre/repo/mongoose/schemas/place.d.ts +6 -0
  56. package/lib/chevre/repo/mongoose/schemas/place.js +16 -1
  57. package/lib/chevre/repo/mongoose/schemas/product.js +6 -0
  58. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +9 -9
  59. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +3 -3
  60. package/lib/chevre/repo/offer.js +3 -2
  61. package/lib/chevre/repo/offerCatalog.js +0 -27
  62. package/lib/chevre/repo/offerItemCondition.js +2 -1
  63. package/lib/chevre/repo/order.js +8 -7
  64. package/lib/chevre/repo/ownershipInfo.js +2 -7
  65. package/lib/chevre/repo/paymentServiceProvider.d.ts +65 -0
  66. package/lib/chevre/repo/paymentServiceProvider.js +156 -0
  67. package/lib/chevre/repo/place.d.ts +203 -27
  68. package/lib/chevre/repo/place.js +1726 -694
  69. package/lib/chevre/repo/priceSpecification.js +3 -2
  70. package/lib/chevre/repo/product.d.ts +5 -3
  71. package/lib/chevre/repo/product.js +92 -5
  72. package/lib/chevre/repo/project.js +2 -1
  73. package/lib/chevre/repo/reservation.d.ts +9 -1
  74. package/lib/chevre/repo/reservation.js +29 -20
  75. package/lib/chevre/repo/role.d.ts +7 -0
  76. package/lib/chevre/repo/role.js +39 -2
  77. package/lib/chevre/repo/seller.d.ts +21 -1
  78. package/lib/chevre/repo/seller.js +59 -4
  79. package/lib/chevre/repo/serviceOutput.js +2 -1
  80. package/lib/chevre/repo/stockHolder.d.ts +143 -7
  81. package/lib/chevre/repo/stockHolder.js +622 -104
  82. package/lib/chevre/repo/task.d.ts +12 -1
  83. package/lib/chevre/repo/task.js +17 -7
  84. package/lib/chevre/repo/transaction.js +6 -5
  85. package/lib/chevre/repo/trip.js +2 -1
  86. package/lib/chevre/repository.d.ts +6 -0
  87. package/lib/chevre/repository.js +8 -1
  88. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +18 -8
  89. package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.js +19 -8
  90. package/lib/chevre/service/aggregation/system.d.ts +43 -1
  91. package/lib/chevre/service/aggregation/system.js +112 -2
  92. package/lib/chevre/service/assetTransaction/moneyTransfer.js +1 -1
  93. package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
  94. package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
  95. package/lib/chevre/service/assetTransaction/pay.js +7 -7
  96. package/lib/chevre/service/assetTransaction/refund.js +1 -1
  97. package/lib/chevre/service/assetTransaction/reserve.js +10 -3
  98. package/lib/chevre/service/event.d.ts +3 -0
  99. package/lib/chevre/service/event.js +52 -21
  100. package/lib/chevre/service/iam.d.ts +6 -2
  101. package/lib/chevre/service/iam.js +23 -9
  102. package/lib/chevre/service/offer/event/factory.js +22 -13
  103. package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
  104. package/lib/chevre/service/offer/eventServiceByCOA/factory.js +15 -8
  105. package/lib/chevre/service/offer/eventServiceByCOA.js +7 -9
  106. package/lib/chevre/service/offer/product/factory.js +13 -6
  107. package/lib/chevre/service/offer/product.js +2 -2
  108. package/lib/chevre/service/offer.d.ts +16 -8
  109. package/lib/chevre/service/offer.js +71 -8
  110. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +31 -17
  111. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +1 -1
  112. package/lib/chevre/service/order/onOrderStatusChanged.js +2 -2
  113. package/lib/chevre/service/order/placeOrder.js +4 -4
  114. package/lib/chevre/service/order/returnOrder.js +1 -1
  115. package/lib/chevre/service/order/sendOrder.js +3 -3
  116. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +4 -6
  117. package/lib/chevre/service/payment/any/onRefund.js +46 -42
  118. package/lib/chevre/service/payment/any.d.ts +9 -6
  119. package/lib/chevre/service/payment/any.js +6 -2
  120. package/lib/chevre/service/payment/creditCard.js +2 -2
  121. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +8 -7
  122. package/lib/chevre/service/payment/movieTicket/factory.d.ts +1 -1
  123. package/lib/chevre/service/payment/movieTicket/getCredentials.d.ts +1 -1
  124. package/lib/chevre/service/payment/movieTicket/getCredentials.js +1 -1
  125. package/lib/chevre/service/payment/movieTicket/validation.d.ts +3 -4
  126. package/lib/chevre/service/payment/movieTicket/validation.js +53 -12
  127. package/lib/chevre/service/payment/movieTicket.d.ts +1 -1
  128. package/lib/chevre/service/payment/movieTicket.js +4 -4
  129. package/lib/chevre/service/reserve/cancelReservation.js +15 -3
  130. package/lib/chevre/service/reserve/confirmReservation.js +19 -11
  131. package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
  132. package/lib/chevre/service/task/cancelPendingReservation.js +1 -1
  133. package/lib/chevre/service/task/cancelReservation.js +1 -1
  134. package/lib/chevre/service/task/deleteTransaction.js +2 -0
  135. package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
  136. package/lib/chevre/service/task/onEventChanged.js +29 -0
  137. package/lib/chevre/service/task/onResourceUpdated.d.ts +7 -0
  138. package/lib/chevre/service/task/onResourceUpdated.js +396 -0
  139. package/lib/chevre/service/task/syncScreeningRooms.d.ts +7 -0
  140. package/lib/chevre/service/task/syncScreeningRooms.js +24 -0
  141. package/lib/chevre/service/task/voidReserveTransaction.js +1 -1
  142. package/lib/chevre/service/transaction/deleteTransaction.d.ts +2 -0
  143. package/lib/chevre/service/transaction/deleteTransaction.js +129 -1
  144. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +1 -0
  145. package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -1
  146. package/lib/chevre/service/transaction/moneyTransfer.js +1 -1
  147. package/lib/chevre/service/transaction/orderProgramMembership/findCreditCard.js +1 -1
  148. package/lib/chevre/service/transaction/orderProgramMembership/findPaymentCardPermit.js +1 -1
  149. package/lib/chevre/service/transaction/orderProgramMembership.js +7 -4
  150. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +1 -0
  151. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/givePointAward.js +1 -1
  152. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  153. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  154. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/sendEmailMessage.js +4 -4
  155. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.js +3 -4
  156. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +8 -12
  157. package/lib/chevre/service/transaction/placeOrderInProgress.js +6 -4
  158. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +1 -0
  159. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.js +2 -2
  160. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +5 -5
  161. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +2 -2
  162. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +3 -3
  163. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +1 -1
  164. package/lib/chevre/service/transaction/returnOrder.js +3 -1
  165. package/lib/chevre/settings.d.ts +11 -0
  166. package/lib/chevre/settings.js +44 -2
  167. package/package.json +3 -3
  168. package/example/src/chevre/eventCatalog2eventService.ts +0 -123
  169. package/example/src/chevre/migrateOrderAdditionalProperties.ts +0 -85
  170. package/example/src/chevre/migrateStockHolderKeys.ts +0 -89
  171. package/example/src/chevre/searchAssetTransactions.ts +0 -30
@@ -10,29 +10,34 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.validateMovieTicket = void 0;
13
- /**
14
- * 決済取引サービス
15
- */
13
+ const createDebug = require("debug");
16
14
  const factory = require("../../../factory");
17
15
  const checkByIdentifier_1 = require("./checkByIdentifier");
18
- function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBeforePay) {
16
+ const debug = createDebug('chevre-domain:service:payment');
17
+ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBeforePay, useCheckByIdentifierIfNotYet) {
19
18
  // tslint:disable-next-line:max-func-body-length
20
19
  return (repos) => __awaiter(this, void 0, void 0, function* () {
21
20
  var _a, _b, _c, _d;
22
21
  const movieTickets = (_a = params.object.paymentMethod) === null || _a === void 0 ? void 0 : _a.movieTickets;
23
22
  if (!Array.isArray(movieTickets)) {
24
- throw new factory.errors.Argument('object.paymentMethod.movieTickets must be an array');
23
+ throw new factory.errors.Argument('movieTickets', 'object.paymentMethod.movieTickets must be an array');
25
24
  }
26
25
  // イベント1つのみ許可
27
- const eventIds = [...new Set(movieTickets === null || movieTickets === void 0 ? void 0 : movieTickets.map((t) => t.serviceOutput.reservationFor.id))];
26
+ const eventIds = [...new Set(movieTickets.map((t) => t.serviceOutput.reservationFor.id))];
28
27
  if (eventIds.length !== 1) {
29
28
  throw new factory.errors.Argument('movieTickets', 'Number of events must be 1');
30
29
  }
31
- // ムビチケ購入管理番号は1つのみ許可
32
- const movieTicketIdentifiers = [...new Set(movieTickets === null || movieTickets === void 0 ? void 0 : movieTickets.map((t) => t.identifier))];
30
+ // 決済カードidentifierは1つのみ許可
31
+ const movieTicketIdentifiers = [...new Set(movieTickets.map((t) => t.identifier))];
33
32
  if (movieTicketIdentifiers.length !== 1) {
34
33
  throw new factory.errors.Argument('movieTickets', 'Number of movie ticket identifiers must be 1');
35
34
  }
35
+ const movieTicketIdentifier = movieTicketIdentifiers[0];
36
+ // 決済カードaccessCodeは1つのみ許可(2023-06-23~)
37
+ const accessCodes = [...new Set(movieTickets.map((t) => t.accessCode))];
38
+ if (accessCodes.length !== 1) {
39
+ throw new factory.errors.Argument('movieTickets', 'Number of movie ticket accessCodes must be 1');
40
+ }
36
41
  // ムビチケ系統の決済方法タイプは動的
37
42
  const paymentMethodType = (_b = params.object.paymentMethod) === null || _b === void 0 ? void 0 : _b.typeOf;
38
43
  if (typeof paymentMethodType !== 'string') {
@@ -47,7 +52,7 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
47
52
  if (typeof sellerId !== 'string') {
48
53
  throw new factory.errors.ArgumentNull('recipient.id');
49
54
  }
50
- const seller = yield repos.seller.findById({ id: sellerId });
55
+ const seller = yield repos.seller.findById({ id: sellerId }, ['paymentAccepted', 'project'], []);
51
56
  const paymentAccepted = (_d = seller.paymentAccepted) === null || _d === void 0 ? void 0 : _d.some((a) => a.paymentMethodType === paymentMethodType);
52
57
  if (paymentAccepted !== true) {
53
58
  throw new factory.errors.Argument('recipient', 'payment not accepted');
@@ -56,11 +61,13 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
56
61
  if (!useCheckMovieTicketBeforePay) {
57
62
  return { accountsReceivablesByServiceType: [] };
58
63
  }
59
- const checkResult = yield (0, checkByIdentifier_1.checkByIdentifier)({
64
+ const checkResult = yield checkByIdentifierIfNotYet({
65
+ movieTicketIdentifier,
60
66
  movieTickets: movieTickets,
61
67
  seller: seller,
62
68
  screeningEvent: screeningEvent,
63
- paymentServiceId
69
+ paymentServiceId,
70
+ useCheckByIdentifierIfNotYet
64
71
  })(repos);
65
72
  const accountsReceivablesByServiceType = [];
66
73
  // 券種ごとに枚数が足りているか
@@ -69,7 +76,7 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
69
76
  var _a, _b;
70
77
  const requiredMovieTicketsCountByServiceType = movieTickets.filter((t) => t.serviceType === serviceType).length;
71
78
  let availableMovieTicketsCountByServiceType = 0;
72
- const ykknInfos = (_b = (_a = checkResult.purchaseNumberAuthResult.knyknrNoInfoOut) === null || _a === void 0 ? void 0 : _a.find((knyknrNoInfoOut) => knyknrNoInfoOut.knyknrNo === movieTicketIdentifiers[0])) === null || _b === void 0 ? void 0 : _b.ykknInfo;
79
+ const ykknInfos = (_b = (_a = checkResult.purchaseNumberAuthResult.knyknrNoInfoOut) === null || _a === void 0 ? void 0 : _a.find((knyknrNoInfoOut) => knyknrNoInfoOut.knyknrNo === movieTicketIdentifier)) === null || _b === void 0 ? void 0 : _b.ykknInfo;
73
80
  const ykknInfoOfServiceType = ykknInfos === null || ykknInfos === void 0 ? void 0 : ykknInfos.find((ykknInfo) => ykknInfo.ykknshTyp === serviceType);
74
81
  const ykknKnshbtsmiNum = ykknInfoOfServiceType === null || ykknInfoOfServiceType === void 0 ? void 0 : ykknInfoOfServiceType.ykknKnshbtsmiNum;
75
82
  if (typeof ykknKnshbtsmiNum === 'string') {
@@ -89,3 +96,37 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
89
96
  });
90
97
  }
91
98
  exports.validateMovieTicket = validateMovieTicket;
99
+ function checkByIdentifierIfNotYet(params) {
100
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
101
+ var _a;
102
+ let checkResult;
103
+ if (params.useCheckByIdentifierIfNotYet === true) {
104
+ // すでにCheckActionが存在すれば認証しない(2023-06-06~)
105
+ debug('searching alreadyCheckedActions...movieTicketIdentifier:', params.movieTicketIdentifier, 'screeningEvent.id:', params.screeningEvent.id);
106
+ const alreadyCheckedAction = yield repos.action.search({
107
+ limit: 1,
108
+ page: 1,
109
+ sort: { startDate: factory.sortType.Descending },
110
+ typeOf: { $eq: factory.actionType.CheckAction },
111
+ actionStatus: { $in: [factory.actionStatusType.CompletedActionStatus] },
112
+ object: {
113
+ typeOf: { $eq: factory.service.paymentService.PaymentServiceType.MovieTicket },
114
+ id: { $eq: params.paymentServiceId },
115
+ movieTickets: {
116
+ identifier: { $eq: params.movieTicketIdentifier },
117
+ serviceOutput: {
118
+ reservationFor: { id: { $eq: params.screeningEvent.id } } // 指定のイベントにおいて
119
+ }
120
+ }
121
+ }
122
+ }, ['result'], []);
123
+ debug('alreadyCheckedAction found', alreadyCheckedAction, 'movieTicketIdentifier:', params.movieTicketIdentifier, 'screeningEvent.id:', params.screeningEvent.id);
124
+ checkResult = (_a = alreadyCheckedAction.shift()) === null || _a === void 0 ? void 0 : _a.result;
125
+ }
126
+ if (checkResult === undefined) {
127
+ debug('checkByIdentifier processing because movieTickets not checked yet...', checkResult);
128
+ checkResult = yield (0, checkByIdentifier_1.checkByIdentifier)(params)(repos);
129
+ }
130
+ return checkResult;
131
+ });
132
+ }
@@ -49,7 +49,7 @@ interface IAuthorizeResult {
49
49
  * MovieTicket承認
50
50
  * オーソリサービスが存在するわけではないので、実質着券する
51
51
  */
52
- declare function authorize(params: factory.assetTransaction.pay.IStartParamsWithoutDetail, transaction: factory.assetTransaction.pay.ITransaction, paymentServiceId: string, useCheckMovieTicketBeforePay: boolean): (repos: {
52
+ declare function authorize(params: factory.assetTransaction.pay.IStartParamsWithoutDetail, transaction: factory.assetTransaction.pay.ITransaction, paymentServiceId: string, useCheckMovieTicketBeforePay: boolean, useCheckByIdentifierIfNotYet: boolean): (repos: {
53
53
  action: ActionRepo;
54
54
  accountingReport: AccountingReportRepo;
55
55
  event: EventRepo;
@@ -58,7 +58,7 @@ function checkMovieTicket(params) {
58
58
  id: eventIds[0]
59
59
  });
60
60
  // ショップ情報取得
61
- const seller = yield repos.seller.findById({ id: (_e = params.object[0]) === null || _e === void 0 ? void 0 : _e.seller.id });
61
+ const seller = yield repos.seller.findById({ id: (_e = params.object[0]) === null || _e === void 0 ? void 0 : _e.seller.id }, ['paymentAccepted', 'project'], []);
62
62
  const paymentAccepted = (_f = seller.paymentAccepted) === null || _f === void 0 ? void 0 : _f.some((a) => a.paymentMethodType === paymentMethodType);
63
63
  if (paymentAccepted !== true) {
64
64
  throw new factory.errors.Argument('transactionId', 'payment not accepted');
@@ -102,7 +102,7 @@ exports.checkMovieTicket = checkMovieTicket;
102
102
  * MovieTicket承認
103
103
  * オーソリサービスが存在するわけではないので、実質着券する
104
104
  */
105
- function authorize(params, transaction, paymentServiceId, useCheckMovieTicketBeforePay) {
105
+ function authorize(params, transaction, paymentServiceId, useCheckMovieTicketBeforePay, useCheckByIdentifierIfNotYet) {
106
106
  return (repos) => __awaiter(this, void 0, void 0, function* () {
107
107
  var _a, _b;
108
108
  let accountId;
@@ -110,7 +110,7 @@ function authorize(params, transaction, paymentServiceId, useCheckMovieTicketBef
110
110
  let accountsReceivablesByServiceType = [];
111
111
  try {
112
112
  // MovieTicket決済の場合、認証
113
- const validateMovieTicketResult = yield (0, validation_1.validateMovieTicket)(params, paymentServiceId, useCheckMovieTicketBeforePay)(repos);
113
+ const validateMovieTicketResult = yield (0, validation_1.validateMovieTicket)(params, paymentServiceId, useCheckMovieTicketBeforePay, useCheckByIdentifierIfNotYet)(repos);
114
114
  accountsReceivablesByServiceType = validateMovieTicketResult.accountsReceivablesByServiceType;
115
115
  const paymentMethod = transaction.object.paymentMethod;
116
116
  const paymentMethodType = String(paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.typeOf);
@@ -302,7 +302,7 @@ function payActionParams2seatInfoSyncIn(params) {
302
302
  // イベント取得属性最適化(2023-01-23~)
303
303
  // const event = await repos.event.findById<factory.eventType.ScreeningEvent>({ id: eventIds[0] });
304
304
  const event = yield repos.event.findMinimizedIndividualEventById({ id: eventIds[0] });
305
- const seller = yield repos.seller.findById({ id: String((_d = params.recipient) === null || _d === void 0 ? void 0 : _d.id) });
305
+ const seller = yield repos.seller.findById({ id: String((_d = params.recipient) === null || _d === void 0 ? void 0 : _d.id) }, ['paymentAccepted', 'project'], []);
306
306
  // 全購入管理番号のMovieTicketをマージ
307
307
  const movieTickets = params.object.reduce((a, b) => [...a, ...(Array.isArray(b.movieTickets)) ? b.movieTickets : []], []);
308
308
  const sellerCredentials = yield (0, getCredentials_1.getCredentials)({ paymentMethodType, seller, paymentServiceId })(repos);
@@ -98,6 +98,7 @@ function cancelPengindIfNotYet(params, now) {
98
98
  yield processUnlockSeat({
99
99
  reservation: {
100
100
  id: cancelingSubReservation.id,
101
+ project: { id: reserveTransaction.project.id },
101
102
  reservedTicket: cancelingSubReservation.reservedTicket,
102
103
  subReservation: cancelingSubReservation.subReservation,
103
104
  reservationFor: {
@@ -204,6 +205,7 @@ function cancelReservation(actionAttributesList) {
204
205
  yield processUnlockSeat({
205
206
  reservation: {
206
207
  id: cancelingSubReservation.id,
208
+ project: { id: reserveTransaction.project.id },
207
209
  reservedTicket: cancelingSubReservation.reservedTicket,
208
210
  subReservation: cancelingSubReservation.subReservation,
209
211
  reservationFor: {
@@ -255,6 +257,7 @@ function cancelReservation(actionAttributesList) {
255
257
  yield processUnlockSeat({
256
258
  reservation: {
257
259
  id: reservation.id,
260
+ project: { id: reservation.project.id },
258
261
  reservedTicket: reservation.reservedTicket,
259
262
  subReservation: reservation.subReservation,
260
263
  reservationFor: {
@@ -344,13 +347,16 @@ function processUnlockSeat(params) {
344
347
  .toDate();
345
348
  // 予約IDでロックされていれば解除
346
349
  let lockKey = {
350
+ project: reservation.project,
347
351
  eventId: reservation.reservationFor.id,
348
352
  startDate: eventStartDate,
353
+ hasTicketedSeat: false,
349
354
  offer: {
350
355
  itemOffered: { serviceOutput: { id: reservation.id } },
351
356
  seatNumber: '',
352
357
  seatSection: ''
353
- }
358
+ },
359
+ holder: params.expectedHolder
354
360
  };
355
361
  let holder = yield repos.stockHolder.getHolder(lockKey);
356
362
  if (holder === params.expectedHolder) {
@@ -360,12 +366,15 @@ function processUnlockSeat(params) {
360
366
  const ticketedSeat = reservation.reservedTicket.ticketedSeat;
361
367
  if (ticketedSeat !== undefined) {
362
368
  lockKey = {
369
+ project: reservation.project,
363
370
  eventId: reservation.reservationFor.id,
364
371
  startDate: eventStartDate,
372
+ hasTicketedSeat: true,
365
373
  offer: {
366
374
  seatNumber: ticketedSeat.seatNumber,
367
375
  seatSection: ticketedSeat.seatSection
368
- }
376
+ },
377
+ holder: params.expectedHolder
369
378
  };
370
379
  holder = yield repos.stockHolder.getHolder(lockKey);
371
380
  if (holder === params.expectedHolder) {
@@ -381,12 +390,15 @@ function processUnlockSeat(params) {
381
390
  const seatNumber4sub = (_d = (_c = subReservation.reservedTicket) === null || _c === void 0 ? void 0 : _c.ticketedSeat) === null || _d === void 0 ? void 0 : _d.seatNumber;
382
391
  if (typeof seatSection4sub === 'string' && typeof seatNumber4sub === 'string') {
383
392
  const lockKey4sub = {
393
+ project: reservation.project,
384
394
  eventId: reservation.reservationFor.id,
385
395
  startDate: eventStartDate,
396
+ hasTicketedSeat: true,
386
397
  offer: {
387
398
  seatNumber: seatNumber4sub,
388
399
  seatSection: seatSection4sub
389
- }
400
+ },
401
+ holder: params.expectedHolder
390
402
  };
391
403
  const holder4sub = yield repos.stockHolder.getHolder(lockKey4sub);
392
404
  if (holder4sub === params.expectedHolder) {
@@ -97,17 +97,25 @@ function reserveIfNotYet(params, options) {
97
97
  if (reserveTransaction.object.disablePendingReservations === true) {
98
98
  const reservationFor = reserveTransaction.object.reservationFor;
99
99
  const subReservations = reserveTransaction.object.subReservation;
100
- if (Array.isArray(subReservations)
101
- && typeof (reservationFor === null || reservationFor === void 0 ? void 0 : reservationFor.typeOf) === 'string') {
102
- yield Promise.all(subReservations.map((subReservation) => __awaiter(this, void 0, void 0, function* () {
103
- yield repos.reservation.confirmByIdIfNotExist({
104
- reservation: subReservation,
105
- reservationFor,
106
- underName,
107
- broker: reserveTransaction.object.broker,
108
- issuedThrough: reserveTransaction.object.issuedThrough
109
- });
110
- })));
100
+ if (Array.isArray(subReservations) && typeof (reservationFor === null || reservationFor === void 0 ? void 0 : reservationFor.typeOf) === 'string') {
101
+ // confirmManyに変更(2023-06-13~)
102
+ const confirmManyIfNotExistResult = yield repos.reservation.confirmManyIfNotExist({
103
+ subReservation: subReservations,
104
+ reservationFor,
105
+ underName,
106
+ broker: reserveTransaction.object.broker,
107
+ issuedThrough: reserveTransaction.object.issuedThrough
108
+ });
109
+ debug('confirmManyIfNotExistResult:', confirmManyIfNotExistResult, 'reservationNumber:', reservationPackage.reservationNumber);
110
+ // await Promise.all(subReservations.map(async (subReservation) => {
111
+ // await repos.reservation.confirmByIdIfNotExist({
112
+ // reservation: subReservation,
113
+ // reservationFor,
114
+ // underName,
115
+ // broker: reserveTransaction.object.broker,
116
+ // issuedThrough: reserveTransaction.object.issuedThrough
117
+ // });
118
+ // }));
111
119
  }
112
120
  }
113
121
  else {
@@ -32,7 +32,7 @@ function call(data) {
32
32
  }
33
33
  yield AggregationService.event.aggregateScreeningEvent(data)({
34
34
  event: new event_1.MongoRepository(settings.connection),
35
- stockHolder: new stockHolder_1.StockHolderRepository(settings.redisClient),
35
+ stockHolder: new stockHolder_1.StockHolderRepository(settings.redisClient, settings.connection),
36
36
  offer: new offer_1.MongoRepository(settings.connection),
37
37
  offerCatalog: new offerCatalog_1.MongoRepository(settings.connection),
38
38
  offerRateLimit: new offer_2.RedisRepository(settings.redisClient),
@@ -30,7 +30,7 @@ function call(data) {
30
30
  const assetTransactionRepo = new assetTransaction_1.MongoRepository(settings.connection);
31
31
  const taskRepo = new task_1.MongoRepository(settings.connection);
32
32
  const reservationRepo = new reservation_1.MongoRepository(settings.connection);
33
- const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient);
33
+ const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient, settings.connection);
34
34
  const offerRateLimitRepo = new offer_1.RedisRepository(settings.redisClient);
35
35
  // アクション数は予約番号単位で1しかありえないはず(2023-06-05~)
36
36
  if (data.actionAttributes.length !== 1) {
@@ -30,7 +30,7 @@ function call(data) {
30
30
  const reservationRepo = new reservation_1.MongoRepository(settings.connection);
31
31
  const taskRepo = new task_1.MongoRepository(settings.connection);
32
32
  const transactionRepo = new assetTransaction_1.MongoRepository(settings.connection);
33
- const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient);
33
+ const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient, settings.connection);
34
34
  const offerRateLimitRepo = new offer_1.RedisRepository(settings.redisClient);
35
35
  yield ReserveService.cancelReservation(data.actionAttributes)({
36
36
  action: actionRepo,
@@ -16,6 +16,7 @@ const assetTransaction_1 = require("../../repo/assetTransaction");
16
16
  const order_1 = require("../../repo/order");
17
17
  const ownershipInfo_1 = require("../../repo/ownershipInfo");
18
18
  const reservation_1 = require("../../repo/reservation");
19
+ const task_1 = require("../../repo/task");
19
20
  const transaction_1 = require("../../repo/transaction");
20
21
  const TransactionService = require("../transaction");
21
22
  /**
@@ -30,6 +31,7 @@ function call(data) {
30
31
  order: new order_1.MongoRepository(settings.connection),
31
32
  ownershipInfo: new ownershipInfo_1.MongoRepository(settings.connection),
32
33
  reservation: new reservation_1.MongoRepository(settings.connection),
34
+ task: new task_1.MongoRepository(settings.connection),
33
35
  transaction: new transaction_1.MongoRepository(settings.connection)
34
36
  });
35
37
  });
@@ -0,0 +1,7 @@
1
+ import * as factory from '../../factory';
2
+ import { IConnectionSettings } from '../task';
3
+ export type IOperation<T> = (settings: IConnectionSettings) => Promise<T>;
4
+ /**
5
+ * タスク実行関数
6
+ */
7
+ export declare function call(data: factory.task.onEventChanged.IData): IOperation<void>;
@@ -0,0 +1,29 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.call = void 0;
13
+ const event_1 = require("../../repo/event");
14
+ const project_1 = require("../../repo/project");
15
+ const task_1 = require("../../repo/task");
16
+ const offer_1 = require("../offer");
17
+ /**
18
+ * タスク実行関数
19
+ */
20
+ function call(data) {
21
+ return (settings) => __awaiter(this, void 0, void 0, function* () {
22
+ yield (0, offer_1.onEventChanged)(data)({
23
+ event: new event_1.MongoRepository(settings.connection),
24
+ project: new project_1.MongoRepository(settings.connection),
25
+ task: new task_1.MongoRepository(settings.connection)
26
+ });
27
+ });
28
+ }
29
+ exports.call = call;
@@ -0,0 +1,7 @@
1
+ import * as factory from '../../factory';
2
+ import { IConnectionSettings } from '../task';
3
+ export type IOperation<T> = (settings: IConnectionSettings) => Promise<T>;
4
+ /**
5
+ * タスク実行関数
6
+ */
7
+ export declare function call(data: factory.task.onResourceUpdated.IData): IOperation<void>;