@chevre/domain 24.1.0-alpha.32 → 24.1.0-alpha.34

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.
@@ -19,7 +19,7 @@ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
19
19
  * オファー展開の注文検索
20
20
  */
21
21
  searchWithUnwoundAcceptedOffers(params: factory.order.ISearchConditions, projection: IProjection4searchWithUnwoundAcceptedOffers, options: {
22
- useReserveTransaction: boolean;
22
+ useItemOfferedByReserve: boolean;
23
23
  }): Promise<(factory.order.IOrder & {
24
24
  acceptedOffers: [IAcceptedOffer];
25
25
  _id?: never;
@@ -68,7 +68,7 @@ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
68
68
  };
69
69
  };
70
70
  }, options: {
71
- useReserveTransaction: boolean;
71
+ useItemOfferedByReserve: boolean;
72
72
  }): Promise<IAcceptedOffer[]>;
73
73
  /**
74
74
  * 注文オファーをsliceして検索する(2024-01-10~)
@@ -84,7 +84,7 @@ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
84
84
  };
85
85
  };
86
86
  }, options: {
87
- useReserveTransaction: boolean;
87
+ useItemOfferedByReserve: boolean;
88
88
  }): Promise<ISearchSlicedAcceptedOffersResult>;
89
89
  countByOrderNumber(filter: {
90
90
  orderNumber: {
@@ -53,8 +53,8 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
53
53
  .exec();
54
54
  // 予約取引を参照(2026-05-17~)
55
55
  const offeredThroughIdentifier = orders.at(0)?.acceptedOffers[0].offeredThrough?.identifier;
56
- const useReserveTransaction = options.useReserveTransaction === true
57
- && offeredThroughIdentifier !== factory_1.factory.service.webAPI.Identifier.COA; // COAでは予約取引を参照しない
56
+ const useReserveTransaction = offeredThroughIdentifier !== factory_1.factory.service.webAPI.Identifier.COA; // COAでは予約取引を参照しない
57
+ const { useItemOfferedByReserve } = options;
58
58
  if (useReserveTransaction) {
59
59
  const reservationNumbers = [...new Set(orders.map((order) => String(order.acceptedOffers[0].serialNumber)))];
60
60
  let acceptedOffersByReserveTransaction = [];
@@ -73,17 +73,22 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
73
73
  if (priceSpecByReserveTransaction === undefined) {
74
74
  console.error('repo:acceptedOffer: searchWithUnwoundAcceptedOffers: priceSpecByReserveTransaction: undefined!!!', acceptedOffer.itemOffered.id);
75
75
  }
76
+ const itemOfferedByReserve = acceptedOfferByReserveTransaction?.itemOffered;
77
+ // itemOfferedByReserveは必ず存在するはず
78
+ if (itemOfferedByReserve === undefined) {
79
+ console.error('repo:acceptedOffer: searchWithUnwoundAcceptedOffers: itemOfferedByReserve: undefined!!!', acceptedOffer.itemOffered.id);
80
+ }
76
81
  const { priceSpecification: _originalPriceSpec, // 注文ドキュメントのpriceSpecificationはもう採用しない(2026-05-21~)
77
- ...acceptedOfferWithoutPrice } = acceptedOffer;
82
+ itemOffered, ...acceptedOfferWithoutPrice } = acceptedOffer;
78
83
  return {
79
84
  ...order,
80
85
  acceptedOffers: [
81
86
  {
82
87
  ...acceptedOfferWithoutPrice,
83
- ...((priceSpecByReserveTransaction !== undefined) && { priceSpecification: priceSpecByReserveTransaction }) // 予約取引参照の値で上書き
84
- // ...(priceSpecByReserveTransaction !== undefined)
85
- // ? { priceSpecification: priceSpecByReserveTransaction } // 予約取引参照の値で上書き
86
- // : { priceSpecification } // 万が一予約取引に存在しなければ注文ドキュメントの値を採用
88
+ ...((priceSpecByReserveTransaction !== undefined) && { priceSpecification: priceSpecByReserveTransaction }), // 予約取引参照の値で上書き
89
+ ...(useItemOfferedByReserve && itemOfferedByReserve !== undefined)
90
+ ? { itemOffered: itemOfferedByReserve } // 予約取引参照の値で上書き(2026-05-25~)
91
+ : { itemOffered }
87
92
  }
88
93
  ]
89
94
  };
@@ -220,13 +225,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
220
225
  .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
221
226
  .exec();
222
227
  // 予約取引を参照(2026-05-18~)
223
- const useReserveTransaction = options?.useReserveTransaction === true;
224
- if (useReserveTransaction) {
225
- return this.addAcceptedOffersDetails(acceptedOffers);
226
- }
227
- else {
228
- return acceptedOffers;
229
- }
228
+ return this.addAcceptedOffersDetails(acceptedOffers, options);
230
229
  }
231
230
  /**
232
231
  * 注文オファーをsliceして検索する(2024-01-10~)
@@ -252,16 +251,10 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
252
251
  }
253
252
  const { acceptedOffers, numAcceptedOffers } = result;
254
253
  // 予約取引を参照(2026-05-18~)
255
- const useReserveTransaction = options?.useReserveTransaction === true;
256
- if (useReserveTransaction) {
257
- return {
258
- acceptedOffers: await this.addAcceptedOffersDetails(acceptedOffers),
259
- numAcceptedOffers
260
- };
261
- }
262
- else {
263
- return result;
264
- }
254
+ return {
255
+ acceptedOffers: await this.addAcceptedOffersDetails(acceptedOffers, options),
256
+ numAcceptedOffers
257
+ };
265
258
  }
266
259
  async countByOrderNumber(filter) {
267
260
  const aggregate = this.orderModel.aggregate([
@@ -26,5 +26,7 @@ export declare class AcceptedOfferInReserveRepo {
26
26
  /**
27
27
  * 予約取引からオファー詳細情報を付加する
28
28
  */
29
- protected addAcceptedOffersDetails(acceptedOffers: IAcceptedOffer[]): Promise<IAcceptedOffer[]>;
29
+ protected addAcceptedOffersDetails(acceptedOffers: IAcceptedOffer[], options: {
30
+ useItemOfferedByReserve: boolean;
31
+ }): Promise<IAcceptedOffer[]>;
30
32
  }
@@ -41,7 +41,7 @@ class AcceptedOfferInReserveRepo {
41
41
  /**
42
42
  * 予約取引からオファー詳細情報を付加する
43
43
  */
44
- async addAcceptedOffersDetails(acceptedOffers) {
44
+ async addAcceptedOffersDetails(acceptedOffers, options) {
45
45
  const offeredThroughIdentifier = acceptedOffers.at(0)?.offeredThrough?.identifier;
46
46
  if (offeredThroughIdentifier === factory_1.factory.service.webAPI.Identifier.COA) {
47
47
  // COAでは予約取引を参照しない
@@ -52,6 +52,7 @@ class AcceptedOfferInReserveRepo {
52
52
  if (reservationNumbers.length > 0) {
53
53
  acceptedOffersByReserveTransaction = await this.findAcceptedOffersByReservationNumbers({ reservationNumbers });
54
54
  }
55
+ const { useItemOfferedByReserve } = options;
55
56
  return acceptedOffers.map((acceptedOffer) => {
56
57
  const acceptedOfferByReserveTransaction = acceptedOffersByReserveTransaction.find(((offer) => offer.itemOffered.id === acceptedOffer.itemOffered.id));
57
58
  // 予約は必ず存在するはず
@@ -63,14 +64,19 @@ class AcceptedOfferInReserveRepo {
63
64
  if (priceSpecByReserveTransaction === undefined) {
64
65
  console.error('repo:acceptedOffer: addAcceptedOffersDetails: priceSpecByReserveTransaction: undefined!!!', acceptedOffer.itemOffered.id);
65
66
  }
67
+ const itemOfferedByReserve = acceptedOfferByReserveTransaction?.itemOffered;
68
+ // itemOfferedByReserveは必ず存在するはず
69
+ if (itemOfferedByReserve === undefined) {
70
+ console.error('repo:acceptedOffer: addAcceptedOffersDetails: itemOfferedByReserve: undefined!!!', acceptedOffer.itemOffered.id);
71
+ }
66
72
  const { priceSpecification: _originalPriceSpec, // 注文ドキュメントのpriceSpecificationはもう採用しない(2026-05-21~)
67
- ...acceptedOfferWithoutPrice } = acceptedOffer;
73
+ itemOffered, ...acceptedOfferWithoutPrice } = acceptedOffer;
68
74
  return {
69
75
  ...acceptedOfferWithoutPrice,
70
- ...((priceSpecByReserveTransaction !== undefined) && { priceSpecification: priceSpecByReserveTransaction }) // 予約取引参照の値で上書き
71
- // ...(priceSpecByReserveTransaction !== undefined)
72
- // ? { priceSpecification: priceSpecByReserveTransaction } // 予約取引参照の値で上書き
73
- // : { priceSpecification } // 万が一予約取引に存在しなければ注文ドキュメントの値を採用
76
+ ...((priceSpecByReserveTransaction !== undefined) && { priceSpecification: priceSpecByReserveTransaction }), // 予約取引参照の値で上書き
77
+ ...(useItemOfferedByReserve && itemOfferedByReserve !== undefined)
78
+ ? { itemOffered: itemOfferedByReserve } // 予約取引参照の値で上書き
79
+ : { itemOffered }
74
80
  };
75
81
  });
76
82
  }
@@ -147,6 +147,14 @@ export interface IServiceOutputIdentifierSetting {
147
147
  */
148
148
  version: string;
149
149
  }
150
+ interface ICOAIntegrationSettings {
151
+ timeoutReserve: number;
152
+ timeoutMaster: number;
153
+ }
154
+ interface IGMOIntegrationSettings {
155
+ timeout: number;
156
+ timeoutBackground: number;
157
+ }
150
158
  interface ISurfrockSettings {
151
159
  /**
152
160
  * 着券時タイムアウト
@@ -174,14 +182,8 @@ export interface IIntegrationSettings {
174
182
  abortedTasksWithoutReport: string[];
175
183
  numTryConfirmReserveTransaction: number;
176
184
  deliverOrderLimit: number;
177
- coa: {
178
- timeoutReserve: number;
179
- timeoutMaster: number;
180
- };
181
- gmo: {
182
- timeout: number;
183
- timeoutBackground: number;
184
- };
185
+ coa: ICOAIntegrationSettings;
186
+ gmo: IGMOIntegrationSettings;
185
187
  movieticketReserve: ISurfrockSettings;
186
188
  useExperimentalFeature: boolean;
187
189
  }
@@ -26,6 +26,12 @@ export type IPlacingOrder = Pick<factory.order.IOrder, 'broker' | 'confirmationN
26
26
  */
27
27
  customer?: never;
28
28
  };
29
+ export type IMinimizedItemOffered = Pick<factory.order.IEventReservation, 'id' | 'reservationFor' | 'reservationNumber' | 'typeOf'> & {
30
+ reservedTicket: Pick<factory.order.IReservedTicket, 'identifier' | 'ticketedSeat' | 'typeOf'>;
31
+ };
32
+ export type IMinimizedAcceptedOffer = Pick<factory.order.IOptimizedAcceptedOffer, 'id' | 'name' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'> & {
33
+ itemOffered: IMinimizedItemOffered;
34
+ };
29
35
  /**
30
36
  * 取引中注文リポジトリ
31
37
  */
@@ -44,14 +50,6 @@ export declare class OrderInTransactionRepo extends AcceptedOfferInReserveRepo {
44
50
  }): Promise<(Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
45
51
  priceSpecification?: factory.order.ITicketPriceSpecification;
46
52
  })[]>;
47
- /**
48
- * 取引進行中の注文からacceptedOffersを検索する
49
- */
50
- findAcceptedOffersByOrderNumber(params: {
51
- orderNumber: {
52
- $eq: string;
53
- };
54
- }): Promise<Pick<factory.order.IAcceptedOffer, 'itemOffered' | 'serialNumber'>[]>;
55
53
  /**
56
54
  * 注文を受注する
57
55
  * typeOf: PlaceOrder -> typeOf: Order
@@ -62,7 +60,7 @@ export declare class OrderInTransactionRepo extends AcceptedOfferInReserveRepo {
62
60
  * このメソッドでdocumentが初めて生成される(typeOf:PlaceOrderとして)
63
61
  */
64
62
  acceptOffer(params: Pick<IOrderInTransaction, 'orderNumber' | 'project'> & {
65
- acceptedOffers: (Omit<IAcceptedOffer, 'priceSpecification'> & {
63
+ acceptedOffers: IMinimizedAcceptedOffer[] | (Omit<IAcceptedOffer, 'priceSpecification'> & {
66
64
  /**
67
65
  * COA以外では注文ドキュメントにpriceSpecificationが存在しないのでIFを補完
68
66
  */
@@ -41,32 +41,44 @@ class OrderInTransactionRepo extends acceptedOfferInReserve_1.AcceptedOfferInRes
41
41
  acceptedOffersByReserveTransaction = await this.findAcceptedOffersByReservationNumbers({ reservationNumbers });
42
42
  }
43
43
  return doc.acceptedOffers.map((acceptedOffer) => {
44
- const priceSpecification = acceptedOffersByReserveTransaction.find((acceptedOfferByReserveTransaction) => acceptedOfferByReserveTransaction.itemOffered.id === acceptedOffer.itemOffered.id)?.priceSpecification;
44
+ const acceptedOfferByReserve = acceptedOffersByReserveTransaction.find((acceptedOfferByReserveTransaction) => acceptedOfferByReserveTransaction.itemOffered.id === acceptedOffer.itemOffered.id);
45
+ const priceSpecification = acceptedOfferByReserve?.priceSpecification;
45
46
  // COA予約でなければ、予約取引の価格は必ず存在するはず(2026-05-20~)
46
47
  if (priceSpecification === undefined) {
47
48
  throw new factory_1.factory.errors.Internal(`findAcceptedOffersWithPriceByOrderNumber: priceSpecification undefined. ${acceptedOffer.itemOffered.id}`);
48
49
  }
50
+ const itemOffered = acceptedOfferByReserve?.itemOffered;
51
+ // COA予約でなければ、予約取引のitemOfferedは必ず存在するはず(2026-05-25~)
52
+ if (itemOffered === undefined) {
53
+ throw new factory_1.factory.errors.Internal(`findAcceptedOffersWithPriceByOrderNumber: itemOffered undefined. ${acceptedOffer.itemOffered.id}`);
54
+ }
49
55
  return {
50
56
  ...acceptedOffer,
57
+ itemOffered,
51
58
  priceSpecification
52
59
  };
53
60
  });
54
61
  }
55
- /**
56
- * 取引進行中の注文からacceptedOffersを検索する
57
- */
58
- async findAcceptedOffersByOrderNumber(params) {
59
- const doc = await this.orderModel.findOne({
60
- orderNumber: { $eq: params.orderNumber.$eq },
61
- typeOf: { $eq: factory_1.factory.transactionType.PlaceOrder }
62
- }, { acceptedOffers: 1 })
63
- .lean()
64
- .exec();
65
- if (doc === null) {
66
- throw new factory_1.factory.errors.NotFound('orderInTransaction');
67
- }
68
- return doc.acceptedOffers;
69
- }
62
+ // /**
63
+ // * 取引進行中の注文からacceptedOffersを検索する
64
+ // */
65
+ // public async findAcceptedOffersByOrderNumber(
66
+ // params: { orderNumber: { $eq: string } }
67
+ // ): Promise<Pick<factory.order.IAcceptedOffer, 'itemOffered' | 'serialNumber'>[]> {
68
+ // const doc = await this.orderModel.findOne<HydratedDocument<Pick<factory.order.IAcceptedOffer, 'itemOffered' | 'serialNumber'>>>(
69
+ // {
70
+ // orderNumber: { $eq: params.orderNumber.$eq },
71
+ // typeOf: { $eq: factory.transactionType.PlaceOrder }
72
+ // },
73
+ // { acceptedOffers: 1 }
74
+ // )
75
+ // .lean<Pick<IOrderInTransaction, 'acceptedOffers'>>()
76
+ // .exec();
77
+ // if (doc === null) {
78
+ // throw new factory.errors.NotFound('orderInTransaction');
79
+ // }
80
+ // return doc.acceptedOffers;
81
+ // }
70
82
  /**
71
83
  * 注文を受注する
72
84
  * typeOf: PlaceOrder -> typeOf: Order
@@ -1,5 +1,5 @@
1
1
  import { factory } from '../../factory';
2
- import type { OrderInTransactionRepo } from '../../repo/orderInTransaction';
2
+ import type { IMinimizedAcceptedOffer, OrderInTransactionRepo } from '../../repo/orderInTransaction';
3
3
  interface IAcceptOfferOperationRepos {
4
4
  orderInTransaction: OrderInTransactionRepo;
5
5
  }
@@ -10,7 +10,7 @@ export declare function acceptOffer(params: {
10
10
  project: {
11
11
  id: string;
12
12
  };
13
- acceptedOffers: (Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
13
+ acceptedOffers: IMinimizedAcceptedOffer[] | (Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
14
14
  /**
15
15
  * COA以外では注文ドキュメントにpriceSpecificationが存在しないのでIFを補完
16
16
  */
@@ -32,7 +32,7 @@ declare function acceptedOffers2authorizeResult(params: {
32
32
  ticketOffers: factory.product.ITicketOffer[];
33
33
  }): factory.action.authorize.offer.eventService.IResult;
34
34
  type IObjectSubReservation = factory.assetTransaction.reserve.IObjectSubReservation;
35
- export type IResultAcceptedOffer = Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
35
+ export type IResultAcceptedOffer = Omit<factory.order.IOptimizedAcceptedOffer, 'priceSpecification'> & {
36
36
  itemOffered: factory.order.IEventReservation;
37
37
  offeredThrough: factory.offer.IOfferedThrough;
38
38
  serialNumber: string;
@@ -305,16 +305,17 @@ function createReservation(params) {
305
305
  const { itemOffered } = params;
306
306
  const event = params.reservationFor;
307
307
  let reservationItem;
308
+ const ticketType = {
309
+ typeOf: itemOffered.reservedTicket.ticketType.typeOf,
310
+ id: itemOffered.reservedTicket.ticketType.id,
311
+ identifier: itemOffered.reservedTicket.ticketType.identifier,
312
+ name: itemOffered.reservedTicket.ticketType.name,
313
+ description: itemOffered.reservedTicket.ticketType.description,
314
+ ...((Array.isArray(itemOffered.reservedTicket.ticketType.additionalProperty)) && { additionalProperty: itemOffered.reservedTicket.ticketType.additionalProperty })
315
+ };
308
316
  const reservedTicket = {
309
317
  typeOf: itemOffered.reservedTicket.typeOf,
310
- ticketType: {
311
- typeOf: itemOffered.reservedTicket.ticketType.typeOf,
312
- id: itemOffered.reservedTicket.ticketType.id,
313
- identifier: itemOffered.reservedTicket.ticketType.identifier,
314
- name: itemOffered.reservedTicket.ticketType.name,
315
- description: itemOffered.reservedTicket.ticketType.description,
316
- additionalProperty: itemOffered.reservedTicket.ticketType.additionalProperty
317
- },
318
+ ticketType,
318
319
  ...(typeof itemOffered.reservedTicket.identifier === 'string')
319
320
  ? { identifier: itemOffered.reservedTicket.identifier }
320
321
  : undefined, // チケット識別子追加(2024-04-15~)
@@ -68,11 +68,10 @@ interface IAuthorizeOptions {
68
68
  */
69
69
  maxReservationGracePeriodInDays: number;
70
70
  /**
71
- * 価格仕様なしのacceptedOfferを採用するかどうか
72
- * 実験的に導入
73
- * 2026-005-19~
71
+ * acceptedOfferのitemOfferedを最小化するかどうか
72
+ * 2026-05-25~
74
73
  */
75
- useAcceptedOfferNoPriceSpec?: boolean;
74
+ useAcceptedOfferItemOfferedMinimized?: boolean;
76
75
  }
77
76
  /**
78
77
  * 興行オファー承認
@@ -56,21 +56,20 @@ function authorize(params, options) {
56
56
  ...(typeof params.object.broker?.typeOf === 'string') ? { broker: params.object.broker } : undefined
57
57
  }, options)(repos, settings);
58
58
  acceptedOffers4result = processStartReserveResult.acceptedOffers4result;
59
- // add orderInTransaction(2024-01-15~)
60
59
  if (!noOfferSpecified) {
61
- const useAcceptedOfferNoPriceSpec = options.useAcceptedOfferNoPriceSpec === true;
60
+ const useAcceptedOfferItemOfferedMinimized = options.useAcceptedOfferItemOfferedMinimized === true;
62
61
  await (0, any_1.acceptOffer)({
63
62
  orderNumber,
64
63
  project: transaction.project,
65
64
  acceptedOffers: acceptedOffers4result.map((acceptOffer4result) => {
66
65
  // support useAcceptedOfferNoPriceSpec(2026-05-19~)
67
- if (useAcceptedOfferNoPriceSpec) {
68
- const { priceSpecification: _priceSpecification, ...acceptOfferNoPriceSpec } = acceptOffer4result;
69
- return acceptOfferNoPriceSpec;
70
- }
71
- else {
72
- return acceptOffer4result;
73
- }
66
+ const { priceSpecification: _priceSpecification, itemOffered, ...acceptOfferNoPriceSpec } = acceptOffer4result;
67
+ return {
68
+ ...acceptOfferNoPriceSpec,
69
+ itemOffered: (useAcceptedOfferItemOfferedMinimized) // support useAcceptedOfferItemOfferedMinimized(2026-05-25~)
70
+ ? minimizeItemOffered(itemOffered)
71
+ : itemOffered
72
+ };
74
73
  })
75
74
  })(repos);
76
75
  }
@@ -89,6 +88,24 @@ function authorize(params, options) {
89
88
  return { id: action.id, result };
90
89
  };
91
90
  }
91
+ /**
92
+ * 注文ドキュメントに保管するitemOfferedを最小化する
93
+ * 2026-05-25~
94
+ */
95
+ function minimizeItemOffered(itemOffered) {
96
+ const { id, reservationNumber, typeOf, reservationFor, reservedTicket } = itemOffered;
97
+ return {
98
+ id,
99
+ reservationNumber,
100
+ typeOf,
101
+ reservationFor,
102
+ reservedTicket: {
103
+ typeOf: reservedTicket.typeOf,
104
+ ...((typeof reservedTicket.ticketedSeat?.typeOf === 'string') && { ticketedSeat: reservedTicket.ticketedSeat }),
105
+ ...((typeof reservedTicket.identifier === 'string') && { identifier: reservedTicket.identifier })
106
+ }
107
+ };
108
+ }
92
109
  function validateCreateRequest(params) {
93
110
  return async (repos) => {
94
111
  const transaction = await repos.placeOrder.findPlaceOrderInProgressById({
@@ -96,7 +96,9 @@ function deleteReservationsByOrder(order) {
96
96
  acceptedOffers: {
97
97
  // itemOffered: { typeOf: { $in: [factory.reservationType.EventReservation] } }
98
98
  }
99
- }, { useReserveTransaction: true } // 予約取引参照(2026-05-18~)
99
+ }, {
100
+ useItemOfferedByReserve: true // 2026-05-25~
101
+ } // 予約取引参照(2026-05-18~)
100
102
  );
101
103
  const reservationIds = acceptedOffers.map((o) => String(o.itemOffered.id));
102
104
  if (reservationIds.length > 0) {
@@ -80,7 +80,10 @@ function createPlacingOrderFromExistingTransaction(params) {
80
80
  .map(({ instrument }) => String(instrument.transactionNumber));
81
81
  try {
82
82
  // すでにtypeOf: Orderに変更済の場合acceptedOffersは空になるが、そもそもorderedItemはその後上書きされないので、空のまま処理して問題なし
83
- acceptedOffers = (await repos.orderInTransaction.findAcceptedOffersByOrderNumber({ orderNumber: { $eq: orderNumber } }))
83
+ acceptedOffers = (await repos.orderInTransaction.findAcceptedOffersWithPriceByOrderNumber({
84
+ orderNumber,
85
+ project: { id: params.project.id }
86
+ }))
84
87
  .filter(({ serialNumber }) => typeof serialNumber === 'string' && serialNumbers.includes(serialNumber));
85
88
  }
86
89
  catch (error) {
@@ -101,7 +101,9 @@ function sendOrder(params) {
101
101
  $slice: [offerIndexBase, limit],
102
102
  orderNumber: { $eq: order.orderNumber },
103
103
  project: { id: { $eq: order.project.id } }
104
- }, { useReserveTransaction: true } // 予約取引参照(2026-05-18~)
104
+ }, {
105
+ useItemOfferedByReserve: true // 2026-05-25~
106
+ } // 予約取引参照(2026-05-18~)
105
107
  );
106
108
  acceptedOffers = searchSlicedAcceptedOffersResult.acceptedOffers;
107
109
  debug('delivering...', order.orderNumber, acceptedOffers.map((offer) => `${offer.itemOffered.id}`), // eslint-disable-line @typescript-eslint/no-explicit-any
@@ -47,10 +47,11 @@ payTransaction, paymentServiceId, options) {
47
47
  try {
48
48
  // タスクによって実行されているかどうか
49
49
  const executedByTask = typeof options.executor?.id === 'string' && options.executor.id !== '';
50
+ const gmoIntegrationSettings = await settings.getByKey('gmo');
50
51
  // 非同期承認時に長時間対応(2024-05-18~)
51
- const timeout = (executedByTask && typeof (await settings.getByKey('gmo')).timeoutBackground === 'number')
52
- ? (await settings.getByKey('gmo')).timeoutBackground
53
- : (await settings.getByKey('gmo')).timeout;
52
+ const timeout = (executedByTask && typeof gmoIntegrationSettings.timeoutBackground === 'number')
53
+ ? gmoIntegrationSettings.timeoutBackground
54
+ : gmoIntegrationSettings.timeout;
54
55
  debug('processAuthorizeCreditCard processing... executor:', options.executor?.id, 'timeout:', timeout);
55
56
  const creditCardService = new gmo_service_1.GMO.service.Credit({
56
57
  endpoint: String(availableChannel.serviceUrl)
@@ -39,7 +39,9 @@ function findByCode(params) {
39
39
  // typeOf?: { $in?: factory.order.IItemOffered['typeOf'][] };
40
40
  }
41
41
  }
42
- }, { useReserveTransaction: true } // 予約取引参照(2026-05-18~)
42
+ }, {
43
+ useItemOfferedByReserve: true // 2026-05-25~
44
+ } // 予約取引参照(2026-05-18~)
43
45
  )).shift();
44
46
  if (acceptedOffer === undefined) {
45
47
  throw new factory_1.factory.errors.NotFound('acceptedOffer');
@@ -16,7 +16,9 @@ function searchByOrder(params) {
16
16
  // typeOf: { $in: [reservationType] }
17
17
  }
18
18
  }
19
- }, { useReserveTransaction: true } // 予約取引参照(2026-05-18~)
19
+ }, {
20
+ useItemOfferedByReserve: true // 2026-05-25~
21
+ } // 予約取引参照(2026-05-18~)
20
22
  );
21
23
  const reservationIds = acceptedOffers.map((offer) => {
22
24
  if (offer.itemOffered.typeOf === reservationType) {
@@ -58,14 +58,15 @@ function call(params) {
58
58
  const actionRepo = new acceptCOAOffer_1.AcceptCOAOfferActionRepo(connection);
59
59
  // const transactionProcessRepo = new TransactionProcessRepo(redisClient, { lockExpiresInSeconds: 120 });
60
60
  try {
61
+ const coaIntegrationSettings = await settings.getByKey('coa');
61
62
  const reserveService = new coa_service_1.COA.service.Reserve({
62
63
  endpoint: coaAuthClient.options.endpoint, // same as authClient(2024-07-17~)
63
64
  auth: coaAuthClient
64
- }, { timeout: (await settings.getByKey('coa')).timeoutReserve });
65
+ }, { timeout: coaIntegrationSettings.timeoutReserve });
65
66
  const masterService = new coa_service_1.COA.service.Master({
66
67
  endpoint: coaAuthClient.options.endpoint, // same as authClient(2024-07-17~)
67
68
  auth: coaAuthClient
68
- }, { timeout: (await settings.getByKey('coa')).timeoutMaster });
69
+ }, { timeout: coaIntegrationSettings.timeoutMaster });
69
70
  const { agent, object, potentialActions, purpose } = params.data;
70
71
  // agent.idからflgMemberを自動セット(2024-12-16~)
71
72
  const isMember = memberClients.includes(agent.id);
@@ -137,7 +137,9 @@ function fixOrderAsPurpose(params) {
137
137
  const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
138
138
  orderNumber: { $eq: order.orderNumber },
139
139
  project: { id: { $eq: params.project.id } }
140
- }, { useReserveTransaction: true } // 予約取引参照(2026-05-18~)
140
+ }, {
141
+ useItemOfferedByReserve: true // 2026-05-25~
142
+ } // 予約取引参照(2026-05-18~)
141
143
  );
142
144
  return {
143
145
  ...order,
@@ -77,7 +77,9 @@ function fixOrderAsPurpose(params, transaction) {
77
77
  reservedTicket: { ticketedSeat: { seatNumber: { $in: seatNumbers } } }
78
78
  }
79
79
  }
80
- }, { useReserveTransaction: true } // 予約取引参照(2026-05-18~)
80
+ }, {
81
+ useItemOfferedByReserve: true // 2026-05-25~
82
+ } // 予約取引参照(2026-05-18~)
81
83
  );
82
84
  }
83
85
  return {
@@ -144,7 +144,9 @@ function fixOrders(params) {
144
144
  const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
145
145
  orderNumber: { $eq: params.object.order[0].orderNumber },
146
146
  project: { id: { $eq: params.project.id } }
147
- }, { useReserveTransaction: true } // 予約取引参照(2026-05-18~)
147
+ }, {
148
+ useItemOfferedByReserve: true // 2026-05-25~
149
+ } // 予約取引参照(2026-05-18~)
148
150
  );
149
151
  return { acceptedOffers, eventIds, offerIds, orders };
150
152
  };
@@ -22,7 +22,9 @@ function validateOrder(params) {
22
22
  const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
23
23
  orderNumber: { $eq: params.orderNumber },
24
24
  project: { id: { $eq: params.project.id } }
25
- }, { useReserveTransaction: true } // 予約取引参照(2026-05-18~)
25
+ }, {
26
+ useItemOfferedByReserve: true // 2026-05-25~
27
+ } // 予約取引参照(2026-05-18~)
26
28
  );
27
29
  let payTransactions = [];
28
30
  if (order.paymentMethods.length > 0) {
package/package.json CHANGED
@@ -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.32"
94
+ "version": "24.1.0-alpha.34"
95
95
  }