@chevre/domain 20.1.0-alpha.4 → 20.1.0-alpha.40

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 (107) hide show
  1. package/example/src/chevre/deleteEvents.ts +9 -1
  2. package/example/src/chevre/migrateAccountTitleAdditionalProperties.ts +157 -0
  3. package/example/src/chevre/migrateCreativeWorkAdditionalProperties.ts +116 -0
  4. package/example/src/chevre/migrateEventOffersSellerMakesOffer.ts +139 -0
  5. package/example/src/chevre/migrateEventProjectAttributes.ts +57 -0
  6. package/example/src/chevre/migratePlaceAdditionalProperties.ts +162 -0
  7. package/example/src/chevre/migrateSSKTEventCOAEndpoint.ts +64 -0
  8. package/example/src/chevre/searchEvents.ts +36 -16
  9. package/lib/chevre/repo/accountAction.d.ts +0 -18
  10. package/lib/chevre/repo/accountAction.js +402 -355
  11. package/lib/chevre/repo/accountTitle.d.ts +1 -0
  12. package/lib/chevre/repo/accountTitle.js +6 -1
  13. package/lib/chevre/repo/additionalProperty.d.ts +35 -0
  14. package/lib/chevre/repo/additionalProperty.js +205 -0
  15. package/lib/chevre/repo/categoryCode.d.ts +1 -0
  16. package/lib/chevre/repo/categoryCode.js +15 -1
  17. package/lib/chevre/repo/creativeWork.js +10 -1
  18. package/lib/chevre/repo/customer.d.ts +1 -0
  19. package/lib/chevre/repo/customer.js +5 -0
  20. package/lib/chevre/repo/event.d.ts +12 -4
  21. package/lib/chevre/repo/event.js +84 -48
  22. package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -0
  23. package/lib/chevre/repo/merchantReturnPolicy.js +5 -0
  24. package/lib/chevre/repo/mongoose/model/additionalProperty.d.ts +7 -0
  25. package/lib/chevre/repo/mongoose/model/additionalProperty.js +81 -0
  26. package/lib/chevre/repo/mongoose/model/categoryCode.js +18 -2
  27. package/lib/chevre/repo/mongoose/model/creativeWork.js +6 -0
  28. package/lib/chevre/repo/mongoose/model/event.js +53 -0
  29. package/lib/chevre/repo/mongoose/model/offer.js +7 -1
  30. package/lib/chevre/repo/mongoose/model/offerCatalog.js +21 -2
  31. package/lib/chevre/repo/mongoose/model/ownershipInfo.js +3 -15
  32. package/lib/chevre/repo/mongoose/model/place.js +42 -0
  33. package/lib/chevre/repo/offer.js +10 -1
  34. package/lib/chevre/repo/offerCatalog.js +10 -10
  35. package/lib/chevre/repo/place.d.ts +1 -0
  36. package/lib/chevre/repo/place.js +54 -7
  37. package/lib/chevre/repo/reservation.d.ts +13 -0
  38. package/lib/chevre/repo/reservation.js +28 -0
  39. package/lib/chevre/repo/transaction.js +20 -5
  40. package/lib/chevre/repository.d.ts +6 -3
  41. package/lib/chevre/repository.js +10 -5
  42. package/lib/chevre/service/account.d.ts +0 -4
  43. package/lib/chevre/service/account.js +24 -22
  44. package/lib/chevre/service/accountTransaction/deposit.d.ts +0 -2
  45. package/lib/chevre/service/accountTransaction/deposit.js +3 -3
  46. package/lib/chevre/service/accountTransaction/transfer.d.ts +0 -2
  47. package/lib/chevre/service/accountTransaction/transfer.js +3 -3
  48. package/lib/chevre/service/accountTransaction/withdraw.d.ts +0 -2
  49. package/lib/chevre/service/accountTransaction/withdraw.js +3 -3
  50. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +9 -19
  51. package/lib/chevre/service/assetTransaction/reserve/factory.js +119 -115
  52. package/lib/chevre/service/assetTransaction/reserve.js +99 -89
  53. package/lib/chevre/service/delivery/factory.js +2 -1
  54. package/lib/chevre/service/event.js +20 -6
  55. package/lib/chevre/service/offer/event/authorize.d.ts +4 -0
  56. package/lib/chevre/service/offer/event/authorize.js +65 -27
  57. package/lib/chevre/service/offer/event/factory.d.ts +1 -1
  58. package/lib/chevre/service/offer/event/factory.js +17 -12
  59. package/lib/chevre/service/offer/eventServiceByCOA/factory.js +19 -9
  60. package/lib/chevre/service/offer/factory.js +7 -20
  61. package/lib/chevre/service/offer.js +6 -6
  62. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +4 -2
  63. package/lib/chevre/service/order/onOrderStatusChanged.js +3 -2
  64. package/lib/chevre/service/order/placeOrder.js +13 -5
  65. package/lib/chevre/service/order/returnOrder.js +2 -1
  66. package/lib/chevre/service/order/sendOrder.js +2 -1
  67. package/lib/chevre/service/reserve/cancelReservation.js +135 -87
  68. package/lib/chevre/service/reserve/confirmReservation.js +65 -33
  69. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.d.ts +1 -1
  70. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +67 -30
  71. package/lib/chevre/service/task/confirmReserveTransaction.js +1 -1
  72. package/lib/chevre/service/transaction/orderProgramMembership.js +6 -8
  73. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +6 -3
  74. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +9 -4
  75. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/givePointAward.js +2 -1
  76. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +2 -1
  77. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +2 -1
  78. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/sendEmailMessage.js +4 -3
  79. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.js +2 -1
  80. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +10 -6
  81. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -4
  82. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateSeller.d.ts +3 -1
  83. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateSeller.js +3 -2
  84. package/lib/chevre/service/transaction/placeOrderInProgress.js +16 -2
  85. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.js +4 -5
  86. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +6 -3
  87. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +4 -6
  88. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +2 -1
  89. package/lib/chevre/service/transaction/returnOrder.js +10 -1
  90. package/lib/chevre/service/transaction.js +1 -14
  91. package/package.json +4 -4
  92. package/example/src/chevre/accountBlanceTest.ts +0 -24
  93. package/example/src/chevre/checkOffersAppliesToMovieTicket.ts +0 -56
  94. package/example/src/chevre/createSeats.ts +0 -59
  95. package/example/src/chevre/manageOwnedByOfOwnershipInfo.ts +0 -35
  96. package/example/src/chevre/migrateEventOffersItemOfferedName.ts +0 -82
  97. package/example/src/chevre/migrateMovieTicketChargePriceSpecs.ts +0 -92
  98. package/example/src/chevre/migrateSellerMakesOffers.ts +0 -84
  99. package/example/src/chevre/migrateTTTSOldEventId.ts +0 -68
  100. package/example/src/chevre/publishConfirmationNumber.ts +0 -30
  101. package/example/src/chevre/publishServiceOutputIdentifier.ts +0 -28
  102. package/example/src/chevre/publishTransactionNumber.ts +0 -28
  103. package/example/src/chevre/renameTransaction.ts +0 -22
  104. package/lib/chevre/service/task/accountMoneyTransfer.d.ts +0 -3
  105. package/lib/chevre/service/task/accountMoneyTransfer.js +0 -31
  106. package/lib/chevre/service/task/cancelAccountMoneyTransfer.d.ts +0 -3
  107. package/lib/chevre/service/task/cancelAccountMoneyTransfer.js +0 -33
@@ -419,7 +419,8 @@ function createScreeningEventFromCOA(params) {
419
419
  .toDate();
420
420
  }
421
421
  const offers = {
422
- project: { typeOf: params.project.typeOf, id: params.project.id },
422
+ // 不要なので廃止(2022-12-19~)
423
+ // project: { typeOf: params.project.typeOf, id: params.project.id },
423
424
  typeOf: factory.offerType.Offer,
424
425
  offeredThrough: {
425
426
  typeOf: 'WebAPI',
@@ -437,7 +438,8 @@ function createScreeningEventFromCOA(params) {
437
438
  eventStatus: factory.eventStatusType.EventScheduled,
438
439
  workPerformed: params.superEvent.workPerformed,
439
440
  location: {
440
- project: { typeOf: params.project.typeOf, id: params.project.id },
441
+ // 不要なので廃止(2022-12-19~)
442
+ // project: { typeOf: params.project.typeOf, id: params.project.id },
441
443
  typeOf: params.screenRoom.typeOf,
442
444
  branchCode: params.screenRoom.branchCode,
443
445
  name: params.screenRoom.name
@@ -475,7 +477,7 @@ function createScreeningEventAdditionalPropertyFromCOA(params) {
475
477
  return {
476
478
  coaInfo,
477
479
  additionalProperty: [
478
- { name: 'COA_ENDPOINT', value: credentials_1.credentials.coa.endpoint },
480
+ // { name: 'COA_ENDPOINT', value: credentials.coa.endpoint },
479
481
  { name: 'coaInfo', value: JSON.stringify(coaInfo) }
480
482
  ]
481
483
  };
@@ -529,7 +531,8 @@ function createScreeningEventSeriesFromCOA(params) {
529
531
  kanaName: params.filmFromCOA.titleNameKana,
530
532
  alternativeHeadline: params.filmFromCOA.titleNameShort,
531
533
  location: {
532
- project: { typeOf: params.project.typeOf, id: params.project.id },
534
+ // 不要なので廃止(2022-12-19~)
535
+ // project: { typeOf: params.project.typeOf, id: params.project.id },
533
536
  id: (params.movieTheater.id !== undefined) ? params.movieTheater.id : '',
534
537
  branchCode: params.movieTheater.branchCode,
535
538
  name: params.movieTheater.name,
@@ -544,7 +547,8 @@ function createScreeningEventSeriesFromCOA(params) {
544
547
  videoFormat: params.eizouKubuns.filter((kubun) => kubun.kubunCode === params.filmFromCOA.kbnEizou)[0],
545
548
  soundFormat: [],
546
549
  workPerformed: {
547
- project: { typeOf: params.project.typeOf, id: params.project.id },
550
+ // 不要なので廃止(2022-12-19~)
551
+ // project: { typeOf: params.project.typeOf, id: params.project.id },
548
552
  id: `${params.movieTheater.branchCode}-${params.filmFromCOA.titleCode}`,
549
553
  identifier: params.filmFromCOA.titleCode,
550
554
  // 多言語化(2022-07-26~)
@@ -579,7 +583,7 @@ function createScreeningEventSeriesAdditionalPropertyFromCOA(params) {
579
583
  return {
580
584
  coaInfo,
581
585
  additionalProperty: [
582
- { name: 'COA_ENDPOINT', value: credentials_1.credentials.coa.endpoint },
586
+ // { name: 'COA_ENDPOINT', value: credentials.coa.endpoint },
583
587
  { name: 'coaInfo', value: JSON.stringify(coaInfo) }
584
588
  ]
585
589
  };
@@ -648,6 +652,16 @@ function createMovieTheaterFromCOA(project, theaterFromCOA, screensFromCOA) {
648
652
  typeOf: 'QuantitativeValue',
649
653
  value: 1200,
650
654
  unitCode: factory.unitCode.Sec
655
+ },
656
+ availabilityStartsGraceTimeOnPOS: {
657
+ typeOf: 'QuantitativeValue',
658
+ value: -93,
659
+ unitCode: factory.unitCode.Day
660
+ },
661
+ availabilityEndsGraceTimeOnPOS: {
662
+ typeOf: 'QuantitativeValue',
663
+ value: 2678400,
664
+ unitCode: factory.unitCode.Sec
651
665
  }
652
666
  }
653
667
  };
@@ -49,11 +49,15 @@ export declare function authorize(params: {
49
49
  transaction: {
50
50
  id: string;
51
51
  };
52
+ validateEventOfferPeriod?: boolean;
52
53
  validateEvent?: boolean;
53
54
  /**
54
55
  * どの店舗に対して
55
56
  */
56
57
  store: {
58
+ /**
59
+ * 販売アプリケーションID
60
+ */
57
61
  id: string;
58
62
  };
59
63
  }): IAuthorizeOperation<IAuthorizeOfferAction>;
@@ -23,7 +23,7 @@ function authorize(params) {
23
23
  // tslint:disable-next-line:max-func-body-length
24
24
  return (repos) => __awaiter(this, void 0, void 0, function* () {
25
25
  const now = new Date();
26
- const { transaction, event, bookingServiceIdentifire } = yield validateCreateRequest(Object.assign(Object.assign({}, params), { now }))({ event: repos.event, transaction: repos.transaction });
26
+ const { transaction, event, bookingServiceIdentifire } = yield validateCreateRequest(Object.assign(Object.assign({}, params), { now, store: params.store }))({ event: repos.event, transaction: repos.transaction });
27
27
  const acceptedOffers = yield validateAcceptedOffers({
28
28
  object: params.object,
29
29
  event,
@@ -31,8 +31,8 @@ function authorize(params) {
31
31
  transaction,
32
32
  store: params.store
33
33
  })(repos);
34
- let requestBody;
35
- let responseBody;
34
+ // let requestBody: factory.assetTransaction.reserve.IStartParamsWithoutDetail;
35
+ // let responseBody: factory.assetTransaction.reserve.ITransaction;
36
36
  let acceptedOffers4result = [];
37
37
  let transactionNumber;
38
38
  switch (bookingServiceIdentifire) {
@@ -65,8 +65,8 @@ function authorize(params) {
65
65
  transactionNumber,
66
66
  transaction
67
67
  })(repos);
68
- requestBody = processStartReserveResult.requestBody;
69
- responseBody = processStartReserveResult.responseBody;
68
+ // requestBody = processStartReserveResult.requestBody;
69
+ // responseBody = processStartReserveResult.responseBody;
70
70
  acceptedOffers4result = processStartReserveResult.acceptedOffers4result;
71
71
  break;
72
72
  default:
@@ -95,7 +95,17 @@ function authorize(params) {
95
95
  // 金額計算
96
96
  const amount = (0, factory_1.acceptedOffers2amount)({ acceptedOffers: acceptedOffers4result });
97
97
  // アクションを完了
98
- const result = Object.assign({ price: amount, priceCurrency: acceptedOffers[0].priceCurrency, amount: [], requestBody: requestBody, responseBody: responseBody }, (acceptedOffers4result !== undefined) ? { acceptedOffers: acceptedOffers4result } : undefined);
98
+ const result = {
99
+ price: amount,
100
+ priceCurrency: acceptedOffers[0].priceCurrency,
101
+ amount: [],
102
+ // 不要なので廃止(2022-12-14~)
103
+ // requestBody: requestBody,
104
+ // responseBody: responseBody,
105
+ requestBody: {},
106
+ responseBody: {},
107
+ acceptedOffers: acceptedOffers4result
108
+ };
99
109
  return yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: result });
100
110
  });
101
111
  }
@@ -121,12 +131,11 @@ function validateCreateRequest(params) {
121
131
  }
122
132
  const bookingServiceIdentifire = offeredThrough.identifier;
123
133
  if (bookingServiceIdentifire === factory.service.webAPI.Identifier.Chevre) {
134
+ if (params.validateEventOfferPeriod === true) {
135
+ validateEventOfferPeriod({ event, now, availableAt: { id: params.store.id } });
136
+ }
124
137
  if (params.validateEvent === true) {
125
- validateEvent({
126
- event,
127
- now,
128
- object: params.object
129
- });
138
+ validateEvent({ event, object: params.object });
130
139
  }
131
140
  }
132
141
  return { transaction, event, bookingServiceIdentifire };
@@ -138,7 +147,7 @@ function processStartReserve4chevre(params) {
138
147
  const event = params.event;
139
148
  const transactionNumber = params.transactionNumber;
140
149
  const transaction = params.transaction;
141
- let requestBody;
150
+ // let requestBody: factory.assetTransaction.reserve.IStartParamsWithoutDetail;
142
151
  let responseBody;
143
152
  let acceptedOffers4result = [];
144
153
  if (typeof transactionNumber !== 'string') {
@@ -152,10 +161,9 @@ function processStartReserve4chevre(params) {
152
161
  transaction,
153
162
  transactionNumber
154
163
  });
155
- requestBody = startParams;
164
+ // requestBody = startParams;
156
165
  const startParamObject = yield validateObjectWithoutDetail(startParams)(repos);
157
- // 予約取引サービス開始
158
- // responseBody = await repos.reserveTransaction.start(startParams);
166
+ // 予約取引開始
159
167
  responseBody = yield ReserveTransactionService.start(Object.assign(Object.assign({}, startParams), { object: startParamObject, validateAppliesToMovieTicket: true }))(repos);
160
168
  // 予約取引からオファー情報を生成する
161
169
  acceptedOffers4result = (0, factory_1.responseBody2acceptedOffers4result)({
@@ -164,19 +172,12 @@ function processStartReserve4chevre(params) {
164
172
  project: transaction.project,
165
173
  seller: transaction.seller
166
174
  });
167
- return { requestBody, responseBody, acceptedOffers4result };
175
+ return { acceptedOffers4result };
168
176
  });
169
177
  }
170
178
  function validateObjectWithoutDetail(params) {
171
179
  return (repos) => __awaiter(this, void 0, void 0, function* () {
172
180
  var _a, _b, _c, _d;
173
- // const objectWithoutDetail: factory.assetTransaction.reserve.IObjectWithoutDetail = {
174
- // ...params.object,
175
- // // 互換性維持対応として、event.idをreservationFor.idに置換
176
- // ...(typeof params.object?.event?.id === 'string')
177
- // ? { reservationFor: { id: <string>params.object.event.id } }
178
- // : undefined
179
- // };
180
181
  const objectWithoutDetail = params.object;
181
182
  if (Array.isArray(objectWithoutDetail.acceptedOffer)) {
182
183
  for (let acceptedOffer of objectWithoutDetail.acceptedOffer) {
@@ -204,12 +205,23 @@ function validateObjectWithoutDetail(params) {
204
205
  return objectWithoutDetail;
205
206
  });
206
207
  }
207
- function validateEvent(params) {
208
- var _a, _b;
208
+ /**
209
+ * イベントのオファー有効期間を検証する
210
+ */
211
+ function validateEventOfferPeriod(params) {
209
212
  const acceptedDate = moment(params.now);
210
213
  const eventOffers = params.event.offers;
211
- const validFrom = eventOffers === null || eventOffers === void 0 ? void 0 : eventOffers.validFrom;
212
- const validThrough = eventOffers === null || eventOffers === void 0 ? void 0 : eventOffers.validThrough;
214
+ // アプリケーションごとの設定を参照する(2022-11-19~)
215
+ const makesOfferOnApplication = eventOffers === null || eventOffers === void 0 ? void 0 : eventOffers.seller.makesOffer.find((offer) => {
216
+ return Array.isArray(offer.availableAtOrFrom) && offer.availableAtOrFrom[0].id === params.availableAt.id;
217
+ });
218
+ if (makesOfferOnApplication === undefined) {
219
+ throw new factory.errors.Argument('reservationFor.id', `seller makes no available offer at ${params.availableAt.id}`);
220
+ }
221
+ const validFrom = makesOfferOnApplication.validFrom;
222
+ const validThrough = makesOfferOnApplication.validThrough;
223
+ // const validFrom = eventOffers?.validFrom;
224
+ // const validThrough = eventOffers?.validThrough;
213
225
  if (validFrom !== undefined && validFrom !== null) {
214
226
  if (acceptedDate.isBefore(moment(validFrom))) {
215
227
  throw new factory.errors.Argument('reservationFor.id', `Offer of ${params.event.id} is valid from ${validFrom}`);
@@ -220,6 +232,32 @@ function validateEvent(params) {
220
232
  throw new factory.errors.Argument('reservationFor.id', `Offer of ${params.event.id} is valid through ${validThrough}`);
221
233
  }
222
234
  }
235
+ }
236
+ /**
237
+ * イベントの上限座席数を検証する
238
+ */
239
+ function validateEvent(params) {
240
+ var _a, _b;
241
+ // const acceptedDate = moment(params.now);
242
+ const eventOffers = params.event.offers;
243
+ // const validFrom = eventOffers?.validFrom;
244
+ // const validThrough = eventOffers?.validThrough;
245
+ // if (validFrom !== undefined && validFrom !== null) {
246
+ // if (acceptedDate.isBefore(moment(validFrom))) {
247
+ // throw new factory.errors.Argument(
248
+ // 'reservationFor.id',
249
+ // `Offer of ${params.event.id} is valid from ${validFrom}`
250
+ // );
251
+ // }
252
+ // }
253
+ // if (validThrough !== undefined && validThrough !== null) {
254
+ // if (acceptedDate.isAfter(moment(validThrough))) {
255
+ // throw new factory.errors.Argument(
256
+ // 'reservationFor.id',
257
+ // `Offer of ${params.event.id} is valid through ${validThrough}`
258
+ // );
259
+ // }
260
+ // }
223
261
  // イベントのmaxValueを検証
224
262
  const maxValue = (_a = eventOffers === null || eventOffers === void 0 ? void 0 : eventOffers.eligibleQuantity) === null || _a === void 0 ? void 0 : _a.maxValue;
225
263
  if (typeof maxValue === 'number') {
@@ -24,7 +24,7 @@ export declare function acceptedOffers2amount(params: {
24
24
  }): number;
25
25
  declare type IResultAcceptedOffer = factory.action.authorize.offer.seatReservation.IResultAcceptedOffer;
26
26
  export declare function responseBody2acceptedOffers4result(params: {
27
- responseBody: factory.action.authorize.offer.seatReservation.IResponseBody<factory.service.webAPI.Identifier.Chevre>;
27
+ responseBody: factory.assetTransaction.reserve.ITransaction;
28
28
  event: factory.event.IEvent<factory.eventType.ScreeningEvent>;
29
29
  project: {
30
30
  id: string;
@@ -159,7 +159,6 @@ function responseBody2acceptedOffers4result(params) {
159
159
  var _a;
160
160
  const reservation = createReservation({ project: params.project, itemOffered, event: params.event });
161
161
  // appliesToMovieTicketがArrayでないケースは廃止(2022-09-12~)
162
- // const priceSpecification = <IReservationPriceSpecification>itemOffered.price;
163
162
  const priceSpecification = itemOffered.price;
164
163
  const priceComponent = priceSpecification.priceComponent.map((c) => {
165
164
  var _a;
@@ -181,7 +180,6 @@ function responseBody2acceptedOffers4result(params) {
181
180
  : undefined);
182
181
  });
183
182
  return {
184
- // project: { typeOf: params.project.typeOf, id: params.project.id },
185
183
  typeOf: factory.offerType.Offer,
186
184
  id: itemOffered.reservedTicket.ticketType.id,
187
185
  name: itemOffered.reservedTicket.ticketType.name,
@@ -190,8 +188,6 @@ function responseBody2acceptedOffers4result(params) {
190
188
  priceSpecification: {
191
189
  priceComponent: priceComponent,
192
190
  priceCurrency: priceSpecification.priceCurrency,
193
- // 不要な属性を除外(2022-11-02~)
194
- // project: priceSpecification.project,
195
191
  typeOf: priceSpecification.typeOf,
196
192
  valueAddedTaxIncluded: priceSpecification.valueAddedTaxIncluded
197
193
  },
@@ -199,7 +195,6 @@ function responseBody2acceptedOffers4result(params) {
199
195
  ? itemOffered.priceCurrency
200
196
  : factory.priceCurrency.JPY,
201
197
  seller: {
202
- // project: { typeOf: params.project.typeOf, id: params.project.id },
203
198
  typeOf: params.seller.typeOf,
204
199
  name: (typeof params.seller.name === 'string')
205
200
  ? params.seller.name
@@ -218,15 +213,20 @@ function createReservation(params) {
218
213
  var _a;
219
214
  const itemOffered = params.itemOffered;
220
215
  const event = params.event;
221
- const workPerformed = Object.assign({ project: event.superEvent.workPerformed.project, typeOf: event.superEvent.workPerformed.typeOf, id: event.superEvent.workPerformed.id, identifier: event.superEvent.workPerformed.identifier, name: event.superEvent.workPerformed.name }, (typeof event.superEvent.workPerformed.duration === 'string')
216
+ const workPerformed = Object.assign({
217
+ // 不要なので廃止(2022-12-19~)
218
+ // project: event.superEvent.workPerformed.project,
219
+ typeOf: event.superEvent.workPerformed.typeOf, id: event.superEvent.workPerformed.id, identifier: event.superEvent.workPerformed.identifier, name: event.superEvent.workPerformed.name }, (typeof event.superEvent.workPerformed.duration === 'string')
222
220
  ? { duration: event.superEvent.workPerformed.duration }
223
221
  : undefined);
224
222
  const reservationFor = {
225
- project: event.project,
223
+ // 不要なので廃止(2022-12-19~)
224
+ // project: event.project,
226
225
  typeOf: event.typeOf,
227
226
  // 予約のreservationForは最適化されているので、additionalPropertyは存在しない
228
227
  // additionalProperty: itemOffered.reservationFor.additionalProperty,
229
- eventStatus: event.eventStatus,
228
+ // 不要なので廃止(2022-12-19~)
229
+ // eventStatus: event.eventStatus,
230
230
  id: event.id,
231
231
  location: event.location,
232
232
  name: event.name,
@@ -237,19 +237,24 @@ function createReservation(params) {
237
237
  startDate: moment(event.startDate)
238
238
  .toDate(),
239
239
  // 最適化(2022-05-31~)
240
- superEvent: Object.assign(Object.assign({ project: event.superEvent.project, typeOf: event.superEvent.typeOf, id: event.superEvent.id, kanaName: event.superEvent.kanaName, location: event.superEvent.location, name: event.superEvent.name, soundFormat: event.superEvent.soundFormat, videoFormat: event.superEvent.videoFormat, workPerformed }, (typeof event.superEvent.duration === 'string') ? { duration: event.superEvent.duration } : undefined), (event.superEvent.headline !== undefined) ? { headline: event.superEvent.headline } : undefined)
240
+ superEvent: Object.assign(Object.assign({
241
+ // 不要なので廃止(2022-12-19~)
242
+ // project: event.superEvent.project,
243
+ typeOf: event.superEvent.typeOf, id: event.superEvent.id, kanaName: event.superEvent.kanaName, location: event.superEvent.location, name: event.superEvent.name, soundFormat: event.superEvent.soundFormat, videoFormat: event.superEvent.videoFormat, workPerformed }, (typeof event.superEvent.duration === 'string') ? { duration: event.superEvent.duration } : undefined), (event.superEvent.headline !== undefined) ? { headline: event.superEvent.headline } : undefined)
241
244
  // 廃止(superEvent.workPerformedへ完全移行)
242
245
  // workPerformed: {},
243
246
  };
244
247
  const reservedTicket = Object.assign({ typeOf: itemOffered.reservedTicket.typeOf, ticketType: {
245
- project: { typeOf: params.project.typeOf, id: params.project.id },
248
+ // 不要なので廃止(2022-12-17~)
249
+ // project: { typeOf: params.project.typeOf, id: params.project.id },
246
250
  typeOf: itemOffered.reservedTicket.ticketType.typeOf,
247
251
  id: itemOffered.reservedTicket.ticketType.id,
248
252
  identifier: itemOffered.reservedTicket.ticketType.identifier,
249
253
  name: itemOffered.reservedTicket.ticketType.name,
250
254
  description: itemOffered.reservedTicket.ticketType.description,
251
- additionalProperty: itemOffered.reservedTicket.ticketType.additionalProperty,
252
- priceCurrency: itemOffered.reservedTicket.ticketType.priceCurrency
255
+ additionalProperty: itemOffered.reservedTicket.ticketType.additionalProperty
256
+ // 不要なので廃止(2022-12-17~)
257
+ // priceCurrency: itemOffered.reservedTicket.ticketType.priceCurrency
253
258
  } }, (itemOffered.reservedTicket.ticketedSeat !== undefined)
254
259
  ? { ticketedSeat: itemOffered.reservedTicket.ticketedSeat }
255
260
  : undefined);
@@ -82,7 +82,6 @@ function responseBody2acceptedOffers4result(params) {
82
82
  coaInfo = event.coaInfo;
83
83
  }
84
84
  else {
85
- // const coaEndpointProperty = event.additionalProperty.find((p) => p.name === 'COA_ENDPOINT');
86
85
  const coaInfoProperty = (_a = event.additionalProperty) === null || _a === void 0 ? void 0 : _a.find((p) => p.name === 'coaInfo');
87
86
  coaInfo = (coaInfoProperty !== undefined) ? JSON.parse(coaInfoProperty.value) : undefined;
88
87
  }
@@ -101,7 +100,8 @@ function responseBody2acceptedOffers4result(params) {
101
100
  const reservationNumber = String(updTmpReserveSeatResult.tmpReserveNum);
102
101
  const reservationId = `${reservationNumber}-${index.toString()}`;
103
102
  const workPerformed = {
104
- project: event.superEvent.workPerformed.project,
103
+ // 不要なので廃止(2022-12-19~)
104
+ // project: event.superEvent.workPerformed.project,
105
105
  id: event.superEvent.workPerformed.id,
106
106
  identifier: event.superEvent.workPerformed.identifier,
107
107
  name: event.superEvent.workPerformed.name,
@@ -114,16 +114,24 @@ function responseBody2acceptedOffers4result(params) {
114
114
  .toDate()
115
115
  }
116
116
  : undefined), { endDate: moment(event.endDate)
117
- .toDate(), eventStatus: event.eventStatus, identifier: event.identifier, location: {
118
- project: event.location.project,
117
+ .toDate(),
118
+ // 不要なので廃止(2022-12-19~)
119
+ // eventStatus: event.eventStatus,
120
+ identifier: event.identifier, location: {
121
+ // 不要なので廃止(2022-12-19~)
122
+ // project: event.location.project,
119
123
  typeOf: event.location.typeOf,
120
124
  branchCode: event.location.branchCode,
121
125
  name: event.location.name
122
- }, name: event.name, project: event.project, startDate: moment(event.startDate)
126
+ }, name: event.name,
127
+ // 不要なので廃止(2022-12-19~)
128
+ // project: event.project,
129
+ startDate: moment(event.startDate)
123
130
  .toDate(),
124
131
  // 最適化(2022-05-31~)
125
132
  superEvent: {
126
- project: event.superEvent.project,
133
+ // 不要なので廃止(2022-12-19~)
134
+ // project: event.superEvent.project,
127
135
  typeOf: event.superEvent.typeOf,
128
136
  id: event.superEvent.id,
129
137
  identifier: event.superEvent.identifier,
@@ -152,12 +160,14 @@ function responseBody2acceptedOffers4result(params) {
152
160
  ticketNumber: ticketToken,
153
161
  ticketToken: ticketToken,
154
162
  ticketType: {
155
- project: { typeOf: event.project.typeOf, id: event.project.id },
163
+ // 不要なので廃止(2022-12-17~)
164
+ // project: { typeOf: event.project.typeOf, id: event.project.id },
156
165
  typeOf: factory.offerType.Offer,
157
166
  id: requestedOffer.id,
158
167
  identifier: String(requestedOffer.identifier),
159
- name: requestedOffer.name,
160
- priceCurrency: factory.priceCurrency.JPY
168
+ name: requestedOffer.name
169
+ // 不要なので廃止(2022-12-17~)
170
+ // priceCurrency: factory.priceCurrency.JPY
161
171
  }
162
172
  };
163
173
  const additionalProperty = (_c = (_b = requestedOffer.itemOffered) === null || _b === void 0 ? void 0 : _b.serviceOutput) === null || _c === void 0 ? void 0 : _c.additionalProperty;
@@ -13,7 +13,6 @@ var __rest = (this && this.__rest) || function (s, e) {
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.createCompoundPriceSpec4event = void 0;
15
15
  const factory = require("../../factory");
16
- const USE_MULTIPLE_MOVIE_TICKET_CHARGE = process.env.USE_MULTIPLE_MOVIE_TICKET_CHARGE === '1';
17
16
  function categoryCodeChargePriceSpec2component(params) {
18
17
  var _a;
19
18
  return Object.assign({ id: params.id, typeOf: params.typeOf, name: params.name, price: params.price, priceCurrency: params.priceCurrency, valueAddedTaxIncluded: params.valueAddedTaxIncluded, appliesToCategoryCode: params.appliesToCategoryCode }, (typeof ((_a = params.accounting) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { accounting: params.accounting } : undefined);
@@ -35,25 +34,13 @@ function createCompoundPriceSpec4event(params) {
35
34
  if (Array.isArray(unitPriceSpec.appliesToMovieTicket)) {
36
35
  unitPriceSpec.appliesToMovieTicket.forEach((appliesToMovieTicket) => {
37
36
  // すべての上映方式に該当する加算料金を追加(2022-10-29~)
38
- if (USE_MULTIPLE_MOVIE_TICKET_CHARGE) {
39
- const mvtkSpecs4appliesToMovieTicket = params.movieTicketTypeChargeSpecs.filter((s) => {
40
- var _a;
41
- return ((_a = s.appliesToMovieTicket.serviceOutput) === null || _a === void 0 ? void 0 : _a.typeOf) === appliesToMovieTicket.serviceOutput.typeOf
42
- && s.appliesToMovieTicket.serviceType === appliesToMovieTicket.serviceType
43
- && params.videoFormatTypes.includes(s.appliesToVideoFormat);
44
- });
45
- mvtkPriceComponents.push(...mvtkSpecs4appliesToMovieTicket.map(mvtkChargePriceSpec2component));
46
- }
47
- else {
48
- const mvtkSpec4appliesToMovieTicket = params.movieTicketTypeChargeSpecs.find((s) => {
49
- var _a;
50
- return ((_a = s.appliesToMovieTicket.serviceOutput) === null || _a === void 0 ? void 0 : _a.typeOf) === appliesToMovieTicket.serviceOutput.typeOf
51
- && s.appliesToMovieTicket.serviceType === appliesToMovieTicket.serviceType;
52
- });
53
- if (mvtkSpec4appliesToMovieTicket !== undefined) {
54
- mvtkPriceComponents.push(mvtkChargePriceSpec2component(mvtkSpec4appliesToMovieTicket));
55
- }
56
- }
37
+ const mvtkSpecs4appliesToMovieTicket = params.movieTicketTypeChargeSpecs.filter((s) => {
38
+ var _a;
39
+ return ((_a = s.appliesToMovieTicket.serviceOutput) === null || _a === void 0 ? void 0 : _a.typeOf) === appliesToMovieTicket.serviceOutput.typeOf
40
+ && s.appliesToMovieTicket.serviceType === appliesToMovieTicket.serviceType
41
+ && params.videoFormatTypes.includes(s.appliesToVideoFormat);
42
+ });
43
+ mvtkPriceComponents.push(...mvtkSpecs4appliesToMovieTicket.map(mvtkChargePriceSpec2component));
57
44
  });
58
45
  }
59
46
  else {
@@ -40,12 +40,11 @@ function addOffers2Seat(params) {
40
40
  && categoryCode.inCodeSet.identifier === factory.categoryCode.CategorySetIdentifier.SeatingType;
41
41
  });
42
42
  }));
43
+ // 最適化(2022-11-15~)
43
44
  const priceSpecification = {
44
- // 不要な属性を除外(2022-11-02~)
45
- // project: params.project,
46
45
  typeOf: factory.priceSpecificationType.CompoundPriceSpecification,
47
- priceCurrency: factory.priceCurrency.JPY,
48
- valueAddedTaxIncluded: true,
46
+ // priceCurrency: factory.priceCurrency.JPY,
47
+ // valueAddedTaxIncluded: true,
49
48
  priceComponent: priceComponent
50
49
  };
51
50
  let availability = (unavailableOffer !== undefined)
@@ -55,9 +54,10 @@ function addOffers2Seat(params) {
55
54
  availability = params.availability;
56
55
  }
57
56
  return Object.assign(Object.assign({}, params.seat), { offers: [{
58
- project: params.project,
57
+ // 最適化(2022-11-15~)
58
+ // project: params.project,
59
59
  typeOf: factory.offerType.Offer,
60
- priceCurrency: factory.priceCurrency.JPY,
60
+ // priceCurrency: factory.priceCurrency.JPY,
61
61
  availability: availability,
62
62
  priceSpecification: priceSpecification
63
63
  }] });
@@ -42,7 +42,8 @@ function getOrderWithToken(params) {
42
42
  };
43
43
  const seller4orderToken = {
44
44
  id: params.order.seller.id,
45
- project: params.order.seller.project,
45
+ // 最適化(2022-11-15~)
46
+ // project: params.order.seller.project,
46
47
  typeOf: params.order.seller.typeOf
47
48
  };
48
49
  const order4token = {
@@ -50,7 +51,8 @@ function getOrderWithToken(params) {
50
51
  typeOf: params.order.typeOf,
51
52
  seller: seller4orderToken,
52
53
  customer: customer4orderToken,
53
- confirmationNumber: params.order.confirmationNumber,
54
+ // IOrderへ移行(2022-11-17~)
55
+ // confirmationNumber: params.order.confirmationNumber,
54
56
  orderNumber: params.order.orderNumber,
55
57
  price: params.order.price,
56
58
  priceCurrency: params.order.priceCurrency,
@@ -29,7 +29,8 @@ function onOrderStatusChanged(params) {
29
29
  typeOf: params.order.typeOf,
30
30
  seller: params.order.seller,
31
31
  customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id, name: maskedCustomer.name },
32
- confirmationNumber: params.order.confirmationNumber,
32
+ // IOrderへ移行(2022-11-17~)
33
+ // confirmationNumber: params.order.confirmationNumber,
33
34
  orderNumber: params.order.orderNumber,
34
35
  price: params.order.price,
35
36
  priceCurrency: params.order.priceCurrency,
@@ -118,7 +119,7 @@ function createConfirmPayTransactionTasks(order, simpleOrder) {
118
119
  typeOf: factory.actionType.ConfirmAction,
119
120
  object: [{ typeOf: factory.assetTransactionType.Pay, transactionNumber: paymentMethod.paymentMethodId }],
120
121
  agent: order.project,
121
- purpose: simpleOrder,
122
+ purpose: Object.assign(Object.assign({}, simpleOrder), { confirmationNumber: order.confirmationNumber }),
122
123
  instrument: {
123
124
  typeOf: 'WebAPI',
124
125
  identifier: factory.action.authorize.paymentMethod.any.ServiceIdentifier.Chevre
@@ -95,7 +95,8 @@ function placeOrderWithoutTransaction(params) {
95
95
  typeOf: order.typeOf,
96
96
  seller: order.seller,
97
97
  customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id, name: maskedCustomer.name },
98
- confirmationNumber: order.confirmationNumber,
98
+ // IOrderへ移行(2022-11-17~)
99
+ // confirmationNumber: order.confirmationNumber,
99
100
  orderNumber: order.orderNumber,
100
101
  price: order.price,
101
102
  priceCurrency: order.priceCurrency,
@@ -132,7 +133,10 @@ function placeOrderWithoutTransaction(params) {
132
133
  task: repos.task
133
134
  });
134
135
  // 潜在アクション
135
- yield onPlaceOrder(params)(repos);
136
+ yield onPlaceOrder({
137
+ object: order,
138
+ potentialActions: params.potentialActions
139
+ })(repos);
136
140
  });
137
141
  }
138
142
  exports.placeOrderWithoutTransaction = placeOrderWithoutTransaction;
@@ -155,7 +159,8 @@ function placeOrder(params) {
155
159
  typeOf: order.typeOf,
156
160
  seller: order.seller,
157
161
  customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id, name: maskedCustomer.name },
158
- confirmationNumber: order.confirmationNumber,
162
+ // IOrderへ移行(2022-11-17~)
163
+ // confirmationNumber: order.confirmationNumber,
159
164
  orderNumber: order.orderNumber,
160
165
  price: order.price,
161
166
  priceCurrency: order.priceCurrency,
@@ -192,7 +197,10 @@ function placeOrder(params) {
192
197
  task: repos.task
193
198
  });
194
199
  // 潜在アクション
195
- yield onPlaceOrder(params)(repos);
200
+ yield onPlaceOrder({
201
+ object: order,
202
+ potentialActions: params.potentialActions
203
+ })(repos);
196
204
  });
197
205
  }
198
206
  exports.placeOrder = placeOrder;
@@ -220,7 +228,7 @@ function onPlaceOrder(params) {
220
228
  numberOfTried: 0,
221
229
  executionResults: [],
222
230
  // data: potentialActions.sendOrder
223
- data: Object.assign({ project: potentialActions.sendOrder.project, object: potentialActions.sendOrder.object }, (potentialActions.sendOrder.potentialActions !== undefined)
231
+ data: Object.assign({ project: potentialActions.sendOrder.project, object: Object.assign(Object.assign({}, potentialActions.sendOrder.object), { confirmationNumber: params.object.confirmationNumber }) }, (potentialActions.sendOrder.potentialActions !== undefined)
224
232
  ? { potentialActions: potentialActions.sendOrder.potentialActions }
225
233
  : undefined)
226
234
  };
@@ -44,7 +44,8 @@ function returnOrder(params) {
44
44
  typeOf: order.typeOf,
45
45
  seller: order.seller,
46
46
  customer: (0, order_1.createMaskedCustomer)(order),
47
- confirmationNumber: order.confirmationNumber,
47
+ // IOrderへ移行(2022-11-17~)
48
+ // confirmationNumber: order.confirmationNumber,
48
49
  orderNumber: order.orderNumber,
49
50
  price: order.price,
50
51
  priceCurrency: order.priceCurrency,
@@ -48,7 +48,8 @@ function sendOrder(params) {
48
48
  typeOf: order.typeOf,
49
49
  seller: order.seller,
50
50
  customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id, name: maskedCustomer.name },
51
- confirmationNumber: order.confirmationNumber,
51
+ // IOrderへ移行(2022-11-17~)
52
+ // confirmationNumber: order.confirmationNumber,
52
53
  orderNumber: order.orderNumber,
53
54
  price: order.price,
54
55
  priceCurrency: order.priceCurrency,