@chevre/domain 24.1.0-alpha.13 → 24.1.0-alpha.14

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.
@@ -36,7 +36,6 @@ export declare class AcceptedOfferRepo {
36
36
  searchAcceptedOffersByOrderNumber(filter: {
37
37
  limit?: number;
38
38
  page?: number;
39
- $slice?: [number, number];
40
39
  orderNumber: {
41
40
  $eq: string;
42
41
  };
@@ -53,9 +52,6 @@ export declare class AcceptedOfferRepo {
53
52
  id?: {
54
53
  $eq?: string;
55
54
  };
56
- typeOf?: {
57
- $in?: factory.order.IItemOffered['typeOf'][];
58
- };
59
55
  reservationFor?: {
60
56
  id?: {
61
57
  $in?: string[];
@@ -53,14 +53,14 @@ class AcceptedOfferRepo {
53
53
  }
54
54
  async aggreateOwnershipInfosByOrder(filter) {
55
55
  const aggregate = this.orderModel.aggregate([
56
+ { $match: { orderNumber: { $eq: filter.orderNumber.$eq } } },
57
+ { $match: { typeOf: { $eq: factory_1.factory.order.OrderType.Order } } },
56
58
  {
57
59
  $unwind: {
58
60
  path: '$acceptedOffers',
59
61
  includeArrayIndex: 'acceptedOfferIndex'
60
62
  }
61
63
  },
62
- { $match: { orderNumber: { $eq: filter.orderNumber.$eq } } },
63
- { $match: { typeOf: { $eq: factory_1.factory.order.OrderType.Order } } },
64
64
  {
65
65
  $project: {
66
66
  _id: 0,
@@ -82,21 +82,32 @@ class AcceptedOfferRepo {
82
82
  * 注文オファーを展開して検索する
83
83
  */
84
84
  async searchAcceptedOffersByOrderNumber(filter, inclusion) {
85
- const matchStages = [
85
+ /**
86
+ * unwind前に1ドキュメントを特定するためのstage
87
+ */
88
+ const matchStagesOneDocument = [
86
89
  { $match: { orderNumber: { $eq: filter.orderNumber.$eq } } },
87
90
  { $match: { 'project.id': { $eq: filter.project.id.$eq } } },
88
91
  { $match: { typeOf: { $eq: factory_1.factory.order.OrderType.Order } } }
89
92
  ];
93
+ /**
94
+ * unwind後にオファー内容で絞るstage
95
+ */
96
+ const matchStages = [
97
+ // { $match: { orderNumber: { $eq: filter.orderNumber.$eq } } }, // matchStagesOneDocumentへ移行(2026-05-12~)
98
+ // { $match: { 'project.id': { $eq: filter.project.id.$eq } } }, // matchStagesOneDocumentへ移行(2026-05-12~)
99
+ // { $match: { typeOf: { $eq: factory.order.OrderType.Order } } } // matchStagesOneDocumentへ移行(2026-05-12~)
100
+ ];
90
101
  const itemOfferedIdEq = filter.acceptedOffers?.itemOffered?.id?.$eq;
91
102
  if (typeof itemOfferedIdEq === 'string') {
92
103
  matchStages.push({ $match: { 'acceptedOffers.itemOffered.id': { $exists: true, $eq: itemOfferedIdEq } } });
93
104
  }
94
- const itemOfferedTypeOfIn = filter.acceptedOffers?.itemOffered?.typeOf?.$in;
95
- if (Array.isArray(itemOfferedTypeOfIn)) {
96
- matchStages.push({
97
- $match: { 'acceptedOffers.itemOffered.typeOf': { $exists: true, $in: itemOfferedTypeOfIn } }
98
- });
99
- }
105
+ // const itemOfferedTypeOfIn = filter.acceptedOffers?.itemOffered?.typeOf?.$in;
106
+ // if (Array.isArray(itemOfferedTypeOfIn)) {
107
+ // matchStages.push({
108
+ // $match: { 'acceptedOffers.itemOffered.typeOf': { $exists: true, $in: itemOfferedTypeOfIn } }
109
+ // });
110
+ // }
100
111
  const resevationForIdIn = filter.acceptedOffers?.itemOffered?.reservationFor?.id?.$in;
101
112
  if (Array.isArray(resevationForIdIn)) {
102
113
  matchStages.push({
@@ -114,9 +125,7 @@ class AcceptedOfferRepo {
114
125
  });
115
126
  }
116
127
  const aggregate = this.orderModel.aggregate([
117
- // if (typeof params.sort?.orderDate === 'number') {
118
- // aggregate.sort({ orderDate: params.sort.orderDate });
119
- // }
128
+ ...matchStagesOneDocument,
120
129
  {
121
130
  $unwind: {
122
131
  path: '$acceptedOffers'
@@ -148,8 +157,11 @@ class AcceptedOfferRepo {
148
157
  }
149
158
  if (typeof filter.limit === 'number' && filter.limit > 0) {
150
159
  const page = (typeof filter.page === 'number' && filter.page > 0) ? filter.page : 1;
151
- aggregate.limit(filter.limit * page)
152
- .skip(filter.limit * (page - 1));
160
+ // support skip -> limit(2026-05-12~)
161
+ // aggregate.limit(filter.limit * page)
162
+ // .skip(filter.limit * (page - 1));
163
+ aggregate.skip(filter.limit * (page - 1))
164
+ .limit(filter.limit);
153
165
  }
154
166
  return aggregate
155
167
  .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
@@ -94,7 +94,7 @@ function deleteReservationsByOrder(order) {
94
94
  orderNumber: { $eq: order.orderNumber },
95
95
  project: { id: { $eq: order.project.id } },
96
96
  acceptedOffers: {
97
- itemOffered: { typeOf: { $in: [factory_2.factory.reservationType.EventReservation] } }
97
+ // itemOffered: { typeOf: { $in: [factory.reservationType.EventReservation] } }
98
98
  }
99
99
  });
100
100
  const reservationIds = acceptedOffers.map((o) => String(o.itemOffered.id));
@@ -11,14 +11,18 @@ function searchByOrder(params) {
11
11
  page: params.page,
12
12
  project: { id: { $eq: params.project.id } },
13
13
  orderNumber: { $eq: params.orderNumber },
14
- acceptedOffers: { itemOffered: { typeOf: { $in: [reservationType] } } }
14
+ acceptedOffers: {
15
+ itemOffered: {
16
+ // typeOf: { $in: [reservationType] }
17
+ }
18
+ }
15
19
  }, ['itemOffered']);
16
20
  const reservationIds = acceptedOffers.map((offer) => {
17
21
  if (offer.itemOffered.typeOf === reservationType) {
18
22
  return offer.itemOffered.id;
19
23
  }
20
24
  else {
21
- // 検索条件にreservationTypeを含めているので、ありえないケース
25
+ // EventReservationしか存在しないので、ありえないケース
22
26
  throw new factory_1.factory.errors.Internal(`unexpected itemOffered.typeOf ${offer.itemOffered.typeOf}`);
23
27
  }
24
28
  });
@@ -71,7 +71,7 @@ function fixOrderAsPurpose(params, transaction) {
71
71
  project: { id: { $eq: transaction.project.id } },
72
72
  acceptedOffers: {
73
73
  itemOffered: {
74
- typeOf: { $in: [factory_1.factory.reservationType.EventReservation] },
74
+ // typeOf: { $in: [factory.reservationType.EventReservation] }, // EventReservationしか存在しないので不要(2026-05-12~)
75
75
  // movieTicketsに結合されたイベントID,座席コードで絞る
76
76
  reservationFor: { id: { $in: [reservationForId] } },
77
77
  reservedTicket: { ticketedSeat: { seatNumber: { $in: seatNumbers } } }
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.13"
94
+ "version": "24.1.0-alpha.14"
95
95
  }