@chevre/domain 24.1.0-alpha.26 → 24.1.0-alpha.28

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.
@@ -1,15 +1,10 @@
1
1
  import type { Connection } from 'mongoose';
2
2
  import { factory } from '../factory';
3
+ import { AcceptedOfferInReserveRepo, IAcceptedOffer } from './acceptedOfferInReserve';
3
4
  type IProjection4searchWithUnwoundAcceptedOffers = {
4
5
  [key in keyof factory.order.IOrder]?: 1;
5
6
  } & {};
6
7
  type IDistinctField = 'acceptedOffers.id' | 'acceptedOffers.itemOffered.reservationNumber' | 'acceptedOffers.itemOffered.reservationFor.id' | 'acceptedOffers.serialNumber' | 'acceptedOffers.offeredThrough.identifier' | 'acceptedOffers.itemOffered.reservationFor.superEvent.location.branchCode';
7
- type IAcceptedOffer = Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
8
- /**
9
- * COA以外では注文ドキュメントにpriceSpecificationが存在しないのでIFを補完
10
- */
11
- priceSpecification?: factory.order.ITicketPriceSpecification;
12
- };
13
8
  interface ISearchSlicedAcceptedOffersResult {
14
9
  acceptedOffers: IAcceptedOffer[];
15
10
  numAcceptedOffers: number;
@@ -17,18 +12,9 @@ interface ISearchSlicedAcceptedOffersResult {
17
12
  /**
18
13
  * 注文オファーリポジトリ
19
14
  */
20
- export declare class AcceptedOfferRepo {
15
+ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
21
16
  private readonly orderModel;
22
- private readonly reserveTransactionModel;
23
17
  constructor(connection: Connection);
24
- /**
25
- * 予約番号指定で予約取引からitemOfferedを生成する
26
- */
27
- private findSubReservationsByReservationNumbers;
28
- /**
29
- * 予約取引からオファー詳細情報を付加する
30
- */
31
- private addAcceptedOffersDetails;
32
18
  /**
33
19
  * オファー展開の注文検索
34
20
  */
@@ -7,76 +7,18 @@ exports.AcceptedOfferRepo = void 0;
7
7
  const debug_1 = __importDefault(require("debug"));
8
8
  const factory_1 = require("../factory");
9
9
  const order_1 = require("./mongoose/schemas/order");
10
- const assetTransaction_1 = require("./mongoose/schemas/assetTransaction");
11
- const reserveTransaction2itemOffered_1 = require("./factory/acceptedOffer/reserveTransaction2itemOffered");
10
+ const acceptedOfferInReserve_1 = require("./acceptedOfferInReserve");
12
11
  const order_2 = require("./order");
13
12
  const settings_1 = require("../settings");
14
13
  const debug = (0, debug_1.default)('chevre-domain:repo:acceptedOffer');
15
14
  /**
16
15
  * 注文オファーリポジトリ
17
16
  */
18
- class AcceptedOfferRepo {
17
+ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveRepo {
19
18
  orderModel;
20
- reserveTransactionModel;
21
19
  constructor(connection) {
20
+ super(connection);
22
21
  this.orderModel = connection.model(order_1.modelName, (0, order_1.createSchema)());
23
- this.reserveTransactionModel = connection.model(assetTransaction_1.modelName, (0, assetTransaction_1.createSchema)());
24
- }
25
- /**
26
- * 予約番号指定で予約取引からitemOfferedを生成する
27
- */
28
- async findSubReservationsByReservationNumbers(params) {
29
- const { reservationNumbers } = params;
30
- if (!Array.isArray(reservationNumbers) || reservationNumbers.length === 0) {
31
- throw new factory_1.factory.errors.ArgumentNull('reservationNumbers');
32
- }
33
- const reserveTransactions = await this.reserveTransactionModel.find({
34
- transactionNumber: { $in: reservationNumbers },
35
- typeOf: { $eq: factory_1.factory.assetTransactionType.Reserve }
36
- }, {
37
- object: 1
38
- })
39
- .lean()
40
- .exec();
41
- debug('findSubReservationsByReservationNumbers: reservationNumbers.length === reserveTransactions.length?', reservationNumbers.length === reserveTransactions.length);
42
- return reserveTransactions.reduce((a, b) => {
43
- return [...a, ...(0, reserveTransaction2itemOffered_1.reserveTransaction2itemOffered)(b)];
44
- }, []);
45
- }
46
- /**
47
- * 予約取引からオファー詳細情報を付加する
48
- */
49
- async addAcceptedOffersDetails(acceptedOffers) {
50
- const offeredThroughIdentifier = acceptedOffers.at(0)?.offeredThrough?.identifier;
51
- if (offeredThroughIdentifier === factory_1.factory.service.webAPI.Identifier.COA) {
52
- // COAでは予約取引を参照しない
53
- return acceptedOffers;
54
- }
55
- const reservationNumbers = [...new Set(acceptedOffers.map((acceptedOffer) => String(acceptedOffer.serialNumber)))];
56
- debug('addAcceptedOffersDetails:', reservationNumbers.length, 'reservationNumbers found.');
57
- let subReservations = [];
58
- if (reservationNumbers.length > 0) {
59
- subReservations = await this.findSubReservationsByReservationNumbers({ reservationNumbers });
60
- }
61
- return acceptedOffers.map((acceptedOffer) => {
62
- const subReservation = subReservations.find(((reservation) => reservation.id === acceptedOffer.itemOffered.id));
63
- // 予約は必ず存在するはず
64
- if (subReservation === undefined) {
65
- console.error('addAcceptedOffersDetails: subReservation: undefined!!!', acceptedOffer.itemOffered.id);
66
- }
67
- const priceSpecByReserveTransaction = subReservation?.price;
68
- // 予約の価格は必ず存在するはず
69
- if (priceSpecByReserveTransaction === undefined) {
70
- console.error('addAcceptedOffersDetails: priceSpecByReserveTransaction: undefined!!!', acceptedOffer.itemOffered.id);
71
- }
72
- const { priceSpecification, ...acceptedOfferWithoutPrice } = acceptedOffer;
73
- return {
74
- ...acceptedOfferWithoutPrice,
75
- ...(priceSpecByReserveTransaction !== undefined)
76
- ? { priceSpecification: priceSpecByReserveTransaction } // 予約取引参照の値で上書き
77
- : { priceSpecification } // 万が一予約取引に存在しなければ注文ドキュメントの値を採用
78
- };
79
- });
80
22
  }
81
23
  /**
82
24
  * オファー展開の注文検索
@@ -132,12 +74,12 @@ class AcceptedOfferRepo {
132
74
  const subReservation = subReservations.find(((reservation) => reservation.id === acceptedOffer.itemOffered.id));
133
75
  // 予約は必ず存在するはず
134
76
  if (subReservation === undefined) {
135
- console.error('searchWithUnwoundAcceptedOffers: subReservation: undefined!!!', acceptedOffer.itemOffered.id);
77
+ console.error('repo:acceptedOffer: searchWithUnwoundAcceptedOffers: subReservation: undefined!!!', acceptedOffer.itemOffered.id);
136
78
  }
137
79
  const priceSpecByReserveTransaction = subReservation?.price;
138
80
  // 予約の価格は必ず存在するはず
139
81
  if (priceSpecByReserveTransaction === undefined) {
140
- console.error('searchWithUnwoundAcceptedOffers: priceSpecByReserveTransaction: undefined!!!', acceptedOffer.itemOffered.id);
82
+ console.error('repo:acceptedOffer: searchWithUnwoundAcceptedOffers: priceSpecByReserveTransaction: undefined!!!', acceptedOffer.itemOffered.id);
141
83
  }
142
84
  const { priceSpecification, ...acceptedOfferWithoutPrice } = acceptedOffer;
143
85
  return {
@@ -0,0 +1,30 @@
1
+ import type { Connection } from 'mongoose';
2
+ import { factory } from '../factory';
3
+ import { IModel } from './mongoose/schemas/assetTransaction';
4
+ import { IItemOfferedByReserveTransaction } from './factory/acceptedOffer/reserveTransaction2itemOffered';
5
+ export type IAcceptedOffer = Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
6
+ /**
7
+ * COA以外では注文ドキュメントにpriceSpecificationが存在しないのでIFを補完
8
+ */
9
+ priceSpecification?: factory.order.ITicketPriceSpecification;
10
+ };
11
+ /**
12
+ * 予約取引に依存した注文オファーリポジトリ
13
+ */
14
+ export declare class AcceptedOfferInReserveRepo {
15
+ protected readonly reserveTransactionModel: IModel;
16
+ constructor(connection: Connection);
17
+ /**
18
+ * 予約番号指定で予約取引からitemOfferedを生成する
19
+ */
20
+ protected findSubReservationsByReservationNumbers(params: {
21
+ /**
22
+ * 予約番号リスト
23
+ */
24
+ reservationNumbers: string[];
25
+ }): Promise<IItemOfferedByReserveTransaction[]>;
26
+ /**
27
+ * 予約取引からオファー詳細情報を付加する
28
+ */
29
+ protected addAcceptedOffersDetails(acceptedOffers: IAcceptedOffer[]): Promise<IAcceptedOffer[]>;
30
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AcceptedOfferInReserveRepo = void 0;
7
+ const debug_1 = __importDefault(require("debug"));
8
+ const factory_1 = require("../factory");
9
+ const assetTransaction_1 = require("./mongoose/schemas/assetTransaction");
10
+ const reserveTransaction2itemOffered_1 = require("./factory/acceptedOffer/reserveTransaction2itemOffered");
11
+ const debug = (0, debug_1.default)('chevre-domain:repo:acceptedOffer');
12
+ /**
13
+ * 予約取引に依存した注文オファーリポジトリ
14
+ */
15
+ class AcceptedOfferInReserveRepo {
16
+ reserveTransactionModel;
17
+ constructor(connection) {
18
+ this.reserveTransactionModel = connection.model(assetTransaction_1.modelName, (0, assetTransaction_1.createSchema)());
19
+ }
20
+ /**
21
+ * 予約番号指定で予約取引からitemOfferedを生成する
22
+ */
23
+ async findSubReservationsByReservationNumbers(params) {
24
+ const { reservationNumbers } = params;
25
+ if (!Array.isArray(reservationNumbers) || reservationNumbers.length === 0) {
26
+ throw new factory_1.factory.errors.ArgumentNull('reservationNumbers');
27
+ }
28
+ const reserveTransactions = await this.reserveTransactionModel.find({
29
+ transactionNumber: { $in: reservationNumbers },
30
+ typeOf: { $eq: factory_1.factory.assetTransactionType.Reserve }
31
+ }, {
32
+ object: 1
33
+ })
34
+ .lean()
35
+ .exec();
36
+ debug('findSubReservationsByReservationNumbers: reservationNumbers.length === reserveTransactions.length?', reservationNumbers.length === reserveTransactions.length);
37
+ return reserveTransactions.reduce((a, b) => {
38
+ return [...a, ...(0, reserveTransaction2itemOffered_1.reserveTransaction2itemOffered)(b)];
39
+ }, []);
40
+ }
41
+ /**
42
+ * 予約取引からオファー詳細情報を付加する
43
+ */
44
+ async addAcceptedOffersDetails(acceptedOffers) {
45
+ const offeredThroughIdentifier = acceptedOffers.at(0)?.offeredThrough?.identifier;
46
+ if (offeredThroughIdentifier === factory_1.factory.service.webAPI.Identifier.COA) {
47
+ // COAでは予約取引を参照しない
48
+ return acceptedOffers;
49
+ }
50
+ const reservationNumbers = [...new Set(acceptedOffers.map((acceptedOffer) => String(acceptedOffer.serialNumber)))];
51
+ debug('addAcceptedOffersDetails:', reservationNumbers.length, 'reservationNumbers found.');
52
+ let subReservations = [];
53
+ if (reservationNumbers.length > 0) {
54
+ subReservations = await this.findSubReservationsByReservationNumbers({ reservationNumbers });
55
+ }
56
+ return acceptedOffers.map((acceptedOffer) => {
57
+ const subReservation = subReservations.find(((reservation) => reservation.id === acceptedOffer.itemOffered.id));
58
+ // 予約は必ず存在するはず
59
+ if (subReservation === undefined) {
60
+ console.error('repo:acceptedOffer: addAcceptedOffersDetails: subReservation: undefined!!!', acceptedOffer.itemOffered.id);
61
+ }
62
+ const priceSpecByReserveTransaction = subReservation?.price;
63
+ // 予約の価格は必ず存在するはず
64
+ if (priceSpecByReserveTransaction === undefined) {
65
+ console.error('repo:acceptedOffer: addAcceptedOffersDetails: priceSpecByReserveTransaction: undefined!!!', acceptedOffer.itemOffered.id);
66
+ }
67
+ const { priceSpecification, ...acceptedOfferWithoutPrice } = acceptedOffer;
68
+ return {
69
+ ...acceptedOfferWithoutPrice,
70
+ ...(priceSpecByReserveTransaction !== undefined)
71
+ ? { priceSpecification: priceSpecByReserveTransaction } // 予約取引参照の値で上書き
72
+ : { priceSpecification } // 万が一予約取引に存在しなければ注文ドキュメントの値を採用
73
+ };
74
+ });
75
+ }
76
+ }
77
+ exports.AcceptedOfferInReserveRepo = AcceptedOfferInReserveRepo;
@@ -1,11 +1,8 @@
1
1
  import type { Connection } from 'mongoose';
2
2
  import { factory } from '../../factory';
3
3
  type ISubReservationAsFindResult = Pick<factory.reservation.eventReservation.IReservation, 'underName' | 'id'> & {
4
- numSeats?: number;
5
- price?: factory.assetTransaction.reserve.IPrice;
6
4
  reservedTicket?: Pick<factory.reservation.eventReservation.IReservedTicket, 'ticketType'>;
7
5
  reservationFor?: factory.assetTransaction.reserve.IReservationFor;
8
- issuedThrough?: factory.assetTransaction.reserve.IIssuedThrough;
9
6
  };
10
7
  /**
11
8
  * 予約取引リポジトリ
@@ -12,54 +12,6 @@ class ReserveTransactionRepo {
12
12
  constructor(connection) {
13
13
  this.transactionModel = connection.model(assetTransaction_1.modelName, (0, assetTransaction_1.createSchema)());
14
14
  }
15
- // /**
16
- // * 予約取引から予約を検索する
17
- // */
18
- // public async findSubReservationsByReservationNumber(
19
- // params: {
20
- // reservationNumber: string;
21
- // }
22
- // ): Promise<ISubReservationAsFindResult[]> {
23
- // const aggregate = this.transactionModel.aggregate<ISubReservationAsFindResult>([
24
- // {
25
- // $match: {
26
- // typeOf: { $eq: factory.assetTransactionType.Reserve },
27
- // transactionNumber: { $eq: params.reservationNumber }
28
- // }
29
- // },
30
- // {
31
- // $unwind: {
32
- // path: '$object.subReservation'
33
- // // includeArrayIndex: 'elementIndex'
34
- // }
35
- // },
36
- // // {
37
- // // $match: {
38
- // // typeOf: { $eq: factory.assetTransactionType.Reserve },
39
- // // transactionNumber: { $eq: params.reservationNumber }
40
- // // }
41
- // // },
42
- // {
43
- // $project: {
44
- // _id: 0,
45
- // id: '$object.subReservation.id',
46
- // price: '$object.subReservation.price',
47
- // underName: '$object.underName',
48
- // reservedTicket: {
49
- // ticketType: '$object.subReservation.reservedTicket.ticketType',
50
- // }
51
- // }
52
- // }
53
- // ]);
54
- // // if (typeof filter.limit === 'number' && filter.limit > 0) {
55
- // // const page: number = (typeof filter.page === 'number' && filter.page > 0) ? filter.page : 1;
56
- // // aggregate.limit(filter.limit * page)
57
- // // .skip(filter.limit * (page - 1));
58
- // // }
59
- // return aggregate
60
- // .option({ maxTimeMS: MONGO_MAX_TIME_MS })
61
- // .exec();
62
- // }
63
15
  /**
64
16
  * 予約取引から予約を検索する
65
17
  * limitはしない
@@ -91,14 +43,14 @@ class ReserveTransactionRepo {
91
43
  $project: {
92
44
  _id: 0,
93
45
  id: '$object.subReservation.id',
94
- numSeats: '$object.subReservation.numSeats',
95
- price: '$object.subReservation.price',
96
46
  underName: '$object.underName',
97
47
  reservationFor: '$object.reservationFor',
98
48
  reservedTicket: {
99
49
  ticketType: '$object.subReservation.reservedTicket.ticketType',
100
50
  },
101
- issuedThrough: '$object.issuedThrough',
51
+ // numSeats: '$object.subReservation.numSeats',
52
+ // price: '$object.subReservation.price',
53
+ // issuedThrough: '$object.issuedThrough',
102
54
  }
103
55
  }
104
56
  ]);
@@ -1,5 +1,6 @@
1
1
  import type { Connection } from 'mongoose';
2
2
  import { factory } from '../factory';
3
+ import { AcceptedOfferInReserveRepo } from './acceptedOfferInReserve';
3
4
  type IOrderInTransaction = Pick<factory.order.IOrder, 'orderNumber' | 'project'> & {
4
5
  typeOf: factory.transactionType.PlaceOrder;
5
6
  orderDate: Date;
@@ -28,11 +29,9 @@ export type IPlacingOrder = Pick<factory.order.IOrder, 'broker' | 'confirmationN
28
29
  /**
29
30
  * 取引中注文リポジトリ
30
31
  */
31
- export declare class OrderInTransactionRepo {
32
+ export declare class OrderInTransactionRepo extends AcceptedOfferInReserveRepo {
32
33
  private readonly orderModel;
33
- private readonly reserveTransactionModel;
34
34
  constructor(connection: Connection);
35
- private findSubReservationsByReservationNumbers;
36
35
  /**
37
36
  * 取引進行中の注文からacceptedOffersを検索する
38
37
  * 予約取引から予約ごとの価格仕様も参照する
@@ -4,45 +4,16 @@ exports.OrderInTransactionRepo = void 0;
4
4
  // import { isDeepStrictEqual } from 'util';
5
5
  const factory_1 = require("../factory");
6
6
  const order_1 = require("./mongoose/schemas/order");
7
- const assetTransaction_1 = require("./mongoose/schemas/assetTransaction");
7
+ const acceptedOfferInReserve_1 = require("./acceptedOfferInReserve");
8
8
  // const debug = createDebug('chevre-domain:repo:orderInTransaction');
9
9
  /**
10
10
  * 取引中注文リポジトリ
11
11
  */
12
- class OrderInTransactionRepo {
12
+ class OrderInTransactionRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveRepo {
13
13
  orderModel;
14
- reserveTransactionModel;
15
14
  constructor(connection) {
15
+ super(connection);
16
16
  this.orderModel = connection.model(order_1.modelName, (0, order_1.createSchema)());
17
- this.reserveTransactionModel = connection.model(assetTransaction_1.modelName, (0, assetTransaction_1.createSchema)());
18
- }
19
- async findSubReservationsByReservationNumbers(params) {
20
- const { reservationNumbers } = params;
21
- if (!Array.isArray(reservationNumbers) || reservationNumbers.length === 0) {
22
- throw new factory_1.factory.errors.ArgumentNull('reservationNumbers');
23
- }
24
- const aggregate = this.reserveTransactionModel.aggregate([
25
- {
26
- $match: {
27
- typeOf: { $eq: factory_1.factory.assetTransactionType.Reserve },
28
- transactionNumber: { $in: reservationNumbers }
29
- }
30
- },
31
- {
32
- $unwind: {
33
- path: '$object.subReservation'
34
- // includeArrayIndex: 'elementIndex'
35
- }
36
- },
37
- {
38
- $project: {
39
- _id: 0,
40
- id: '$object.subReservation.id',
41
- price: '$object.subReservation.price',
42
- }
43
- }
44
- ]);
45
- return aggregate.exec();
46
17
  }
47
18
  /**
48
19
  * 取引進行中の注文からacceptedOffersを検索する
@@ -71,15 +42,13 @@ class OrderInTransactionRepo {
71
42
  }
72
43
  return doc.acceptedOffers.map((acceptedOffer) => {
73
44
  const priceBySubReservation = subReservations.find((subReservation) => subReservation.id === acceptedOffer.itemOffered.id)?.price;
74
- // COA予約でなければ、予約取引の価格は必ず存在するはず
45
+ // COA予約でなければ、予約取引の価格は必ず存在するはず(2026-05-20~)
75
46
  if (priceBySubReservation === undefined) {
76
47
  throw new factory_1.factory.errors.Internal(`findAcceptedOffersWithPriceByOrderNumber: priceBySubReservation undefined. ${acceptedOffer.itemOffered.id}`);
77
48
  }
78
49
  return {
79
50
  ...acceptedOffer,
80
51
  priceSpecification: priceBySubReservation
81
- // // 予約取引内の価格仕様と一致した場合のみ上書きしてみる
82
- // ...((overwritePriceSpec && priceBySubReservation !== undefined) && { priceSpecification: priceBySubReservation })
83
52
  };
84
53
  });
85
54
  }
@@ -1,24 +1,21 @@
1
1
  import { factory } from '../../factory';
2
2
  import type { ReserveTransactionRepo } from '../../repo/assetTransaction/reserve';
3
- import type { IDeprecatedField, IKeyOfProjection, ReservationRepo } from '../../repo/reservation';
3
+ import type { IKeyOfProjection, ReservationRepo } from '../../repo/reservation';
4
4
  /**
5
5
  * 予約検索レスポンスとしての予約
6
6
  * 予約ドキュメントに予約取引の情報を補完する
7
7
  */
8
- type IReservationAsFindResult = Omit<factory.reservation.eventReservation.IReservation, 'price' | 'priceCurrency' | 'underName' | 'reservedTicket' | 'reservationFor' | 'issuedThrough' | 'numSeats'> & {
9
- price?: factory.assetTransaction.reserve.IPrice;
10
- priceCurrency?: factory.priceCurrency.JPY;
8
+ type IReservationAsFindResult = Omit<factory.reservation.eventReservation.IReservation, 'underName' | 'reservedTicket' | 'reservationFor'> & {
11
9
  underName?: factory.assetTransaction.reserve.IUnderName;
12
10
  reservedTicket?: factory.assetTransaction.reserve.IObjectSubReservation['reservedTicket'];
13
11
  reservationFor?: factory.assetTransaction.reserve.IReservationFor;
14
- issuedThrough?: factory.assetTransaction.reserve.IIssuedThrough;
15
- numSeats?: number;
12
+ price?: never;
16
13
  };
17
14
  /**
18
15
  * 予約を検索する
19
16
  */
20
17
  export declare function findReservations(params: factory.reservation.eventReservation.ISearchConditions, options: {
21
- inclusion: Partial<Record<IKeyOfProjection | IDeprecatedField, 1>>;
18
+ inclusion: Partial<Record<IKeyOfProjection | 'underName', 1>>;
22
19
  }): (repos: {
23
20
  assetTransaction: {
24
21
  reserve: ReserveTransactionRepo;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findReservations = findReservations;
4
- const factory_1 = require("../../factory");
5
4
  /**
6
5
  * 予約を検索する
7
6
  */
@@ -13,45 +12,28 @@ function findReservations(params, options) {
13
12
  return [];
14
13
  }
15
14
  else {
16
- const requirePrice = Object.keys(inclusion).includes('price');
17
- const requirePriceCurrency = Object.keys(inclusion).includes('priceCurrency');
18
15
  const requireUnderName = Object.keys(inclusion).includes('underName');
19
16
  const requireReservedTicket = Object.keys(inclusion).includes('reservedTicket');
20
17
  const requireReservationFor = Object.keys(inclusion).includes('reservationFor');
21
- const requireIssuedThrough = Object.keys(inclusion).includes('issuedThrough');
22
- const requireNumSeats = Object.keys(inclusion).includes('numSeats');
18
+ // const requirePrice = Object.keys(inclusion).includes('price');
19
+ // const requirePriceCurrency = Object.keys(inclusion).includes('priceCurrency');
20
+ // const requireIssuedThrough = Object.keys(inclusion).includes('issuedThrough');
21
+ // const requireNumSeats = Object.keys(inclusion).includes('numSeats');
23
22
  const reservationIds = rawReservations.map(({ id }) => id);
24
23
  const subReservations = await repos.assetTransaction.reserve.findSubReservationsById({
25
24
  ids: reservationIds
26
25
  });
27
26
  return rawReservations.map((reservation) => {
28
27
  const subReservationByTransaction = subReservations.find((s) => s.id === reservation.id);
29
- const priceByTransaction = subReservationByTransaction?.price;
30
28
  const underNameByTransaction = subReservationByTransaction?.underName;
31
29
  const ticketTypeByTransaction = subReservationByTransaction?.reservedTicket?.ticketType;
32
30
  const reservationForByTransaction = subReservationByTransaction?.reservationFor;
33
- const issuedThroughByTransaction = subReservationByTransaction?.issuedThrough;
34
- const numSeatsByTransaction = subReservationByTransaction?.numSeats;
35
- // 予約ドキュメントを最適化し始めたため、もう等しくない(2026-04-06~)
36
- // // 予約取引から参照した属性と全く等しいはず
37
- // if (requirePrice) {
38
- // }
39
- // if (requireUnderName) {
40
- // }
41
- // if (requireReservedTicket) {
42
- // }
43
- // if (requireReservationFor) {
44
- // const reservationForMatched = isDeepStrictEqual(reservation.reservationFor, reservationForByTransaction);
45
- // debug('requireReservationFor. reservationForMatched?', reservationForMatched);
46
- // if (!reservationForMatched) {
47
- // console.error('reservationForMatched: false!!!', reservation.id);
48
- // }
49
- // }
31
+ // const priceByTransaction = subReservationByTransaction?.price;
32
+ // const issuedThroughByTransaction = subReservationByTransaction?.issuedThrough;
33
+ // const numSeatsByTransaction = subReservationByTransaction?.numSeats;
50
34
  const { reservationFor: _reservationFor, issuedThrough: _issuedThrough, priceCurrency: _priceCurrency, numSeats: _numSeats, reservedTicket, ...rawReservation4result } = reservation;
51
35
  return {
52
36
  ...rawReservation4result, // 予約ドキュメントはそのまま返す
53
- ...(requirePrice && priceByTransaction !== undefined) ? { price: priceByTransaction } : undefined, // priceがあれば上書き
54
- ...(requirePriceCurrency) ? { priceCurrency: factory_1.factory.priceCurrency.JPY } : undefined, // 必要あらば固定値を補完(2026-05-08~)
55
37
  ...(requireUnderName && underNameByTransaction !== undefined) ? { underName: underNameByTransaction } : undefined, // underNameがあれば上書き
56
38
  ...(requireReservedTicket && ticketTypeByTransaction !== undefined) // ticketTypeがあれば上書き
57
39
  ? {
@@ -63,13 +45,15 @@ function findReservations(params, options) {
63
45
  : undefined,
64
46
  ...(requireReservationFor && reservationForByTransaction !== undefined)
65
47
  ? { reservationFor: reservationForByTransaction }
66
- : undefined, // reservationForがあれば上書き(2026-04-06~),
67
- ...(requireIssuedThrough && issuedThroughByTransaction !== undefined)
68
- ? { issuedThrough: issuedThroughByTransaction }
69
- : undefined, // issuedThroughがあれば上書き(2026-05-09~)
70
- ...(requireNumSeats && numSeatsByTransaction !== undefined)
71
- ? { numSeats: numSeatsByTransaction }
72
- : undefined, // issuedThroughがあれば上書き(2026-05-09~)
48
+ : undefined, // reservationForがあれば上書き(2026-04-06~)
49
+ // ...(requirePrice && priceByTransaction !== undefined) ? { price: priceByTransaction } : undefined, // priceがあれば上書き
50
+ // ...(requirePriceCurrency) ? { priceCurrency: factory.priceCurrency.JPY } : undefined, // 必要あらば固定値を補完(2026-05-08~)
51
+ // ...(requireIssuedThrough && issuedThroughByTransaction !== undefined)
52
+ // ? { issuedThrough: issuedThroughByTransaction }
53
+ // : undefined, // issuedThroughがあれば上書き(2026-05-09~)
54
+ // ...(requireNumSeats && numSeatsByTransaction !== undefined)
55
+ // ? { numSeats: numSeatsByTransaction }
56
+ // : undefined, // issuedThroughがあれば上書き(2026-05-09~)
73
57
  };
74
58
  });
75
59
  }
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.26"
94
+ "version": "24.1.0-alpha.28"
95
95
  }