@chevre/domain 24.1.0-alpha.47 → 24.1.0-alpha.49
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.
- package/lib/chevre/repo/acceptedOffer.d.ts +1 -7
- package/lib/chevre/repo/acceptedOffer.js +9 -7
- package/lib/chevre/repo/acceptedOfferInReserve.d.ts +1 -3
- package/lib/chevre/repo/acceptedOfferInReserve.js +5 -3
- package/lib/chevre/repo/order.js +5 -175
- package/lib/chevre/repo/orderInTransaction.d.ts +10 -2
- package/lib/chevre/service/offer/event/authorize.d.ts +9 -0
- package/lib/chevre/service/offer/event/authorize.js +21 -11
- package/lib/chevre/service/order/deleteOrder.js +1 -4
- package/lib/chevre/service/order/sendOrder.js +1 -4
- package/lib/chevre/service/reserve/findByCode.js +1 -4
- package/lib/chevre/service/reserve/searchByOrder.js +1 -4
- package/lib/chevre/service/task/confirmReserveTransaction.js +1 -4
- package/lib/chevre/service/task/payment/payByTask.js +1 -4
- package/lib/chevre/service/transaction/returnOrder/preStart.js +1 -4
- package/lib/chevre/service/validation/validateOrder.js +1 -4
- package/package.json +2 -2
|
@@ -18,9 +18,7 @@ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
|
|
|
18
18
|
/**
|
|
19
19
|
* オファー展開の注文検索
|
|
20
20
|
*/
|
|
21
|
-
searchWithUnwoundAcceptedOffers(params: factory.order.ISearchConditions, projection: IProjection4searchWithUnwoundAcceptedOffers
|
|
22
|
-
useItemOfferedByReserve: boolean;
|
|
23
|
-
}): Promise<(factory.order.IOrder & {
|
|
21
|
+
searchWithUnwoundAcceptedOffers(params: factory.order.ISearchConditions, projection: IProjection4searchWithUnwoundAcceptedOffers): Promise<(factory.order.IOrder & {
|
|
24
22
|
acceptedOffers: [IAcceptedOffer];
|
|
25
23
|
_id?: never;
|
|
26
24
|
})[]>;
|
|
@@ -61,8 +59,6 @@ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
|
|
|
61
59
|
reservedTicket?: never;
|
|
62
60
|
};
|
|
63
61
|
};
|
|
64
|
-
}, options: {
|
|
65
|
-
useItemOfferedByReserve: boolean;
|
|
66
62
|
}): Promise<IAcceptedOffer[]>;
|
|
67
63
|
/**
|
|
68
64
|
* 注文オファーをsliceして検索する(2024-01-10~)
|
|
@@ -77,8 +73,6 @@ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
|
|
|
77
73
|
$eq: string;
|
|
78
74
|
};
|
|
79
75
|
};
|
|
80
|
-
}, options: {
|
|
81
|
-
useItemOfferedByReserve: boolean;
|
|
82
76
|
}): Promise<ISearchSlicedAcceptedOffersResult>;
|
|
83
77
|
countByOrderNumber(filter: {
|
|
84
78
|
orderNumber: {
|
|
@@ -19,7 +19,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
|
|
|
19
19
|
/**
|
|
20
20
|
* オファー展開の注文検索
|
|
21
21
|
*/
|
|
22
|
-
async searchWithUnwoundAcceptedOffers(params, projection
|
|
22
|
+
async searchWithUnwoundAcceptedOffers(params, projection) {
|
|
23
23
|
const conditions = order_2.OrderRepo.CREATE_MONGO_CONDITIONS(params);
|
|
24
24
|
const aggregate = this.orderModel.aggregate();
|
|
25
25
|
// unwind->matchでは遅い
|
|
@@ -54,7 +54,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
|
|
|
54
54
|
// 予約取引を参照(2026-05-17~)
|
|
55
55
|
const offeredThroughIdentifier = orders.at(0)?.acceptedOffers[0].offeredThrough?.identifier;
|
|
56
56
|
const useReserveTransaction = offeredThroughIdentifier !== factory_1.factory.service.webAPI.Identifier.COA; // COAでは予約取引を参照しない
|
|
57
|
-
const { useItemOfferedByReserve } = options;
|
|
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 = [];
|
|
@@ -86,7 +86,9 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
|
|
|
86
86
|
{
|
|
87
87
|
...acceptedOfferWithoutPrice,
|
|
88
88
|
...((priceSpecByReserveTransaction !== undefined) && { priceSpecification: priceSpecByReserveTransaction }), // 予約取引参照の値で上書き
|
|
89
|
-
|
|
89
|
+
// useItemOfferedByReserve: always true(2026-06-03~)
|
|
90
|
+
// ...(useItemOfferedByReserve && itemOfferedByReserve !== undefined))
|
|
91
|
+
...(itemOfferedByReserve !== undefined)
|
|
90
92
|
? { itemOffered: itemOfferedByReserve } // 予約取引参照の値で上書き(2026-05-25~)
|
|
91
93
|
: { itemOffered }
|
|
92
94
|
}
|
|
@@ -128,7 +130,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
|
|
|
128
130
|
/**
|
|
129
131
|
* 注文オファーを展開して検索する
|
|
130
132
|
*/
|
|
131
|
-
async searchAcceptedOffersByOrderNumber(filter
|
|
133
|
+
async searchAcceptedOffersByOrderNumber(filter) {
|
|
132
134
|
/**
|
|
133
135
|
* unwind前に1ドキュメントを特定するためのstage
|
|
134
136
|
*/
|
|
@@ -192,12 +194,12 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
|
|
|
192
194
|
.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
193
195
|
.exec();
|
|
194
196
|
// 予約取引を参照(2026-05-18~)
|
|
195
|
-
return this.addAcceptedOffersDetails(acceptedOffers
|
|
197
|
+
return this.addAcceptedOffersDetails(acceptedOffers);
|
|
196
198
|
}
|
|
197
199
|
/**
|
|
198
200
|
* 注文オファーをsliceして検索する(2024-01-10~)
|
|
199
201
|
*/
|
|
200
|
-
async searchSlicedAcceptedOffersByOrderNumber(filter
|
|
202
|
+
async searchSlicedAcceptedOffersByOrderNumber(filter) {
|
|
201
203
|
const aggregate = this.orderModel.aggregate([
|
|
202
204
|
{ $match: { orderNumber: { $eq: filter.orderNumber.$eq } } },
|
|
203
205
|
{ $match: { 'project.id': { $eq: filter.project.id.$eq } } },
|
|
@@ -219,7 +221,7 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
|
|
|
219
221
|
const { acceptedOffers, numAcceptedOffers } = result;
|
|
220
222
|
// 予約取引を参照(2026-05-18~)
|
|
221
223
|
return {
|
|
222
|
-
acceptedOffers: await this.addAcceptedOffersDetails(acceptedOffers
|
|
224
|
+
acceptedOffers: await this.addAcceptedOffersDetails(acceptedOffers),
|
|
223
225
|
numAcceptedOffers
|
|
224
226
|
};
|
|
225
227
|
}
|
|
@@ -26,7 +26,5 @@ export declare class AcceptedOfferInReserveRepo {
|
|
|
26
26
|
/**
|
|
27
27
|
* 予約取引からオファー詳細情報を付加する
|
|
28
28
|
*/
|
|
29
|
-
protected addAcceptedOffersDetails(acceptedOffers: IAcceptedOffer[]
|
|
30
|
-
useItemOfferedByReserve: boolean;
|
|
31
|
-
}): Promise<IAcceptedOffer[]>;
|
|
29
|
+
protected addAcceptedOffersDetails(acceptedOffers: IAcceptedOffer[]): Promise<IAcceptedOffer[]>;
|
|
32
30
|
}
|
|
@@ -41,7 +41,7 @@ class AcceptedOfferInReserveRepo {
|
|
|
41
41
|
/**
|
|
42
42
|
* 予約取引からオファー詳細情報を付加する
|
|
43
43
|
*/
|
|
44
|
-
async addAcceptedOffersDetails(acceptedOffers
|
|
44
|
+
async addAcceptedOffersDetails(acceptedOffers) {
|
|
45
45
|
const offeredThroughIdentifier = acceptedOffers.at(0)?.offeredThrough?.identifier;
|
|
46
46
|
if (offeredThroughIdentifier === factory_1.factory.service.webAPI.Identifier.COA) {
|
|
47
47
|
// COAでは予約取引を参照しない
|
|
@@ -52,7 +52,7 @@ class AcceptedOfferInReserveRepo {
|
|
|
52
52
|
if (reservationNumbers.length > 0) {
|
|
53
53
|
acceptedOffersByReserveTransaction = await this.findAcceptedOffersByReservationNumbers({ reservationNumbers });
|
|
54
54
|
}
|
|
55
|
-
const { useItemOfferedByReserve } = options;
|
|
55
|
+
// const { useItemOfferedByReserve } = options;
|
|
56
56
|
return acceptedOffers.map((acceptedOffer) => {
|
|
57
57
|
const acceptedOfferByReserveTransaction = acceptedOffersByReserveTransaction.find(((offer) => offer.itemOffered.id === acceptedOffer.itemOffered.id));
|
|
58
58
|
// 予約は必ず存在するはず
|
|
@@ -74,7 +74,9 @@ class AcceptedOfferInReserveRepo {
|
|
|
74
74
|
return {
|
|
75
75
|
...acceptedOfferWithoutPrice,
|
|
76
76
|
...((priceSpecByReserveTransaction !== undefined) && { priceSpecification: priceSpecByReserveTransaction }), // 予約取引参照の値で上書き
|
|
77
|
-
|
|
77
|
+
// useItemOfferedByReserve: always true(2026-06-03~)
|
|
78
|
+
// ...(useItemOfferedByReserve && itemOfferedByReserve !== undefined)
|
|
79
|
+
...(itemOfferedByReserve !== undefined)
|
|
78
80
|
? { itemOffered: itemOfferedByReserve } // 予約取引参照の値で上書き
|
|
79
81
|
: { itemOffered }
|
|
80
82
|
};
|
package/lib/chevre/repo/order.js
CHANGED
|
@@ -31,27 +31,6 @@ class OrderRepo {
|
|
|
31
31
|
if (typeof projectIdEq === 'string') {
|
|
32
32
|
andConditions.push({ 'project.id': { $eq: projectIdEq } });
|
|
33
33
|
}
|
|
34
|
-
// /* istanbul ignore else */
|
|
35
|
-
// if (params.identifier !== undefined) {
|
|
36
|
-
// /* istanbul ignore else */
|
|
37
|
-
// if (Array.isArray(params.identifier.$all)) {
|
|
38
|
-
// andConditions.push({
|
|
39
|
-
// identifier: {
|
|
40
|
-
// $exists: true,
|
|
41
|
-
// $all: params.identifier.$all
|
|
42
|
-
// }
|
|
43
|
-
// });
|
|
44
|
-
// }
|
|
45
|
-
// /* istanbul ignore else */
|
|
46
|
-
// if (Array.isArray(params.identifier.$in)) {
|
|
47
|
-
// andConditions.push({
|
|
48
|
-
// identifier: {
|
|
49
|
-
// $exists: true,
|
|
50
|
-
// $in: params.identifier.$in
|
|
51
|
-
// }
|
|
52
|
-
// });
|
|
53
|
-
// }
|
|
54
|
-
// }
|
|
55
34
|
const providerIdEq = params.provider?.id?.$eq;
|
|
56
35
|
if (typeof providerIdEq === 'string') {
|
|
57
36
|
andConditions.push({ 'seller.id': { $exists: true, $eq: providerIdEq } });
|
|
@@ -129,44 +108,6 @@ class OrderRepo {
|
|
|
129
108
|
});
|
|
130
109
|
}
|
|
131
110
|
}
|
|
132
|
-
// if (params.customer.additionalProperty !== undefined && params.customer.additionalProperty !== null) {
|
|
133
|
-
// if (Array.isArray(params.customer.additionalProperty.$all)) {
|
|
134
|
-
// andConditions.push({
|
|
135
|
-
// 'customer.additionalProperty': {
|
|
136
|
-
// $exists: true,
|
|
137
|
-
// $all: params.customer.additionalProperty.$all
|
|
138
|
-
// }
|
|
139
|
-
// });
|
|
140
|
-
// }
|
|
141
|
-
// if (Array.isArray(params.customer.additionalProperty.$in)) {
|
|
142
|
-
// andConditions.push({
|
|
143
|
-
// 'customer.additionalProperty': {
|
|
144
|
-
// $exists: true,
|
|
145
|
-
// $in: params.customer.additionalProperty.$in
|
|
146
|
-
// }
|
|
147
|
-
// });
|
|
148
|
-
// }
|
|
149
|
-
// }
|
|
150
|
-
// if (params.customer.memberOf !== undefined && params.customer.memberOf !== null) {
|
|
151
|
-
// if (params.customer.memberOf.membershipNumber !== undefined && params.customer.memberOf.membershipNumber !== null) {
|
|
152
|
-
// if (typeof params.customer.memberOf.membershipNumber.$eq === 'string') {
|
|
153
|
-
// andConditions.push({
|
|
154
|
-
// 'customer.memberOf.membershipNumber': {
|
|
155
|
-
// $exists: true,
|
|
156
|
-
// $eq: params.customer.memberOf.membershipNumber.$eq
|
|
157
|
-
// }
|
|
158
|
-
// });
|
|
159
|
-
// }
|
|
160
|
-
// if (Array.isArray(params.customer.memberOf.membershipNumber.$in)) {
|
|
161
|
-
// andConditions.push({
|
|
162
|
-
// 'customer.memberOf.membershipNumber': {
|
|
163
|
-
// $exists: true,
|
|
164
|
-
// $in: params.customer.memberOf.membershipNumber.$in
|
|
165
|
-
// }
|
|
166
|
-
// });
|
|
167
|
-
// }
|
|
168
|
-
// }
|
|
169
|
-
// }
|
|
170
111
|
if (typeof params.customer.givenName === 'string') {
|
|
171
112
|
if (params.customer.givenName.length > 0) {
|
|
172
113
|
andConditions.push({
|
|
@@ -325,82 +266,20 @@ class OrderRepo {
|
|
|
325
266
|
andConditions.push({ confirmationNumber: { $exists: true, $in: params.confirmationNumbers } });
|
|
326
267
|
}
|
|
327
268
|
}
|
|
328
|
-
// const orderedItemSize = params.orderedItem?.$size;
|
|
329
|
-
// if (typeof orderedItemSize === 'number') {
|
|
330
|
-
// andConditions.push({ orderedItem: { $size: orderedItemSize } });
|
|
331
|
-
// }
|
|
332
|
-
// const acceptedOffersSize = params.acceptedOffers?.$size;
|
|
333
|
-
// if (typeof acceptedOffersSize === 'number') {
|
|
334
|
-
// andConditions.push({ acceptedOffers: { $size: acceptedOffersSize } });
|
|
335
|
-
// }
|
|
336
269
|
const serialNumberEq = params.acceptedOffers?.serialNumber?.$eq;
|
|
337
270
|
if (typeof serialNumberEq === 'string') {
|
|
338
271
|
andConditions.push({ 'acceptedOffers.serialNumber': { $exists: true, $eq: serialNumberEq } });
|
|
339
272
|
}
|
|
340
|
-
//
|
|
341
|
-
//
|
|
342
|
-
//
|
|
343
|
-
// 'acceptedOffers.itemOffered.identifier': {
|
|
344
|
-
// $exists: true,
|
|
345
|
-
// $in: itemOfferedIdentifierIn
|
|
346
|
-
// }
|
|
347
|
-
// });
|
|
348
|
-
// }
|
|
349
|
-
// const itemOfferedTypeOfIn = params.acceptedOffers?.itemOffered?.typeOf?.$in;
|
|
350
|
-
// if (Array.isArray(itemOfferedTypeOfIn)) {
|
|
351
|
-
// andConditions.push({
|
|
352
|
-
// 'acceptedOffers.itemOffered.typeOf': {
|
|
353
|
-
// $exists: true,
|
|
354
|
-
// $in: itemOfferedTypeOfIn
|
|
355
|
-
// }
|
|
356
|
-
// });
|
|
357
|
-
// }
|
|
358
|
-
// const itemOfferedIssuedThroughTypeOfEq = params.acceptedOffers?.itemOffered?.issuedThrough?.typeOf?.$eq;
|
|
359
|
-
// if (typeof itemOfferedIssuedThroughTypeOfEq === 'string') {
|
|
360
|
-
// andConditions.push({
|
|
361
|
-
// 'acceptedOffers.itemOffered.issuedThrough.typeOf': {
|
|
362
|
-
// $exists: true,
|
|
363
|
-
// $eq: itemOfferedIssuedThroughTypeOfEq
|
|
364
|
-
// }
|
|
365
|
-
// });
|
|
366
|
-
// }
|
|
367
|
-
// const itemOfferedIssuedThroughIdIn = params.acceptedOffers?.itemOffered?.issuedThrough?.id?.$in;
|
|
368
|
-
// if (Array.isArray(itemOfferedIssuedThroughIdIn)) {
|
|
369
|
-
// andConditions.push({
|
|
370
|
-
// 'acceptedOffers.itemOffered.issuedThrough.id': {
|
|
371
|
-
// $exists: true,
|
|
372
|
-
// $in: itemOfferedIssuedThroughIdIn
|
|
373
|
-
// }
|
|
374
|
-
// });
|
|
375
|
-
// }
|
|
376
|
-
// const itemOfferedProgramMembershipUsedIdentifierEq = params.acceptedOffers?.itemOffered?.programMembershipUsed?.identifier?.$eq;
|
|
377
|
-
// if (typeof itemOfferedProgramMembershipUsedIdentifierEq === 'string') {
|
|
273
|
+
// reservedTicket?.identifierはそもそも注文ドキュメントから廃止(2026-06-03~)
|
|
274
|
+
// const itemOfferedReservedTicketIdentifierEq = params.acceptedOffers?.itemOffered?.reservedTicket?.identifier?.$eq;
|
|
275
|
+
// if (typeof itemOfferedReservedTicketIdentifierEq === 'string') {
|
|
378
276
|
// andConditions.push({
|
|
379
|
-
// 'acceptedOffers.itemOffered.
|
|
277
|
+
// 'acceptedOffers.itemOffered.reservedTicket.identifier': {
|
|
380
278
|
// $exists: true,
|
|
381
|
-
// $eq:
|
|
279
|
+
// $eq: itemOfferedReservedTicketIdentifierEq
|
|
382
280
|
// }
|
|
383
281
|
// });
|
|
384
282
|
// }
|
|
385
|
-
// const itemOfferedProgramMembershipUsedIssuedThroughServiceTypeCodeValueEq =
|
|
386
|
-
// params.acceptedOffers?.itemOffered?.programMembershipUsed?.issuedThrough?.serviceType?.codeValue?.$eq;
|
|
387
|
-
// if (typeof itemOfferedProgramMembershipUsedIssuedThroughServiceTypeCodeValueEq === 'string') {
|
|
388
|
-
// andConditions.push({
|
|
389
|
-
// 'acceptedOffers.itemOffered.programMembershipUsed.issuedThrough.serviceType.codeValue': {
|
|
390
|
-
// $exists: true,
|
|
391
|
-
// $eq: itemOfferedProgramMembershipUsedIssuedThroughServiceTypeCodeValueEq
|
|
392
|
-
// }
|
|
393
|
-
// });
|
|
394
|
-
// }
|
|
395
|
-
const itemOfferedReservedTicketIdentifierEq = params.acceptedOffers?.itemOffered?.reservedTicket?.identifier?.$eq;
|
|
396
|
-
if (typeof itemOfferedReservedTicketIdentifierEq === 'string') {
|
|
397
|
-
andConditions.push({
|
|
398
|
-
'acceptedOffers.itemOffered.reservedTicket.identifier': {
|
|
399
|
-
$exists: true,
|
|
400
|
-
$eq: itemOfferedReservedTicketIdentifierEq
|
|
401
|
-
}
|
|
402
|
-
});
|
|
403
|
-
}
|
|
404
283
|
/* istanbul ignore else */
|
|
405
284
|
if (params.acceptedOffers !== undefined) {
|
|
406
285
|
/* istanbul ignore else */
|
|
@@ -435,25 +314,6 @@ class OrderRepo {
|
|
|
435
314
|
}
|
|
436
315
|
});
|
|
437
316
|
}
|
|
438
|
-
// /* istanbul ignore else */
|
|
439
|
-
// if (typeof reservationForConditions.name === 'string' && reservationForConditions.name.length > 0) {
|
|
440
|
-
// andConditions.push({
|
|
441
|
-
// $or: [
|
|
442
|
-
// {
|
|
443
|
-
// 'acceptedOffers.itemOffered.reservationFor.name.ja': {
|
|
444
|
-
// $exists: true,
|
|
445
|
-
// $regex: new RegExp(reservationForConditions.name)
|
|
446
|
-
// }
|
|
447
|
-
// },
|
|
448
|
-
// {
|
|
449
|
-
// 'acceptedOffers.itemOffered.reservationFor.name.en': {
|
|
450
|
-
// $exists: true,
|
|
451
|
-
// $regex: new RegExp(reservationForConditions.name)
|
|
452
|
-
// }
|
|
453
|
-
// }
|
|
454
|
-
// ]
|
|
455
|
-
// });
|
|
456
|
-
// }
|
|
457
317
|
/* istanbul ignore else */
|
|
458
318
|
if (reservationForConditions.location !== undefined) {
|
|
459
319
|
if (Array.isArray(reservationForConditions.location.branchCodes)) {
|
|
@@ -609,18 +469,6 @@ class OrderRepo {
|
|
|
609
469
|
}
|
|
610
470
|
});
|
|
611
471
|
}
|
|
612
|
-
// /* istanbul ignore else */
|
|
613
|
-
// if (params.orderDateFrom instanceof Date) {
|
|
614
|
-
// andConditions.push({
|
|
615
|
-
// orderDate: { $gte: params.orderDateFrom }
|
|
616
|
-
// });
|
|
617
|
-
// }
|
|
618
|
-
// /* istanbul ignore else */
|
|
619
|
-
// if (params.orderDateThrough instanceof Date) {
|
|
620
|
-
// andConditions.push({
|
|
621
|
-
// orderDate: { $lte: params.orderDateThrough }
|
|
622
|
-
// });
|
|
623
|
-
// }
|
|
624
472
|
if (params.orderDate !== undefined && params.orderDate !== null) {
|
|
625
473
|
if (params.orderDate.$gte instanceof Date) {
|
|
626
474
|
andConditions.push({
|
|
@@ -633,24 +481,6 @@ class OrderRepo {
|
|
|
633
481
|
});
|
|
634
482
|
}
|
|
635
483
|
}
|
|
636
|
-
// if (params.price !== undefined && params.price !== null) {
|
|
637
|
-
// if (typeof params.price.$gte === 'number') {
|
|
638
|
-
// andConditions.push({
|
|
639
|
-
// price: {
|
|
640
|
-
// $exists: true,
|
|
641
|
-
// $gte: params.price.$gte
|
|
642
|
-
// }
|
|
643
|
-
// });
|
|
644
|
-
// }
|
|
645
|
-
// if (typeof params.price.$lte === 'number') {
|
|
646
|
-
// andConditions.push({
|
|
647
|
-
// price: {
|
|
648
|
-
// $exists: true,
|
|
649
|
-
// $lte: params.price.$lte
|
|
650
|
-
// }
|
|
651
|
-
// });
|
|
652
|
-
// }
|
|
653
|
-
// }
|
|
654
484
|
return andConditions;
|
|
655
485
|
}
|
|
656
486
|
/**
|
|
@@ -34,8 +34,16 @@ export type IMinimizedReservationFor = Pick<factory.order.IEventAsReservationFor
|
|
|
34
34
|
};
|
|
35
35
|
};
|
|
36
36
|
export type IMinimizedItemOffered = Pick<factory.order.IEventReservation, 'id' | 'reservationNumber' | 'typeOf'> & {
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
/**
|
|
38
|
+
* そもそも注文ドキュメントから廃止なのでoptionalに
|
|
39
|
+
* 2026-06-03~
|
|
40
|
+
*/
|
|
41
|
+
reservedTicket?: Pick<factory.order.IReservedTicket, 'identifier' | 'ticketedSeat' | 'typeOf'>;
|
|
42
|
+
/**
|
|
43
|
+
* 予約番号ごとに、ひとつめのオファーのみreservationForを含むように変更するのでoptionalに
|
|
44
|
+
* 2026-06-04~
|
|
45
|
+
*/
|
|
46
|
+
reservationFor?: IMinimizedReservationFor;
|
|
39
47
|
};
|
|
40
48
|
export type IMinimizedAcceptedOffer = Pick<factory.order.IOptimizedAcceptedOffer, 'id' | 'name' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'> & {
|
|
41
49
|
itemOffered: IMinimizedItemOffered;
|
|
@@ -72,6 +72,15 @@ interface IAuthorizeOptions {
|
|
|
72
72
|
* 2026-06-01~
|
|
73
73
|
*/
|
|
74
74
|
useAcceptedOfferNoTicketedSeat: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* reservedTicketなしのacceptedOfferを採用するかどうか
|
|
77
|
+
* 2026-06-03~
|
|
78
|
+
*/
|
|
79
|
+
useAcceptedOfferNoReservedTicket: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* 2026-06-04~
|
|
82
|
+
*/
|
|
83
|
+
useAcceptedOfferNoReservationFor: boolean;
|
|
75
84
|
}
|
|
76
85
|
/**
|
|
77
86
|
* 興行オファー承認
|
|
@@ -52,15 +52,22 @@ function authorize(params, options) {
|
|
|
52
52
|
acceptedOffers4result = processStartReserveResult.acceptedOffers4result;
|
|
53
53
|
if (!noOfferSpecified) {
|
|
54
54
|
const useAcceptedOfferNoTicketedSeat = options.useAcceptedOfferNoTicketedSeat === true;
|
|
55
|
+
const useAcceptedOfferNoReservedTicket = options.useAcceptedOfferNoReservedTicket === true;
|
|
56
|
+
const useAcceptedOfferNoReservationFor = options.useAcceptedOfferNoReservationFor === true;
|
|
55
57
|
await (0, any_1.acceptOffer)({
|
|
56
58
|
orderNumber,
|
|
57
59
|
project: transaction.project,
|
|
58
|
-
acceptedOffers: acceptedOffers4result.map((acceptOffer4result) => {
|
|
59
|
-
// support useAcceptedOfferNoPriceSpec(2026-05-19~)
|
|
60
|
+
acceptedOffers: acceptedOffers4result.map((acceptOffer4result, offerIndex) => {
|
|
60
61
|
const { priceSpecification: _priceSpecification, itemOffered, ...acceptOfferNoPriceSpec } = acceptOffer4result;
|
|
62
|
+
const includeReservationFor = !useAcceptedOfferNoReservationFor
|
|
63
|
+
|| (useAcceptedOfferNoReservationFor && offerIndex === 0); // useAcceptedOfferNoReservationForの場合、ひとつめのオファーのみ含む(2026-06-04~)
|
|
61
64
|
return {
|
|
62
65
|
...acceptOfferNoPriceSpec,
|
|
63
|
-
itemOffered: minimizeItemOffered(itemOffered, {
|
|
66
|
+
itemOffered: minimizeItemOffered(itemOffered, {
|
|
67
|
+
useAcceptedOfferNoTicketedSeat,
|
|
68
|
+
useAcceptedOfferNoReservedTicket,
|
|
69
|
+
includeReservationFor
|
|
70
|
+
})
|
|
64
71
|
};
|
|
65
72
|
})
|
|
66
73
|
})(repos);
|
|
@@ -85,7 +92,7 @@ function authorize(params, options) {
|
|
|
85
92
|
* 2026-05-25~
|
|
86
93
|
*/
|
|
87
94
|
function minimizeItemOffered(itemOffered, options) {
|
|
88
|
-
const { useAcceptedOfferNoTicketedSeat } = options;
|
|
95
|
+
const { useAcceptedOfferNoTicketedSeat, useAcceptedOfferNoReservedTicket, includeReservationFor } = options;
|
|
89
96
|
const { id, reservationNumber, typeOf, reservationFor, reservedTicket } = itemOffered;
|
|
90
97
|
const minimizedReservation = {
|
|
91
98
|
id: reservationFor.id,
|
|
@@ -113,13 +120,16 @@ function minimizeItemOffered(itemOffered, options) {
|
|
|
113
120
|
id,
|
|
114
121
|
reservationNumber,
|
|
115
122
|
typeOf,
|
|
116
|
-
reservationFor: minimizedReservation,
|
|
117
|
-
reservedTicket
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
+
...((includeReservationFor) && { reservationFor: minimizedReservation }),
|
|
124
|
+
// useAcceptedOfferNoReservedTicketでない場合のみreservedTicket保管(2026-06-03~)
|
|
125
|
+
...((!useAcceptedOfferNoReservedTicket) && {
|
|
126
|
+
reservedTicket: {
|
|
127
|
+
typeOf: reservedTicket.typeOf,
|
|
128
|
+
// useAcceptedOfferNoTicketedSeatでない場合のみ座席保管(2026-06-01~)
|
|
129
|
+
...((!useAcceptedOfferNoTicketedSeat && typeof reservedTicket.ticketedSeat?.typeOf === 'string') && { ticketedSeat: reservedTicket.ticketedSeat }),
|
|
130
|
+
...((typeof reservedTicket.identifier === 'string') && { identifier: reservedTicket.identifier })
|
|
131
|
+
}
|
|
132
|
+
})
|
|
123
133
|
};
|
|
124
134
|
}
|
|
125
135
|
function validateCreateRequest(params) {
|
|
@@ -96,10 +96,7 @@ function deleteReservationsByOrder(order) {
|
|
|
96
96
|
acceptedOffers: {
|
|
97
97
|
// itemOffered: { typeOf: { $in: [factory.reservationType.EventReservation] } }
|
|
98
98
|
}
|
|
99
|
-
}
|
|
100
|
-
useItemOfferedByReserve: true // 2026-05-25~
|
|
101
|
-
} // 予約取引参照(2026-05-18~)
|
|
102
|
-
);
|
|
99
|
+
});
|
|
103
100
|
const reservationIds = acceptedOffers.map((o) => String(o.itemOffered.id));
|
|
104
101
|
if (reservationIds.length > 0) {
|
|
105
102
|
await repos.reservation.deleteByIds({ project: { id: order.project.id }, ids: reservationIds });
|
|
@@ -101,10 +101,7 @@ function sendOrder(params) {
|
|
|
101
101
|
$slice: [offerIndexBase, limit],
|
|
102
102
|
orderNumber: { $eq: order.orderNumber },
|
|
103
103
|
project: { id: { $eq: order.project.id } }
|
|
104
|
-
}
|
|
105
|
-
useItemOfferedByReserve: true // 2026-05-25~
|
|
106
|
-
} // 予約取引参照(2026-05-18~)
|
|
107
|
-
);
|
|
104
|
+
});
|
|
108
105
|
acceptedOffers = searchSlicedAcceptedOffersResult.acceptedOffers;
|
|
109
106
|
debug('delivering...', order.orderNumber, acceptedOffers.map((offer) => `${offer.itemOffered.id}`), // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
110
107
|
params.object.acceptedOffers, 'offerIndexBase:', offerIndexBase);
|
|
@@ -39,10 +39,7 @@ function findByCode(params) {
|
|
|
39
39
|
// typeOf?: { $in?: factory.order.IItemOffered['typeOf'][] };
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
}
|
|
43
|
-
useItemOfferedByReserve: true // 2026-05-25~
|
|
44
|
-
} // 予約取引参照(2026-05-18~)
|
|
45
|
-
)).shift();
|
|
42
|
+
})).shift();
|
|
46
43
|
if (acceptedOffer === undefined) {
|
|
47
44
|
throw new factory_1.factory.errors.NotFound('acceptedOffer');
|
|
48
45
|
}
|
|
@@ -16,10 +16,7 @@ function searchByOrder(params) {
|
|
|
16
16
|
// typeOf: { $in: [reservationType] }
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
}
|
|
20
|
-
useItemOfferedByReserve: true // 2026-05-25~
|
|
21
|
-
} // 予約取引参照(2026-05-18~)
|
|
22
|
-
);
|
|
19
|
+
});
|
|
23
20
|
const reservationIds = acceptedOffers.map((offer) => {
|
|
24
21
|
if (offer.itemOffered.typeOf === reservationType) {
|
|
25
22
|
return offer.itemOffered.id;
|
|
@@ -139,10 +139,7 @@ function fixOrderAsPurpose(params) {
|
|
|
139
139
|
const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
|
|
140
140
|
orderNumber: { $eq: order.orderNumber },
|
|
141
141
|
project: { id: { $eq: params.project.id } }
|
|
142
|
-
}
|
|
143
|
-
useItemOfferedByReserve: true // 2026-05-25~
|
|
144
|
-
} // 予約取引参照(2026-05-18~)
|
|
145
|
-
);
|
|
142
|
+
});
|
|
146
143
|
return {
|
|
147
144
|
...order,
|
|
148
145
|
acceptedOffers
|
|
@@ -77,10 +77,7 @@ function fixOrderAsPurpose(params, transaction) {
|
|
|
77
77
|
// reservedTicket: { ticketedSeat: { seatNumber: { $in: seatNumbers } } } // 座席番号により絞りは廃止(2026-06-01~)
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
}
|
|
81
|
-
useItemOfferedByReserve: true // 2026-05-25~
|
|
82
|
-
} // 予約取引参照(2026-05-18~)
|
|
83
|
-
);
|
|
80
|
+
});
|
|
84
81
|
}
|
|
85
82
|
return {
|
|
86
83
|
...orderWithoutAcceptedOffers,
|
|
@@ -144,10 +144,7 @@ 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
|
-
}
|
|
148
|
-
useItemOfferedByReserve: true // 2026-05-25~
|
|
149
|
-
} // 予約取引参照(2026-05-18~)
|
|
150
|
-
);
|
|
147
|
+
});
|
|
151
148
|
return { acceptedOffers, eventIds, offerIds, orders };
|
|
152
149
|
};
|
|
153
150
|
}
|
|
@@ -22,10 +22,7 @@ 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
|
-
}
|
|
26
|
-
useItemOfferedByReserve: true // 2026-05-25~
|
|
27
|
-
} // 予約取引参照(2026-05-18~)
|
|
28
|
-
);
|
|
25
|
+
});
|
|
29
26
|
let payTransactions = [];
|
|
30
27
|
if (order.paymentMethods.length > 0) {
|
|
31
28
|
payTransactions = await repos.assetTransaction.search({
|
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.
|
|
14
|
+
"@chevre/factory": "8.2.0-alpha.5",
|
|
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.
|
|
94
|
+
"version": "24.1.0-alpha.49"
|
|
95
95
|
}
|