@chevre/domain 24.1.0-alpha.52 → 24.1.0-alpha.54

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.
@@ -24,9 +24,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
24
24
  /**
25
25
  * 索条件を最小化(2026-06-05~)
26
26
  */
27
- params,
28
- // params: factory.order.ISearchConditions,
29
- projection) {
27
+ params, projection) {
30
28
  const conditions = order_2.OrderRepo.CREATE_MONGO_CONDITIONS(params);
31
29
  const aggregate = this.orderModel.aggregate();
32
30
  // unwind->matchでは遅い
@@ -61,7 +59,6 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
61
59
  // 予約取引を参照(2026-05-17~)
62
60
  const offeredThroughIdentifier = orders.at(0)?.acceptedOffers[0].offeredThrough?.identifier;
63
61
  const useReserveTransaction = offeredThroughIdentifier !== factory_1.factory.service.webAPI.Identifier.COA; // COAでは予約取引を参照しない
64
- // const { useItemOfferedByReserve } = options;
65
62
  if (useReserveTransaction) {
66
63
  const reservationNumbers = [...new Set(orders.map((order) => String(order.acceptedOffers[0].serialNumber)))];
67
64
  let acceptedOffersByReserveTransaction = [];
@@ -85,16 +82,17 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
85
82
  if (itemOfferedByReserve === undefined) {
86
83
  console.error('repo:acceptedOffer: searchWithUnwoundAcceptedOffers: itemOfferedByReserve: undefined!!!', acceptedOffer.itemOffered.id);
87
84
  }
85
+ const nameByReserveTransaction = acceptedOfferByReserveTransaction?.name;
88
86
  const { priceSpecification: _originalPriceSpec, // 注文ドキュメントのpriceSpecificationはもう採用しない(2026-05-21~)
87
+ name: _originalName, // 注文ドキュメントのnameはもう採用しない(2026-06-09~)
89
88
  itemOffered, ...acceptedOfferWithoutPrice } = acceptedOffer;
90
89
  return {
91
90
  ...order,
92
91
  acceptedOffers: [
93
92
  {
94
93
  ...acceptedOfferWithoutPrice,
94
+ ...((nameByReserveTransaction !== undefined) && { name: nameByReserveTransaction }), // 予約取引参照の値で上書き(2026-06-09~)
95
95
  ...((priceSpecByReserveTransaction !== undefined) && { priceSpecification: priceSpecByReserveTransaction }), // 予約取引参照の値で上書き
96
- // useItemOfferedByReserve: always true(2026-06-03~)
97
- // ...(useItemOfferedByReserve && itemOfferedByReserve !== undefined))
98
96
  ...(itemOfferedByReserve !== undefined)
99
97
  ? { itemOffered: itemOfferedByReserve } // 予約取引参照の値で上書き(2026-05-25~)
100
98
  : { itemOffered }
@@ -155,15 +153,6 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
155
153
  if (typeof itemOfferedIdEq === 'string') {
156
154
  matchStages.push({ $match: { 'acceptedOffers.itemOffered.id': { $exists: true, $eq: itemOfferedIdEq } } });
157
155
  }
158
- // reservationForによる検索は廃止(reservationForが全オファーに存在しなくても成立させる)(2026-06-04~)
159
- // const resevationForIdIn = filter.acceptedOffers?.itemOffered?.reservationFor?.id?.$in;
160
- // if (Array.isArray(resevationForIdIn)) {
161
- // matchStages.push({
162
- // $match: {
163
- // 'acceptedOffers.itemOffered.reservationFor.id': { $exists: true, $in: resevationForIdIn }
164
- // }
165
- // });
166
- // }
167
156
  const aggregate = this.orderModel.aggregate([
168
157
  ...matchStagesOneDocument,
169
158
  {
@@ -181,7 +170,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
181
170
  typeOf: '$acceptedOffers.typeOf',
182
171
  id: '$acceptedOffers.id',
183
172
  offeredThrough: '$acceptedOffers.offeredThrough',
184
- name: '$acceptedOffers.name',
173
+ // name: '$acceptedOffers.name', // 名称はaddAcceptedOffersDetailsメソッドにて予約取引から参照される(2026-06-09~)
185
174
  serialNumber: '$acceptedOffers.serialNumber'
186
175
  });
187
176
  if (typeof filter.limit === 'number' && filter.limit > 0) {
@@ -52,7 +52,6 @@ class AcceptedOfferInReserveRepo {
52
52
  if (reservationNumbers.length > 0) {
53
53
  acceptedOffersByReserveTransaction = await this.findAcceptedOffersByReservationNumbers({ reservationNumbers });
54
54
  }
55
- // const { useItemOfferedByReserve } = options;
56
55
  return acceptedOffers.map((acceptedOffer) => {
57
56
  const acceptedOfferByReserveTransaction = acceptedOffersByReserveTransaction.find(((offer) => offer.itemOffered.id === acceptedOffer.itemOffered.id));
58
57
  // 予約は必ず存在するはず
@@ -69,13 +68,14 @@ class AcceptedOfferInReserveRepo {
69
68
  if (itemOfferedByReserve === undefined) {
70
69
  console.error('repo:acceptedOffer: addAcceptedOffersDetails: itemOfferedByReserve: undefined!!!', acceptedOffer.itemOffered.id);
71
70
  }
71
+ const nameByReserveTransaction = acceptedOfferByReserveTransaction?.name;
72
72
  const { priceSpecification: _originalPriceSpec, // 注文ドキュメントのpriceSpecificationはもう採用しない(2026-05-21~)
73
+ name: _originalName, // 注文ドキュメントのnameはもう採用しない(2026-06-09~)
73
74
  itemOffered, ...acceptedOfferWithoutPrice } = acceptedOffer;
74
75
  return {
75
76
  ...acceptedOfferWithoutPrice,
77
+ ...((nameByReserveTransaction !== undefined) && { name: nameByReserveTransaction }), // 予約取引参照の値で上書き(2026-06-09~)
76
78
  ...((priceSpecByReserveTransaction !== undefined) && { priceSpecification: priceSpecByReserveTransaction }), // 予約取引参照の値で上書き
77
- // useItemOfferedByReserve: always true(2026-06-03~)
78
- // ...(useItemOfferedByReserve && itemOfferedByReserve !== undefined)
79
79
  ...(itemOfferedByReserve !== undefined)
80
80
  ? { itemOffered: itemOfferedByReserve } // 予約取引参照の値で上書き
81
81
  : { itemOffered }
@@ -1,5 +1,5 @@
1
1
  import { factory } from '../../../factory';
2
- type IAcceptedOfferByReserveTransaction = Pick<factory.order.IOptimizedAcceptedOffer, 'itemOffered' | 'priceSpecification'>;
2
+ type IAcceptedOfferByReserveTransaction = Pick<factory.order.IOptimizedAcceptedOffer, 'itemOffered' | 'priceSpecification' | 'name'>;
3
3
  /**
4
4
  * 予約取引を注文のitemOfferedへ変換する
5
5
  */
@@ -68,7 +68,8 @@ function reserveTransaction2itemOffered(params) {
68
68
  };
69
69
  return {
70
70
  itemOffered: reservationByReserveTransaction,
71
- ...((price !== undefined) && { priceSpecification: price })
71
+ ...((price !== undefined) && { priceSpecification: price }),
72
+ ...((reservedTicket.ticketType.name !== undefined) && { name: reservedTicket.ticketType.name })
72
73
  };
73
74
  });
74
75
  }
@@ -412,24 +412,26 @@ const indexes = [
412
412
  }
413
413
  }
414
414
  ],
415
- [
416
- { 'acceptedOffers.itemOffered.reservedTicket.ticketedSeat.seatNumber': 1, orderDate: -1 },
417
- {
418
- name: 'searchByReservedTicketTicketedSeatSeatNumber',
419
- partialFilterExpression: {
420
- 'acceptedOffers.itemOffered.reservedTicket.ticketedSeat.seatNumber': { $exists: true }
421
- }
422
- }
423
- ],
424
- [
425
- { 'acceptedOffers.itemOffered.reservedTicket.identifier': 1, orderDate: -1 },
426
- {
427
- name: 'searchByReservedTicketIdentifier',
428
- partialFilterExpression: {
429
- 'acceptedOffers.itemOffered.reservedTicket.identifier': { $exists: true }
430
- }
431
- }
432
- ],
415
+ // discontinue(2026-06-08~)
416
+ // [
417
+ // { 'acceptedOffers.itemOffered.reservedTicket.ticketedSeat.seatNumber': 1, orderDate: -1 },
418
+ // {
419
+ // name: 'searchByReservedTicketTicketedSeatSeatNumber',
420
+ // partialFilterExpression: {
421
+ // 'acceptedOffers.itemOffered.reservedTicket.ticketedSeat.seatNumber': { $exists: true }
422
+ // }
423
+ // }
424
+ // ],
425
+ // discontinue(2026-06-08~)
426
+ // [
427
+ // { 'acceptedOffers.itemOffered.reservedTicket.identifier': 1, orderDate: -1 },
428
+ // {
429
+ // name: 'searchByReservedTicketIdentifier',
430
+ // partialFilterExpression: {
431
+ // 'acceptedOffers.itemOffered.reservedTicket.identifier': { $exists: true }
432
+ // }
433
+ // }
434
+ // ],
433
435
  [
434
436
  { 'acceptedOffers.serialNumber': 1, orderDate: -1 },
435
437
  {
@@ -154,6 +154,7 @@ export declare class OrderRepo {
154
154
  unsetUnnecessaryFields(params: {
155
155
  filter: FilterQuery<factory.order.IOrder>;
156
156
  $unset: any;
157
+ arrayFilters?: any[];
157
158
  }): Promise<import("mongoose").UpdateWriteOpResult>;
158
159
  aggregateOrder(params: {
159
160
  project?: {
@@ -832,7 +832,10 @@ class OrderRepo {
832
832
  .cursor();
833
833
  }
834
834
  async unsetUnnecessaryFields(params) {
835
- return this.orderModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
835
+ return this.orderModel.updateMany(params.filter, { $unset: params.$unset }, {
836
+ timestamps: false,
837
+ ...((Array.isArray(params.arrayFilters)) && { arrayFilters: params.arrayFilters })
838
+ })
836
839
  .exec();
837
840
  }
838
841
  async aggregateOrder(params) {
@@ -59,7 +59,7 @@ export declare class OrderInTransactionRepo extends AcceptedOfferInReserveRepo {
59
59
  project: {
60
60
  id: string;
61
61
  };
62
- }): Promise<(Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
62
+ }): Promise<(Pick<factory.order.IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'serialNumber' | 'typeOf'> & {
63
63
  priceSpecification?: factory.order.ITicketPriceSpecification;
64
64
  })[]>;
65
65
  /**
@@ -80,7 +80,7 @@ function createSubReservations(params) {
80
80
  ticketOffer: ticketOffer
81
81
  });
82
82
  const additionalTicketText = (0, createReservation_1.createAdditionalTicketText)({ acceptedOffer, reservedTicket });
83
- const additionalProperty = (0, createReservation_1.createAdditionalProperty)({ acceptedOffer });
83
+ // const additionalProperty = createAdditionalProperty({ acceptedOffer });
84
84
  // 座席指定であれば、座席タイプチャージを検索する
85
85
  const seatPriceComponent = [];
86
86
  // 区分加算料金を適用しないオプションを追加(2023-01-26~)
@@ -179,7 +179,7 @@ function createSubReservations(params) {
179
179
  id: reservationId,
180
180
  reservationFor: params.event,
181
181
  reservedTicket: reservedTicket,
182
- additionalProperty: additionalProperty,
182
+ // additionalProperty: additionalProperty,
183
183
  additionalTicketText: additionalTicketText,
184
184
  ticketOffer: ticketOffer,
185
185
  seatPriceComponent: seatPriceComponent,
@@ -20,12 +20,6 @@ declare function validateAppliesToMovieTicket(params: {
20
20
  availableOffer: factory.unitPriceOffer.IUnitPriceOffer;
21
21
  appliesToMovieTicket?: factory.assetTransaction.reserve.IAcceptedAppliesToMovieTicket;
22
22
  }): void;
23
- /**
24
- * 追加特性を生成する
25
- */
26
- declare function createAdditionalProperty(params: {
27
- acceptedOffer: factory.assetTransaction.reserve.IAcceptedTicketOfferWithoutDetail;
28
- }): factory.propertyValue.IPropertyValue<string>[];
29
23
  /**
30
24
  * 追加チケットテキストを生成する
31
25
  */
@@ -41,7 +35,6 @@ declare function createReservation(params: {
41
35
  id: string;
42
36
  reservationFor: IMinimizedIndividualEvent;
43
37
  reservedTicket: factory.assetTransaction.reserve.ISubReservationReservedTicket;
44
- additionalProperty?: factory.propertyValue.IPropertyValue<string>[];
45
38
  additionalTicketText?: string;
46
39
  ticketOffer: factory.product.ITicketOffer;
47
40
  seatPriceComponent: factory.place.seat.IPriceComponent[];
@@ -52,4 +45,4 @@ declare function createReservation(params: {
52
45
  appliesToMovieTicket?: factory.assetTransaction.reserve.IAcceptedAppliesToMovieTicket;
53
46
  validateAppliesToMovieTicket: boolean;
54
47
  }): IObjectSubReservation;
55
- export { createAdditionalProperty, createAdditionalTicketText, createReservation, createReservedTicket, IAcceptedAddOn, validateAppliesToMovieTicket };
48
+ export { createAdditionalTicketText, createReservation, createReservedTicket, IAcceptedAddOn, validateAppliesToMovieTicket };
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createAdditionalProperty = createAdditionalProperty;
7
6
  exports.createAdditionalTicketText = createAdditionalTicketText;
8
7
  exports.createReservation = createReservation;
9
8
  exports.createReservedTicket = createReservedTicket;
@@ -16,14 +15,15 @@ const price_1 = require("./price");
16
15
  const debug = (0, debug_1.default)('chevre-domain:service:assetTransaction');
17
16
  function createTicketIdentifier(params) {
18
17
  // チケット識別子の規定値を作成
19
- let ticketIdentifier = (typeof params.ticketedSeat?.seatNumber === 'string')
18
+ const ticketIdentifier = (typeof params.ticketedSeat?.seatNumber === 'string')
20
19
  ? (0, util_1.format)('%s:%s:%s', params.reservationFor.id, params.ticketedSeat.seatSection, params.ticketedSeat.seatNumber)
21
20
  : (0, util_1.format)('%s:%s', params.reservationFor.id, params.id);
22
- // 指定があれば採用
23
- const ticketIdentifierByRequest = params.acceptedOffer.itemOffered?.serviceOutput?.reservedTicket?.identifier;
24
- if (typeof ticketIdentifierByRequest === 'string' && ticketIdentifierByRequest.length > 0) {
25
- ticketIdentifier = ticketIdentifierByRequest;
26
- }
21
+ // チケット識別子のカスタム指定を廃止(2026-06-08~)
22
+ // // 指定があれば採用
23
+ // const ticketIdentifierByRequest = params.acceptedOffer.itemOffered?.serviceOutput?.reservedTicket?.identifier;
24
+ // if (typeof ticketIdentifierByRequest === 'string' && ticketIdentifierByRequest.length > 0) {
25
+ // ticketIdentifier = ticketIdentifierByRequest;
26
+ // }
27
27
  return ticketIdentifier;
28
28
  }
29
29
  function createReservedTicket(params) {
@@ -295,16 +295,18 @@ function validateAppliesToMovieTicket(params) {
295
295
  // Arrayでないケースは廃止(2022-09-10~)
296
296
  }
297
297
  }
298
- /**
299
- * 追加特性を生成する
300
- */
301
- function createAdditionalProperty(params) {
302
- let additionalProperty = params.acceptedOffer.itemOffered?.serviceOutput?.additionalProperty;
303
- if (!Array.isArray(additionalProperty)) {
304
- additionalProperty = [];
305
- }
306
- return additionalProperty;
307
- }
298
+ // /**
299
+ // * 追加特性を生成する
300
+ // */
301
+ // function createAdditionalProperty(params: {
302
+ // acceptedOffer: factory.assetTransaction.reserve.IAcceptedTicketOfferWithoutDetail;
303
+ // }): factory.propertyValue.IPropertyValue<string>[] {
304
+ // let additionalProperty = params.acceptedOffer.itemOffered?.serviceOutput?.additionalProperty;
305
+ // if (!Array.isArray(additionalProperty)) {
306
+ // additionalProperty = [];
307
+ // }
308
+ // return additionalProperty;
309
+ // }
308
310
  /**
309
311
  * 追加チケットテキストを生成する
310
312
  */
@@ -316,9 +316,10 @@ function createReservation(params) {
316
316
  const reservedTicket = {
317
317
  typeOf: itemOffered.reservedTicket.typeOf,
318
318
  ticketType,
319
- ...(typeof itemOffered.reservedTicket.identifier === 'string')
320
- ? { identifier: itemOffered.reservedTicket.identifier }
321
- : undefined, // チケット識別子追加(2024-04-15~)
319
+ identifier: itemOffered.reservedTicket.identifier, // チケット識別子必須化(2026-06-08~)
320
+ // ...(typeof itemOffered.reservedTicket.identifier === 'string')
321
+ // ? { identifier: itemOffered.reservedTicket.identifier }
322
+ // : undefined, // チケット識別子追加(2024-04-15~)
322
323
  ...(itemOffered.reservedTicket.ticketedSeat !== undefined)
323
324
  ? { ticketedSeat: itemOffered.reservedTicket.ticketedSeat }
324
325
  : undefined
@@ -71,6 +71,10 @@ interface IAuthorizeOptions {
71
71
  * 2026-06-04~
72
72
  */
73
73
  useAcceptedOfferNoReservationFor: boolean;
74
+ /**
75
+ * 2026-06-09~
76
+ */
77
+ useAcceptedOfferNoName: boolean;
74
78
  }
75
79
  /**
76
80
  * 興行オファー承認
@@ -52,15 +52,17 @@ function authorize(params, options) {
52
52
  acceptedOffers4result = processStartReserveResult.acceptedOffers4result;
53
53
  if (!noOfferSpecified) {
54
54
  const useAcceptedOfferNoReservationFor = options.useAcceptedOfferNoReservationFor === true;
55
+ const useAcceptedOfferNoName = options.useAcceptedOfferNoName === true;
55
56
  await (0, any_1.acceptOffer)({
56
57
  orderNumber,
57
58
  project: transaction.project,
58
59
  acceptedOffers: acceptedOffers4result.map((acceptOffer4result, offerIndex) => {
59
- const { priceSpecification: _priceSpecification, itemOffered, ...acceptOfferNoPriceSpec } = acceptOffer4result;
60
+ const { priceSpecification: _priceSpecification, itemOffered, name, ...acceptOfferNoPriceSpec } = acceptOffer4result;
60
61
  const includeReservationFor = !useAcceptedOfferNoReservationFor
61
62
  || (useAcceptedOfferNoReservationFor && offerIndex === 0); // useAcceptedOfferNoReservationForの場合、ひとつめのオファーのみ含む(2026-06-04~)
62
63
  return {
63
64
  ...acceptOfferNoPriceSpec,
65
+ ...((!useAcceptedOfferNoName) && { name }), // 名称非保管に対応(2026-06-09~)
64
66
  itemOffered: minimizeItemOffered(itemOffered, {
65
67
  includeReservationFor
66
68
  })
@@ -237,51 +239,6 @@ function validateAcceptedOffers(params) {
237
239
  })();
238
240
  }))
239
241
  : [];
240
- // reserveTransaction.startへ処理を移行(2024-07-03~)
241
- // オファーIDごとにオファー適用条件を確認
242
- // offerIds.forEach((offerId) => {
243
- // const acceptedOffersByOfferId = acceptedOffers.filter((o) => o.id === offerId);
244
- // const numAcceptedOffersByOfferId = acceptedOffersByOfferId.length;
245
- // let referenceQuantityValue = 1;
246
- // // 単価仕様を取り出す
247
- // const unitPriceSpec = acceptedOffersByOfferId[0].priceSpecification.priceComponent.find(
248
- // (spec) => spec.typeOf === factory.priceSpecificationType.UnitPriceSpecification && (!Array.isArray(spec.appliesToAddOn))
249
- // );
250
- // // 単価仕様は必ず存在するはず
251
- // if (unitPriceSpec?.typeOf !== factory.priceSpecificationType.UnitPriceSpecification) {
252
- // throw new factory.errors.Internal(`unitPriceSpec of the offer '${offerId}' not found`);
253
- // }
254
- // const unitPriceSpecReferenceQuantityValue = unitPriceSpec.referenceQuantity?.value;
255
- // if (typeof unitPriceSpecReferenceQuantityValue === 'number') {
256
- // referenceQuantityValue = unitPriceSpecReferenceQuantityValue;
257
- // }
258
- // // アイテム数が適用単位要件を満たしていなければエラー
259
- // if (numAcceptedOffersByOfferId % referenceQuantityValue !== 0) {
260
- // throw new factory.errors.Argument(
261
- // 'acceptedOffers',
262
- // `Offer ${offerId} requires reference quantity value ${referenceQuantityValue}`
263
- // );
264
- // }
265
- // // 適用数量要件を満たしていなければエラー
266
- // const maxValue = unitPriceSpec.eligibleQuantity?.maxValue;
267
- // if (typeof maxValue === 'number') {
268
- // if (numAcceptedOffersByOfferId > maxValue) {
269
- // throw new factory.errors.Argument(
270
- // 'acceptedOffers',
271
- // `Number of offer:${offerId} must be less than or equal to ${maxValue}`
272
- // );
273
- // }
274
- // }
275
- // const minValue = unitPriceSpec.eligibleQuantity?.minValue;
276
- // if (typeof minValue === 'number') {
277
- // if (numAcceptedOffersByOfferId < minValue) {
278
- // throw new factory.errors.Argument(
279
- // 'acceptedOffers',
280
- // `Number of offer:${offerId} must be more than or equal to ${minValue}`
281
- // );
282
- // }
283
- // }
284
- // });
285
242
  return { acceptedOffers, ticketOffers, unitPriceOffers };
286
243
  };
287
244
  }
@@ -293,27 +250,7 @@ function acceptedOfferWithoutDetail2acceptedOffer(params) {
293
250
  if (offer === undefined) {
294
251
  throw new factory_1.factory.errors.NotFound('Ticket Offer', `Ticket Offer ${offerWithoutDetail.id} not found`);
295
252
  }
296
- // // ポイント特典入金先の指定があれば入金識別子を発行
297
- // const pointAward = createPointAwardByOfferWithoutDetail({
298
- // offerWithoutDetail,
299
- // transaction: params.transaction
300
- // });
301
253
  const acceptedAppliesToMovieTicket = offerWithoutDetail.priceSpecification?.appliesToMovieTicket;
302
- // 承認アクションオブジェクトのacceptedOfferにappliesToMovieTicketを連携する(2022-08-02~)
303
- // const priceSpecification: IAcceptedOfferPriceSpecification = {
304
- // // 必要な属性のみに最適化(2024-04-09~)
305
- // // ...offer.priceSpecification,
306
- // typeOf: offer.priceSpecification.typeOf,
307
- // priceCurrency: offer.priceSpecification.priceCurrency,
308
- // // valueAddedTaxIncluded: offer.priceSpecification.valueAddedTaxIncluded,
309
- // priceComponent: offer.priceSpecification.priceComponent.map(({
310
- // name, accounting, id, priceCurrency, valueAddedTaxIncluded, ...necessaryComponentFields
311
- // }) => necessaryComponentFields),
312
- // // appliesToMovieTicket.identifierを連携する
313
- // ...(Array.isArray(acceptedAppliesToMovieTicket) || typeof acceptedAppliesToMovieTicket?.identifier === 'string')
314
- // ? { appliesToMovieTicket: acceptedAppliesToMovieTicket }
315
- // : undefined
316
- // };
317
254
  const priceSpecification = {
318
255
  // appliesToMovieTicket.identifierを連携する
319
256
  ...(Array.isArray(acceptedAppliesToMovieTicket) || typeof acceptedAppliesToMovieTicket?.identifier === 'string')
@@ -339,7 +276,7 @@ function acceptedOfferWithoutDetail2acceptedOffer(params) {
339
276
  // itemOfferedServiceOutputを最適化(2024-04-08~)
340
277
  let itemOfferedServiceOutput;
341
278
  if (typeof serviceOutputByOfferWithoutDetail?.typeOf === 'string') {
342
- const { typeOf, additionalProperty, additionalTicketText, programMembershipUsed, reservedTicket, subReservation } = serviceOutputByOfferWithoutDetail;
279
+ const { typeOf, additionalTicketText, programMembershipUsed, reservedTicket, subReservation } = serviceOutputByOfferWithoutDetail;
343
280
  let ticketedSeat;
344
281
  if (typeof reservedTicket?.ticketedSeat?.typeOf === 'string') {
345
282
  ticketedSeat = {
@@ -353,36 +290,19 @@ function acceptedOfferWithoutDetail2acceptedOffer(params) {
353
290
  };
354
291
  }
355
292
  switch (typeOf) {
356
- // case factory.reservationType.BusReservation:
357
- // const serviceOutputAsBusReservation: factory.assetTransaction.reserve.IBusReservatonAsItemOfferedServiceOutput = {
358
- // typeOf,
359
- // ...(Array.isArray(additionalProperty)) ? { additionalProperty } : undefined,
360
- // ...(typeof additionalTicketText === 'string') ? { additionalTicketText } : undefined,
361
- // ...(programMembershipUsed !== undefined) ? { programMembershipUsed } : undefined,
362
- // ...(Array.isArray(subReservation)) ? { subReservation } : undefined,
363
- // ...(reservedTicket !== undefined) ? {
364
- // reservedTicket: {
365
- // typeOf: 'Ticket',
366
- // // チケット識別子指定拡張(2024-04-15~)
367
- // ...(typeof reservedTicket.identifier === 'string') ? { identifier: reservedTicket.identifier } : undefined,
368
- // ...(typeof ticketedSeat?.typeOf === 'string') ? { ticketedSeat } : undefined
369
- // }
370
- // } : undefined
371
- // };
372
- // itemOfferedServiceOutput = serviceOutputAsBusReservation;
373
- // break;
374
293
  case factory_1.factory.reservationType.EventReservation: {
375
294
  const serviceOutputAsEventReservation = {
376
295
  typeOf,
377
- ...(Array.isArray(additionalProperty)) ? { additionalProperty } : undefined,
296
+ // ...(Array.isArray(additionalProperty)) ? { additionalProperty } : undefined, // 追加特性指定を廃止(2026-06-08~)
378
297
  ...(typeof additionalTicketText === 'string') ? { additionalTicketText } : undefined,
379
298
  ...(programMembershipUsed !== undefined) ? { programMembershipUsed } : undefined,
380
299
  ...(Array.isArray(subReservation)) ? { subReservation } : undefined,
381
300
  ...(reservedTicket !== undefined) ? {
382
301
  reservedTicket: {
383
302
  typeOf: 'Ticket',
384
- // チケット識別子指定拡張(2024-04-15~)
385
- ...(typeof reservedTicket.identifier === 'string') ? { identifier: reservedTicket.identifier } : undefined,
303
+ // チケット識別子のカスタム指定を廃止(2026-06-08~)
304
+ // // チケット識別子指定拡張(2024-04-15~)
305
+ // ...(typeof reservedTicket.identifier === 'string') ? { identifier: reservedTicket.identifier } : undefined,
386
306
  ...(typeof ticketedSeat?.typeOf === 'string') ? { ticketedSeat } : undefined
387
307
  }
388
308
  } : undefined
@@ -398,15 +318,9 @@ function acceptedOfferWithoutDetail2acceptedOffer(params) {
398
318
  return {
399
319
  // オファーの中身を最適化する(必要最低限の情報のみに)
400
320
  id: String(offer.id),
401
- // identifier: offer.identifier,
402
321
  priceSpecification,
403
- // typeOf: offer.typeOf,
404
- // priceCurrency: offer.priceCurrency,
405
322
  itemOffered: {
406
- // typeOf: factory.product.ProductType.EventService,
407
323
  ...(itemOfferedServiceOutput !== undefined) ? { serviceOutput: itemOfferedServiceOutput } : undefined,
408
- // discontinue(2026-04-18~)
409
- // ...(pointAward !== undefined) ? { pointAward } : undefined
410
324
  },
411
325
  addOn: acceptedAddOns,
412
326
  // 追加属性をマージ
@@ -414,9 +328,6 @@ function acceptedOfferWithoutDetail2acceptedOffer(params) {
414
328
  ...(Array.isArray(offerWithoutDetail.additionalProperty)) ? offerWithoutDetail.additionalProperty : [],
415
329
  ...(Array.isArray(offer.additionalProperty)) ? offer.additionalProperty : []
416
330
  ]
417
- // ...(Array.isArray(offer.acceptedPaymentMethod)) // discontinue(2024-07-03~)
418
- // ? { acceptedPaymentMethod: offer.acceptedPaymentMethod }
419
- // : undefined
420
331
  };
421
332
  };
422
333
  }
@@ -162,12 +162,13 @@ function creatPayTransactionStartParams(params) {
162
162
  };
163
163
  }
164
164
  function createMovieTicket(params) {
165
- let ticketIdentifier = (0, util_1.format)('%s:%s:%s', params.serviceOutput.reservationFor.id, params.serviceOutput.reservedTicket.ticketedSeat.seatSection, params.serviceOutput.reservedTicket.ticketedSeat.seatNumber);
166
- // 指定があれば採用(2024-04-16~)
167
- const ticketIdentifierByRequest = params.serviceOutput.reservedTicket.identifier;
168
- if (typeof ticketIdentifierByRequest === 'string' && ticketIdentifierByRequest.length > 0) {
169
- ticketIdentifier = ticketIdentifierByRequest;
170
- }
165
+ const ticketIdentifier = (0, util_1.format)('%s:%s:%s', params.serviceOutput.reservationFor.id, params.serviceOutput.reservedTicket.ticketedSeat.seatSection, params.serviceOutput.reservedTicket.ticketedSeat.seatNumber);
166
+ // カスタム指定は廃止(2026-06-08~)
167
+ // // 指定があれば採用(2024-04-16~)
168
+ // const ticketIdentifierByRequest = params.serviceOutput.reservedTicket.identifier;
169
+ // if (typeof ticketIdentifierByRequest === 'string' && ticketIdentifierByRequest.length > 0) {
170
+ // ticketIdentifier = ticketIdentifierByRequest;
171
+ // }
171
172
  const serviceOutput = {
172
173
  reservationFor: {
173
174
  typeOf: params.serviceOutput.reservationFor.typeOf,
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "dependencies": {
12
12
  "@aws-sdk/client-cognito-identity-provider": "3.600.0",
13
13
  "@aws-sdk/credential-providers": "3.600.0",
14
- "@chevre/factory": "8.2.0-alpha.6",
14
+ "@chevre/factory": "8.2.0-alpha.7",
15
15
  "@motionpicture/coa-service": "10.0.0",
16
16
  "@motionpicture/gmo-service": "6.1.0-alpha.0",
17
17
  "@sendgrid/client": "8.1.4",
@@ -91,5 +91,5 @@
91
91
  "postversion": "git push origin --tags",
92
92
  "prepublishOnly": "npm run clean && npm run build"
93
93
  },
94
- "version": "24.1.0-alpha.52"
94
+ "version": "24.1.0-alpha.54"
95
95
  }