@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.
- package/lib/chevre/repo/accountingReport.js +2 -30
- package/lib/chevre/repo/assetTransaction/reserve.d.ts +1 -1
- package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.d.ts +6 -0
- package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.js +71 -0
- package/lib/chevre/repo/mongoose/schemas/reservation.js +9 -24
- package/lib/chevre/service/assetTransaction/reserve/start/factory/price.d.ts +1 -1
- package/lib/chevre/service/reserve/findByCode.d.ts +1 -1
- package/lib/chevre/service/reserve/findReservations.d.ts +1 -1
- package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.d.ts +2 -2
- package/package.json +2 -2
|
@@ -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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
49
|
-
priceCurrency: String,
|
|
50
|
-
issuedThrough:
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
94
|
+
"version": "24.1.0-alpha.19"
|
|
95
95
|
}
|