@chevre/domain 24.1.0-alpha.17 → 24.1.0-alpha.19

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.
@@ -48,30 +48,6 @@ class AccountingReportRepo {
48
48
  $match: { 'mainEntity.orderDate': { $lte: orderDateLte } }
49
49
  });
50
50
  }
51
- // discontinue(2026-05-01~)
52
- // const reservationForStartDateGte = params.order?.acceptedOffers?.itemOffered?.reservationFor?.startDate?.$gte;
53
- // if (reservationForStartDateGte instanceof Date) {
54
- // matchStages.push({
55
- // $match: {
56
- // 'mainEntity.acceptedOffers.itemOffered.reservationFor.startDate': {
57
- // $exists: true,
58
- // $gte: reservationForStartDateGte
59
- // }
60
- // }
61
- // });
62
- // }
63
- // discontinue(2026-05-01~)
64
- // const reservationForStartDateLte = params.order?.acceptedOffers?.itemOffered?.reservationFor?.startDate?.$lte;
65
- // if (reservationForStartDateLte instanceof Date) {
66
- // matchStages.push({
67
- // $match: {
68
- // 'mainEntity.acceptedOffers.itemOffered.reservationFor.startDate': {
69
- // $exists: true,
70
- // $lte: reservationForStartDateLte
71
- // }
72
- // }
73
- // });
74
- // }
75
51
  return matchStages;
76
52
  }
77
53
  async syncMainEntity(params) {
@@ -138,15 +114,14 @@ class AccountingReportRepo {
138
114
  }
139
115
  async findAccountingReports(params) {
140
116
  const { limit, page } = params;
141
- const unwindAcceptedOffers = params.$unwindAcceptedOffers === '1';
142
117
  const matchStages = AccountingReportRepo.CREATE_MONGO_CONDITIONS(params);
143
118
  const aggregate = this.accountingReportModel.aggregate([
119
+ ...matchStages,
144
120
  // pipelineの順序に注意
145
121
  // @see https://docs.mongodb.com/manual/reference/operator/aggregation/sort/
146
122
  { $sort: { 'mainEntity.orderDate': factory_1.factory.sortType.Descending } },
147
123
  { $unwind: '$hasPart' },
148
- ...(unwindAcceptedOffers) ? [{ $unwind: '$mainEntity.acceptedOffers' }] : [],
149
- ...matchStages,
124
+ // hasPart内に対する検索条件は存在しないため、unwind後のmatchは不要
150
125
  {
151
126
  $project: {
152
127
  _id: 0,
@@ -158,11 +133,8 @@ class AccountingReportRepo {
158
133
  }
159
134
  ]);
160
135
  return aggregate
161
- // .limit(limit * page)
162
- // .skip(limit * (page - 1))
163
136
  .skip(limit * (page - 1))
164
137
  .limit(limit)
165
- // .setOptions({ maxTimeMS: 10000 })
166
138
  .exec();
167
139
  }
168
140
  async unsetUnnecessaryFields(params) {
@@ -2,7 +2,7 @@ import type { Connection } from 'mongoose';
2
2
  import { factory } from '../../factory';
3
3
  type ISubReservationAsFindResult = Pick<factory.reservation.eventReservation.IReservation, 'underName' | 'id'> & {
4
4
  numSeats?: number;
5
- price?: factory.reservation.eventReservation.IPrice;
5
+ price?: factory.assetTransaction.reserve.IPrice;
6
6
  reservedTicket?: Pick<factory.reservation.eventReservation.IReservedTicket, 'ticketType'>;
7
7
  reservationFor?: factory.assetTransaction.reserve.IReservationFor;
8
8
  issuedThrough?: factory.assetTransaction.reserve.IIssuedThrough;
@@ -0,0 +1,6 @@
1
+ import { factory } from '../../../factory';
2
+ /**
3
+ * 予約取引を注文のitemOfferedへ変換する
4
+ */
5
+ declare function reserveTransaction2itemOffered(params: Pick<factory.assetTransaction.reserve.ITransaction, 'object'>): factory.order.IEventReservation[];
6
+ export { reserveTransaction2itemOffered };
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reserveTransaction2itemOffered = reserveTransaction2itemOffered;
4
+ function createReservationFor(reservationFor) {
5
+ const { superEvent, ...reservationForWithoutSuperEvent } = reservationFor;
6
+ const { workPerformed, ...superEventWithoutMovie } = superEvent;
7
+ const workPerformedInOrder = {
8
+ typeOf: workPerformed.typeOf,
9
+ id: workPerformed.id,
10
+ identifier: workPerformed.identifier,
11
+ name: workPerformed.name,
12
+ duration: workPerformed.duration
13
+ };
14
+ const superEventInOrder = {
15
+ ...superEventWithoutMovie,
16
+ workPerformed: workPerformedInOrder
17
+ };
18
+ return {
19
+ ...reservationForWithoutSuperEvent,
20
+ superEvent: superEventInOrder
21
+ };
22
+ }
23
+ function createReservedTicket(reservedTicket) {
24
+ const { issuedBy: _issuedBy, dateIssued: _dateIssued, dateUsed: _dateUsed, ticketToken: _ticketToken, ticketType, ticketNumber: _ticketNumber, ...reservedTicket4order } = reservedTicket;
25
+ const ticketTypeInOrder = {
26
+ typeOf: ticketType.typeOf,
27
+ id: ticketType.id,
28
+ identifier: ticketType.identifier,
29
+ name: ticketType.name,
30
+ ...((ticketType.description !== undefined) && { description: ticketType.description }),
31
+ ...((ticketType.additionalProperty !== undefined) && { additionalProperty: ticketType.additionalProperty }),
32
+ };
33
+ return {
34
+ ...reservedTicket4order,
35
+ ticketType: ticketTypeInOrder
36
+ };
37
+ }
38
+ /**
39
+ * 予約取引を注文のitemOfferedへ変換する
40
+ */
41
+ function reserveTransaction2itemOffered(params) {
42
+ const { object } = params;
43
+ // subReservationは配列のはず
44
+ if (!Array.isArray(object.subReservation)) {
45
+ return [];
46
+ }
47
+ // reservationForは存在するはず
48
+ if (object.reservationFor === undefined) {
49
+ return [];
50
+ }
51
+ const { reservationNumber, issuedThrough } = object;
52
+ // イベントを注文用に生成
53
+ const reservationFor = createReservationFor(object.reservationFor);
54
+ return object.subReservation.map((subReservationReserveTransaction) => {
55
+ const { additionalProperty, additionalTicketText, id, programMembershipUsed, typeOf, } = subReservationReserveTransaction;
56
+ // チケットを注文用に生成
57
+ const reservedTicket = createReservedTicket(subReservationReserveTransaction.reservedTicket);
58
+ const reservationByReserveTransaction = {
59
+ additionalProperty,
60
+ id,
61
+ typeOf,
62
+ reservedTicket,
63
+ reservationNumber,
64
+ issuedThrough,
65
+ reservationFor,
66
+ ...((typeof additionalTicketText === 'string') && { additionalTicketText }),
67
+ ...((typeof programMembershipUsed?.identifier === 'string') && { programMembershipUsed })
68
+ };
69
+ return reservationByReserveTransaction;
70
+ });
71
+ }
@@ -8,19 +8,10 @@ const settings_1 = require("../../../settings");
8
8
  const modelName = 'Reservation';
9
9
  exports.modelName = modelName;
10
10
  const schemaDefinition = {
11
- project: {
12
- type: mongoose_1.SchemaTypes.Mixed,
13
- required: true
14
- },
15
- provider: {
16
- type: mongoose_1.SchemaTypes.Mixed,
17
- required: true
18
- },
11
+ project: { type: mongoose_1.SchemaTypes.Mixed, required: true },
12
+ provider: { type: mongoose_1.SchemaTypes.Mixed, required: true },
19
13
  _id: String,
20
- typeOf: {
21
- type: String,
22
- required: true
23
- },
14
+ typeOf: { type: String, required: true },
24
15
  additionalTicketText: String,
25
16
  bookingTime: Date,
26
17
  broker: mongoose_1.SchemaTypes.Mixed,
@@ -28,14 +19,8 @@ const schemaDefinition = {
28
19
  previousReservationStatus: String,
29
20
  programMembershipUsed: mongoose_1.SchemaTypes.Mixed,
30
21
  reservationFor: mongoose_1.SchemaTypes.Mixed,
31
- reservationNumber: {
32
- type: String,
33
- required: true
34
- },
35
- reservationStatus: {
36
- type: String,
37
- required: true
38
- },
22
+ reservationNumber: { type: String, required: true },
23
+ reservationStatus: { type: String, required: true },
39
24
  reservedTicket: mongoose_1.SchemaTypes.Mixed,
40
25
  subReservation: mongoose_1.SchemaTypes.Mixed,
41
26
  underName: mongoose_1.SchemaTypes.Mixed,
@@ -44,10 +29,10 @@ const schemaDefinition = {
44
29
  additionalProperty: mongoose_1.SchemaTypes.Mixed,
45
30
  // 以下廃止予定
46
31
  // bookingAgent: SchemaTypes.Mixed,
47
- numSeats: Number,
48
- price: mongoose_1.SchemaTypes.Mixed,
49
- priceCurrency: String,
50
- issuedThrough: mongoose_1.SchemaTypes.Mixed
32
+ // numSeats: Number, // discontinue(2026-05-13~)
33
+ // price: SchemaTypes.Mixed, // discontinue(2026-05-13~)
34
+ // priceCurrency: String, // discontinue(2026-05-13~)
35
+ // issuedThrough: SchemaTypes.Mixed // discontinue(2026-05-13~)
51
36
  };
52
37
  const schemaOptions = {
53
38
  autoIndex: settings_1.MONGO_AUTO_INDEX,
@@ -14,4 +14,4 @@ export declare function createPrice(params: {
14
14
  seatPriceComponent: factory.place.seat.IPriceComponent[];
15
15
  acceptedAddOns: IAcceptedAddOn[];
16
16
  appliesToMovieTicket?: factory.assetTransaction.reserve.IAcceptedAppliesToMovieTicket;
17
- }): factory.reservation.eventReservation.IPrice;
17
+ }): factory.assetTransaction.reserve.IPrice;
@@ -5,7 +5,7 @@ import type { OrderRepo } from '../../repo/order';
5
5
  import type { ReservationRepo } from '../../repo/reservation';
6
6
  type IReservationResult = Pick<factory.reservation.eventReservation.IReservation, 'id' | 'additionalTicketText' | 'checkedIn' | 'reservationStatus'> & {
7
7
  reservedTicket: {
8
- ticketType: Pick<factory.reservation.eventReservation.ITicketType, 'identifier'> & {
8
+ ticketType: Pick<factory.assetTransaction.reserve.ITicketType, 'identifier'> & {
9
9
  name: {
10
10
  ja?: string;
11
11
  };
@@ -6,7 +6,7 @@ import type { IDeprecatedField, IKeyOfProjection, ReservationRepo } from '../../
6
6
  * 予約ドキュメントに予約取引の情報を補完する
7
7
  */
8
8
  type IReservationAsFindResult = Omit<factory.reservation.eventReservation.IReservation, 'price' | 'priceCurrency' | 'underName' | 'reservedTicket' | 'reservationFor' | 'issuedThrough' | 'numSeats'> & {
9
- price?: factory.reservation.eventReservation.IPrice;
9
+ price?: factory.assetTransaction.reserve.IPrice;
10
10
  priceCurrency?: factory.priceCurrency.JPY;
11
11
  underName?: factory.assetTransaction.reserve.IUnderName;
12
12
  reservedTicket?: factory.assetTransaction.reserve.IObjectSubReservation['reservedTicket'];
@@ -6,10 +6,10 @@ import { AuthorizationRepo } from '../../../repo/authorization';
6
6
  import type { SettingRepo } from '../../../repo/setting';
7
7
  import type { TaskRepo } from '../../../repo/task';
8
8
  export type IConfirmedReservation = Omit<factory.reservation.eventReservation.IReservation, 'price' | 'underName' | 'reservedTicket' | 'reservationFor' | 'issuedThrough'> & {
9
- price?: factory.reservation.eventReservation.IPrice;
9
+ price?: factory.assetTransaction.reserve.IPrice;
10
10
  underName?: Pick<factory.reservation.IUnderName, 'id' | 'typeOf'>;
11
11
  reservedTicket: Omit<factory.assetTransaction.reserve.ISubReservationReservedTicket, 'ticketType'> & {
12
- ticketType: factory.reservation.eventReservation.ITicketType;
12
+ ticketType: factory.assetTransaction.reserve.ITicketType;
13
13
  };
14
14
  reservationFor: factory.assetTransaction.reserve.IReservationFor;
15
15
  issuedThrough: factory.assetTransaction.reserve.IIssuedThrough;
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.1.0-alpha.7",
14
+ "@chevre/factory": "8.1.0",
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.17"
94
+ "version": "24.1.0-alpha.19"
95
95
  }