@chevre/domain 28.0.0-alpha.2 → 28.0.0-alpha.20

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.
Files changed (120) hide show
  1. package/lib/chevre/eventEmitter/transaction.d.ts +2 -2
  2. package/lib/chevre/eventEmitter/transaction.js +1 -1
  3. package/lib/chevre/repo/acceptedOffer.d.ts +3 -3
  4. package/lib/chevre/repo/acceptedOffer.js +14 -9
  5. package/lib/chevre/repo/acceptedOfferInReserve.d.ts +2 -2
  6. package/lib/chevre/repo/adminEvent.d.ts +0 -6
  7. package/lib/chevre/repo/adminEvent.js +3 -9
  8. package/lib/chevre/repo/adminEventSeries.d.ts +89 -0
  9. package/lib/chevre/repo/adminEventSeries.js +174 -0
  10. package/lib/chevre/repo/adminTask.d.ts +2 -2
  11. package/lib/chevre/repo/adminTransaction.d.ts +44 -48
  12. package/lib/chevre/repo/adminTransaction.js +0 -98
  13. package/lib/chevre/repo/aggregateEvent.js +0 -1
  14. package/lib/chevre/repo/aggregateTransaction.d.ts +0 -1
  15. package/lib/chevre/repo/aggregateTransaction.js +0 -1
  16. package/lib/chevre/repo/event.d.ts +2 -2
  17. package/lib/chevre/repo/event.js +71 -110
  18. package/lib/chevre/repo/eventSeries.d.ts +3 -82
  19. package/lib/chevre/repo/eventSeries.js +3 -201
  20. package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.d.ts +1 -1
  21. package/lib/chevre/repo/mongoose/schemas/civicStructure.d.ts +1 -0
  22. package/lib/chevre/repo/mongoose/schemas/order.d.ts +21 -1
  23. package/lib/chevre/repo/mongoose/schemas/place.js +0 -9
  24. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +3 -1
  25. package/lib/chevre/repo/mongoose/schemas/seller.js +0 -2
  26. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +2 -3
  27. package/lib/chevre/repo/mongoose/schemas/transaction.js +81 -70
  28. package/lib/chevre/repo/order.d.ts +2 -2
  29. package/lib/chevre/repo/order.js +0 -31
  30. package/lib/chevre/repo/orderInTransaction.d.ts +5 -25
  31. package/lib/chevre/repo/orderInTransaction.js +0 -6
  32. package/lib/chevre/repo/place/movieTheater.d.ts +3 -1
  33. package/lib/chevre/repo/place/movieTheater.js +3 -1
  34. package/lib/chevre/repo/place/{hasPOS.d.ts → pos.d.ts} +13 -20
  35. package/lib/chevre/repo/place/{hasPOS.js → pos.js} +66 -29
  36. package/lib/chevre/repo/place/screeningRoom.d.ts +24 -3
  37. package/lib/chevre/repo/place/screeningRoom.js +28 -17
  38. package/lib/chevre/repo/priceSpecification.d.ts +8 -8
  39. package/lib/chevre/repo/seller.d.ts +11 -4
  40. package/lib/chevre/repo/seller.js +31 -58
  41. package/lib/chevre/repo/sellerPaymentAccepted.d.ts +14 -21
  42. package/lib/chevre/repo/sellerPaymentAccepted.js +65 -38
  43. package/lib/chevre/repo/task.d.ts +3 -3
  44. package/lib/chevre/repo/transaction/placeOrder.d.ts +6 -12
  45. package/lib/chevre/repo/transaction/placeOrder.js +53 -146
  46. package/lib/chevre/repo/transaction/returnOrderInProgress.d.ts +1 -1
  47. package/lib/chevre/repo/transaction.d.ts +1 -1
  48. package/lib/chevre/repo/transaction.js +0 -1
  49. package/lib/chevre/repository.d.ts +10 -5
  50. package/lib/chevre/repository.js +19 -8
  51. package/lib/chevre/service/aggregation/event/aggregateOffers.js +1 -2
  52. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +0 -1
  53. package/lib/chevre/service/aggregation/system.js +1 -3
  54. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateAcceptedPaymentMethodIfNeeded.js +1 -2
  55. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +2 -2
  56. package/lib/chevre/service/delivery/reservation/factory.d.ts +1 -1
  57. package/lib/chevre/service/event/saveScreeningEventSeries.d.ts +2 -2
  58. package/lib/chevre/service/event/saveScreeningEventSeries.js +1 -1
  59. package/lib/chevre/service/event/saveScreeningEvents.d.ts +2 -0
  60. package/lib/chevre/service/event.d.ts +2 -0
  61. package/lib/chevre/service/event.js +0 -1
  62. package/lib/chevre/service/offer/any.d.ts +1 -1
  63. package/lib/chevre/service/offer/event/authorize/factory.d.ts +5 -5
  64. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +1 -1
  65. package/lib/chevre/service/offer/event/authorize.js +1 -4
  66. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +1 -1
  67. package/lib/chevre/service/offer/event/voidTransaction.js +2 -5
  68. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +1 -4
  69. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +2 -9
  70. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.d.ts +2 -2
  71. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +1 -4
  72. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +1 -4
  73. package/lib/chevre/service/offer/onEventChanged.js +2 -4
  74. package/lib/chevre/service/offer.js +1 -2
  75. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.js +1 -1
  76. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -6
  77. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +24 -4
  78. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +1 -1
  79. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.d.ts +1 -1
  80. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.d.ts +1 -1
  81. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +1 -1
  82. package/lib/chevre/service/order/placeOrder/factory/orderedItem.d.ts +1 -1
  83. package/lib/chevre/service/order/placeOrder/factory.d.ts +1 -1
  84. package/lib/chevre/service/order/sendOrder.js +2 -14
  85. package/lib/chevre/service/payment/any/authorize.js +1 -1
  86. package/lib/chevre/service/payment/any/factory.d.ts +2 -2
  87. package/lib/chevre/service/payment/any/invalidatePaymentUrl.js +1 -4
  88. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +2 -2
  89. package/lib/chevre/service/payment/any/publishPaymentUrl.js +1 -1
  90. package/lib/chevre/service/payment/creditCard/getGMOInfoFromSeller.js +1 -1
  91. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.d.ts +3 -3
  92. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +1 -1
  93. package/lib/chevre/service/payment/movieTicket/payMovieTicket/payActionParams2seatInfoSyncIn.js +1 -1
  94. package/lib/chevre/service/payment/movieTicket/validation.js +1 -1
  95. package/lib/chevre/service/task/importEventsFromCOA.js +2 -0
  96. package/lib/chevre/service/task/onResourceDeleted.js +8 -8
  97. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.d.ts +7 -3
  98. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +51 -50
  99. package/lib/chevre/service/task/onResourceUpdated.js +5 -25
  100. package/lib/chevre/service/task/syncResourcesFromCOA.js +3 -1
  101. package/lib/chevre/service/transaction/deleteTransaction.js +1 -1
  102. package/lib/chevre/service/transaction/placeOrder/confirm/prepareUnitPriceOfferConditions.d.ts +1 -1
  103. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.d.ts +1 -1
  104. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.d.ts +1 -1
  105. package/lib/chevre/service/transaction/placeOrder/confirm/validation.d.ts +2 -2
  106. package/lib/chevre/service/transaction/placeOrder/confirm.js +1 -7
  107. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.d.ts +2 -2
  108. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +1 -4
  109. package/lib/chevre/service/transaction/placeOrder/start.js +1 -1
  110. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +1 -4
  111. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +1 -3
  112. package/lib/chevre/service/transaction/returnOrder/preStart/factory.d.ts +1 -1
  113. package/lib/chevre/service/transaction/returnOrder/preStart.d.ts +13 -1
  114. package/lib/chevre/service/transaction/returnOrder/preStart.js +1 -2
  115. package/lib/chevre/service/transaction/returnOrder.d.ts +14 -3
  116. package/lib/chevre/service/transaction/returnOrder.js +1 -6
  117. package/lib/chevre/service/transaction.d.ts +1 -1
  118. package/package.json +2 -2
  119. package/lib/chevre/service/delivery/factory.d.ts +0 -16
  120. package/lib/chevre/service/delivery/factory.js +0 -124
@@ -5,12 +5,12 @@ interface IListenArgsOnTransactionStatusChanged {
5
5
  * 取引ID
6
6
  */
7
7
  id: string;
8
- typeOf: factory.transactionType;
8
+ typeOf: factory.transactionType.PlaceOrder;
9
9
  status: factory.transactionStatusType;
10
10
  }
11
11
  type IOnTransactionStatusChangedListener = (listenArgs: IListenArgsOnTransactionStatusChanged) => void;
12
12
  /**
13
- * 取引イベントエミッター
13
+ * 注文取引イベントエミッター
14
14
  */
15
15
  declare class TransactionEventEmitter extends EventEmitter {
16
16
  onTransactionStatusChanged(listner: IOnTransactionStatusChangedListener): void;
@@ -7,7 +7,7 @@ var EventName;
7
7
  EventName["OnTransactionStatusChanged"] = "OnTransactionStatusChanged";
8
8
  })(EventName || (EventName = {}));
9
9
  /**
10
- * 取引イベントエミッター
10
+ * 注文取引イベントエミッター
11
11
  */
12
12
  class TransactionEventEmitter extends events_1.EventEmitter {
13
13
  onTransactionStatusChanged(listner) {
@@ -2,8 +2,7 @@ import type { Connection } from 'mongoose';
2
2
  import { AcceptedOfferInReserveRepo, IAcceptedOffer } from './acceptedOfferInReserve';
3
3
  type IDistinctField = 'acceptedOffers.id' | 'acceptedOffers.itemOffered.reservationNumber' | 'acceptedOffers.itemOffered.reservationFor.id' | 'acceptedOffers.serialNumber' | 'acceptedOffers.offeredThrough.identifier' | 'acceptedOffers.itemOffered.reservationFor.superEvent.location.branchCode';
4
4
  interface ISearchSlicedAcceptedOffersResult {
5
- acceptedOffers: Pick<IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'>[];
6
- numAcceptedOffers: number;
5
+ partialAcceptedOffers: Pick<IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'>[];
7
6
  }
8
7
  /**
9
8
  * 注文オファーリポジトリ
@@ -44,8 +43,9 @@ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
44
43
  }): Promise<Pick<IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'>[]>;
45
44
  /**
46
45
  * 注文オファーをsliceして検索する(2024-01-10~)
46
+ * 注文通知に渡すオファーを参照するためにのみ使用
47
47
  */
48
- searchSlicedAcceptedOffersByOrderNumber(filter: {
48
+ findPartialAcceptedOffersByOrderNumber(filter: {
49
49
  $slice: [number, number];
50
50
  orderNumber: {
51
51
  $eq: string;
@@ -69,17 +69,22 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
69
69
  }
70
70
  /**
71
71
  * 注文オファーをsliceして検索する(2024-01-10~)
72
+ * 注文通知に渡すオファーを参照するためにのみ使用
72
73
  */
73
- async searchSlicedAcceptedOffersByOrderNumber(filter) {
74
+ async findPartialAcceptedOffersByOrderNumber(filter) {
74
75
  const aggregate = this.orderModel.aggregate([
75
- { $match: { orderNumber: { $eq: filter.orderNumber.$eq } } },
76
- { $match: { 'project.id': { $eq: filter.project.id.$eq } } },
77
- { $match: { typeOf: { $eq: factory_1.factory.order.OrderType.Order } } },
76
+ {
77
+ $match: {
78
+ orderNumber: { $eq: filter.orderNumber.$eq },
79
+ 'project.id': { $eq: filter.project.id.$eq },
80
+ typeOf: { $eq: factory_1.factory.order.OrderType.Order }
81
+ }
82
+ },
78
83
  {
79
84
  $project: {
80
85
  _id: 0,
81
- acceptedOffers: { $slice: ['$acceptedOffers', ...filter.$slice] },
82
- numAcceptedOffers: { $size: '$acceptedOffers' }
86
+ partialAcceptedOffers: { $slice: ['$acceptedOffers', ...filter.$slice] },
87
+ // numAcceptedOffers: { $size: '$acceptedOffers' }
83
88
  }
84
89
  }
85
90
  ]);
@@ -89,11 +94,11 @@ class AcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInReserveR
89
94
  if (result === undefined) {
90
95
  throw new factory_1.factory.errors.NotFound(factory_1.factory.order.OrderType.Order);
91
96
  }
92
- const { acceptedOffers, numAcceptedOffers } = result;
97
+ const { partialAcceptedOffers } = result;
93
98
  // 予約取引を参照(2026-05-18~)
94
99
  return {
95
- acceptedOffers: await this.addAcceptedOffersDetails(acceptedOffers),
96
- numAcceptedOffers
100
+ partialAcceptedOffers: await this.addAcceptedOffersDetails(partialAcceptedOffers),
101
+ // numAcceptedOffers
97
102
  };
98
103
  }
99
104
  async countByOrderNumber(filter) {
@@ -2,11 +2,11 @@ import type { Connection } from 'mongoose';
2
2
  import { factory } from '../factory';
3
3
  import { IModel } from './mongoose/schemas/assetTransaction';
4
4
  import { IAcceptedOfferByReserveTransaction } from './factory/acceptedOffer/reserveTransaction2itemOffered';
5
- export type IAcceptedOffer = Pick<factory.order.IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'serialNumber' | 'typeOf'> & {
5
+ export type IAcceptedOffer = Pick<factory.acceptedOffer.IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'serialNumber' | 'typeOf'> & {
6
6
  /**
7
7
  * COA以外では注文ドキュメントにpriceSpecificationが存在しないのでIFを補完
8
8
  */
9
- priceSpecification?: factory.order.ITicketPriceSpecification;
9
+ priceSpecification?: factory.acceptedOffer.ITicketPriceSpecification;
10
10
  name?: never;
11
11
  };
12
12
  /**
@@ -170,9 +170,6 @@ export declare class AdminEventRepo {
170
170
  };
171
171
  }): Promise<mongo.DeleteResult>;
172
172
  deleteManyEventsEndedByProject(params: {
173
- typeOf: {
174
- $in: factory.eventType.ScreeningEvent[];
175
- };
176
173
  project: {
177
174
  id: string;
178
175
  };
@@ -181,9 +178,6 @@ export declare class AdminEventRepo {
181
178
  };
182
179
  }): Promise<mongo.DeleteResult>;
183
180
  deleteManyEventsEnded(params: {
184
- typeOf: {
185
- $eq: factory.eventType.ScreeningEvent;
186
- };
187
181
  endDate: {
188
182
  $lte: Date;
189
183
  };
@@ -155,8 +155,7 @@ class AdminEventRepo {
155
155
  }
156
156
  const doc = await this.eventModel.findOneAndUpdate({
157
157
  _id: { $eq: params.id },
158
- 'project.id': { $eq: params.project.id },
159
- typeOf: { $eq: typeOf }
158
+ 'project.id': { $eq: params.project.id }
160
159
  }, {
161
160
  $set: updateFields
162
161
  }, { upsert: false, new: false, projection: { _id: 1 } })
@@ -187,8 +186,7 @@ class AdminEventRepo {
187
186
  }
188
187
  try {
189
188
  doc = await this.eventModel.findOneAndUpdate({
190
- _id: { $eq: params.id },
191
- typeOf: { $eq: typeOf }
189
+ _id: { $eq: params.id }
192
190
  }, {
193
191
  // 編集のためのみのメソッドになったので、setOnInsertは廃止(2025-10-27~)
194
192
  // 上書き禁止属性を除外(2022-08-24~)
@@ -231,8 +229,7 @@ class AdminEventRepo {
231
229
  bulkWriteOps.push({
232
230
  updateOne: {
233
231
  filter: {
234
- _id: p.id,
235
- typeOf: p.attributes.typeOf
232
+ _id: p.id
236
233
  },
237
234
  update: {
238
235
  $setOnInsert: {
@@ -279,7 +276,6 @@ class AdminEventRepo {
279
276
  async syncScreeningEventSeries2screeningEvents(params) {
280
277
  const superEvent = EventFactory.minimizeSuperEvent({ superEventFromDB: params.superEventFromDB });
281
278
  await this.eventModel.updateMany({
282
- typeOf: { $eq: factory_1.factory.eventType.ScreeningEvent },
283
279
  'project.id': { $eq: params.project.id },
284
280
  'superEvent.id': { $exists: true, $eq: params.superEventFromDB.id },
285
281
  startDate: { $gte: params.startDate.$gte }
@@ -338,7 +334,6 @@ class AdminEventRepo {
338
334
  }
339
335
  async deleteManyEventsEndedByProject(params) {
340
336
  return this.eventModel.deleteMany({
341
- typeOf: { $in: params.typeOf.$in },
342
337
  'project.id': { $eq: params.project.id },
343
338
  endDate: { $lte: params.endDate.$lte }
344
339
  })
@@ -346,7 +341,6 @@ class AdminEventRepo {
346
341
  }
347
342
  async deleteManyEventsEnded(params) {
348
343
  return this.eventModel.deleteMany({
349
- typeOf: { $eq: params.typeOf.$eq },
350
344
  endDate: { $lte: params.endDate.$lte }
351
345
  })
352
346
  .exec();
@@ -0,0 +1,89 @@
1
+ import type { Connection, FilterQuery, mongo } from 'mongoose';
2
+ import { factory } from '../factory';
3
+ type IUnset = {
4
+ [key in keyof factory.eventSeries.IEvent]?: 1;
5
+ };
6
+ /**
7
+ * 施設コンテンツ管理リポジトリ
8
+ */
9
+ export declare class AdminEventSeriesRepo {
10
+ private readonly eventSeriesModel;
11
+ constructor(connection: Connection);
12
+ /**
13
+ * 施設+コンテンツ+バージョンをキーにして冪等置換
14
+ */
15
+ upsertByVersion(params: {
16
+ $set: factory.eventSeries.IAttributes;
17
+ $unset?: IUnset;
18
+ }[], options: {
19
+ /**
20
+ * falseの場合setOnInsertのみ
21
+ * trueの場合setOnInsert+setのみ
22
+ */
23
+ upsert: boolean;
24
+ }): Promise<{
25
+ bulkWriteResult?: mongo.BulkWriteResult;
26
+ modifiedEvents: {
27
+ id: string;
28
+ }[];
29
+ }>;
30
+ /**
31
+ * sskts施設コンテンツ保管
32
+ */
33
+ upsertManyEventSeriesById4sskts(params: {
34
+ id: string;
35
+ attributes: factory.eventSeries.IAttributes;
36
+ }[]): Promise<void>;
37
+ deleteEventSeriesById(params: {
38
+ project: {
39
+ id: string;
40
+ };
41
+ id: string;
42
+ }): Promise<void>;
43
+ /**
44
+ * 既存施設コンテンツの最大バージョンを集計する
45
+ */
46
+ aggregateMaxVersion(params: {
47
+ project: {
48
+ id: {
49
+ $eq: string;
50
+ };
51
+ };
52
+ workPerformed: {
53
+ identifier: {
54
+ $eq: string;
55
+ };
56
+ };
57
+ location: {
58
+ branchCode: {
59
+ $in: string[];
60
+ };
61
+ };
62
+ }): Promise<{
63
+ maxVersion: string;
64
+ }>;
65
+ getCursor(conditions: FilterQuery<any>, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, factory.eventSeries.IAttributes & {
66
+ _id: string;
67
+ }, import("./mongoose/virtuals").IVirtuals, {}> & factory.eventSeries.IAttributes & {
68
+ _id: string;
69
+ } & Required<{
70
+ _id: string;
71
+ }> & {
72
+ __v: number;
73
+ }, import("mongoose").QueryOptions<factory.eventSeries.IAttributes & {
74
+ _id: string;
75
+ }>, (import("mongoose").Document<unknown, Record<string, never>, factory.eventSeries.IAttributes & {
76
+ _id: string;
77
+ }, import("./mongoose/virtuals").IVirtuals, {}> & factory.eventSeries.IAttributes & {
78
+ _id: string;
79
+ } & Required<{
80
+ _id: string;
81
+ }> & {
82
+ __v: number;
83
+ }) | null>;
84
+ unsetUnnecessaryFields(params: {
85
+ filter: FilterQuery<factory.eventSeries.IEvent>;
86
+ $unset: IUnset;
87
+ }): Promise<import("mongoose").UpdateWriteOpResult>;
88
+ }
89
+ export {};
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdminEventSeriesRepo = void 0;
4
+ const factory_1 = require("../factory");
5
+ const eventSeries_1 = require("./mongoose/schemas/eventSeries");
6
+ /**
7
+ * 施設コンテンツ管理リポジトリ
8
+ */
9
+ class AdminEventSeriesRepo {
10
+ eventSeriesModel;
11
+ constructor(connection) {
12
+ this.eventSeriesModel = connection.model(eventSeries_1.modelName, (0, eventSeries_1.createSchema)());
13
+ }
14
+ /**
15
+ * 施設+コンテンツ+バージョンをキーにして冪等置換
16
+ */
17
+ async upsertByVersion(params, options) {
18
+ const { upsert } = options;
19
+ const { default: uniqid } = await import('uniqid');
20
+ const bulkWriteOps = [];
21
+ const queryFilters = [];
22
+ if (Array.isArray(params)) {
23
+ params.forEach(({ $set, $unset }) => {
24
+ const version = $set.workPerformed.version;
25
+ if (typeof version !== 'string' || version.length === 0) {
26
+ throw new factory_1.factory.errors.ArgumentNull('workPerformed.version');
27
+ }
28
+ // リソースのユニークネスを保証するfilter
29
+ const filter = {
30
+ 'project.id': { $eq: $set.project.id },
31
+ 'location.branchCode': { $exists: true, $eq: $set.location.branchCode },
32
+ 'workPerformed.identifier': { $exists: true, $eq: $set.workPerformed.identifier },
33
+ 'workPerformed.version': { $exists: true, $eq: version }
34
+ };
35
+ queryFilters.push({
36
+ 'project.id': { $eq: $set.project.id },
37
+ 'location.branchCode': { $exists: true, $eq: $set.location.branchCode },
38
+ 'workPerformed.identifier': { $exists: true, $eq: $set.workPerformed.identifier },
39
+ 'workPerformed.version': { $exists: true, $eq: version }
40
+ });
41
+ const { identifier, project, typeOf, ...setFields } = $set; // eslint-disable-line @typescript-eslint/no-unused-vars
42
+ const setOnInsert = {
43
+ project,
44
+ typeOf,
45
+ _id: uniqid()
46
+ };
47
+ let updateOne;
48
+ if (upsert === true) {
49
+ updateOne = {
50
+ filter,
51
+ update: {
52
+ $setOnInsert: setOnInsert,
53
+ $set: setFields,
54
+ ...($unset !== undefined) ? { $unset } : undefined
55
+ },
56
+ upsert: true
57
+ };
58
+ }
59
+ else {
60
+ updateOne = {
61
+ filter,
62
+ update: {
63
+ $setOnInsert: {
64
+ ...setOnInsert,
65
+ ...setFields
66
+ }
67
+ },
68
+ upsert: true
69
+ };
70
+ }
71
+ bulkWriteOps.push({ updateOne });
72
+ });
73
+ }
74
+ if (bulkWriteOps.length > 0) {
75
+ const bulkWriteResult = await this.eventSeriesModel.bulkWrite(bulkWriteOps, { ordered: false });
76
+ // upsert:falseの場合、upsertedIdsのみmodifiedEventsとして返せばよい(2026-01-27~)
77
+ if (!upsert) {
78
+ // BulkWriteResult -> upsertedIds: { '0': '7iri6p4m54k0r3g' }
79
+ return {
80
+ bulkWriteResult,
81
+ modifiedEvents: Object.values(bulkWriteResult.upsertedIds)
82
+ .map((id) => ({ id: String(id) }))
83
+ };
84
+ }
85
+ else {
86
+ // modifiedの場合upsertedIdsに含まれないので、idを検索する
87
+ const modifiedEvents = await this.eventSeriesModel.find({ $or: queryFilters }, { _id: 1 })
88
+ .exec();
89
+ return { bulkWriteResult, modifiedEvents };
90
+ }
91
+ }
92
+ return { modifiedEvents: [] };
93
+ }
94
+ /**
95
+ * sskts施設コンテンツ保管
96
+ */
97
+ async upsertManyEventSeriesById4sskts(params) {
98
+ const bulkWriteOps = [];
99
+ if (Array.isArray(params)) {
100
+ params.forEach((p) => {
101
+ // 上書き禁止属性を除外(2022-08-24~)
102
+ const { identifier, project, typeOf, ...updateFields } = p.attributes; // eslint-disable-line @typescript-eslint/no-unused-vars
103
+ bulkWriteOps.push({
104
+ updateOne: {
105
+ filter: { _id: { $eq: p.id } },
106
+ update: {
107
+ $setOnInsert: {
108
+ typeOf: factory_1.factory.eventType.ScreeningEventSeries,
109
+ project: p.attributes.project,
110
+ ...(typeof p.attributes.identifier === 'string')
111
+ ? { identifier: p.attributes.identifier } : undefined
112
+ },
113
+ $set: updateFields
114
+ // $unsetに対応(2022-08-31~)
115
+ // ...(p.$unset !== undefined) ? { $unset: p.$unset } : undefined
116
+ },
117
+ upsert: true
118
+ }
119
+ });
120
+ });
121
+ }
122
+ if (bulkWriteOps.length > 0) {
123
+ await this.eventSeriesModel.bulkWrite(bulkWriteOps, { ordered: false });
124
+ }
125
+ }
126
+ async deleteEventSeriesById(params) {
127
+ await this.eventSeriesModel.findOneAndDelete({
128
+ _id: { $eq: params.id },
129
+ 'project.id': { $eq: params.project.id }
130
+ }, { projection: { _id: 1 } })
131
+ .exec();
132
+ }
133
+ /**
134
+ * 既存施設コンテンツの最大バージョンを集計する
135
+ */
136
+ async aggregateMaxVersion(params) {
137
+ const aggregations = await this.eventSeriesModel.aggregate([
138
+ {
139
+ $match: {
140
+ 'project.id': { $eq: params.project.id.$eq },
141
+ 'workPerformed.identifier': { $exists: true, $eq: params.workPerformed.identifier.$eq },
142
+ 'workPerformed.version': { $exists: true },
143
+ 'location.branchCode': { $exists: true, $in: params.location.branchCode.$in }
144
+ }
145
+ },
146
+ {
147
+ $project: {
148
+ // workPerformed: '$workPerformed',
149
+ version: { $toLong: '$workPerformed.version' } // support YYYYMMDDHHmmss
150
+ }
151
+ },
152
+ {
153
+ $group: {
154
+ _id: null,
155
+ maxVersion: { $max: '$version' }
156
+ }
157
+ }
158
+ ])
159
+ .exec();
160
+ const firstMaxVersion = aggregations.at(0)?.maxVersion;
161
+ const maxVersion = (typeof firstMaxVersion === 'number') ? String(firstMaxVersion) : '0';
162
+ return { maxVersion };
163
+ }
164
+ getCursor(conditions, projection) {
165
+ return this.eventSeriesModel.find(conditions, projection)
166
+ .sort({ startDate: factory_1.factory.sortType.Descending })
167
+ .cursor();
168
+ }
169
+ async unsetUnnecessaryFields(params) {
170
+ return this.eventSeriesModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
171
+ .exec();
172
+ }
173
+ }
174
+ exports.AdminEventSeriesRepo = AdminEventSeriesRepo;
@@ -33,13 +33,13 @@ export declare class AdminTaskRepo {
33
33
  }): Promise<{
34
34
  count: number;
35
35
  }>;
36
- getCursor(conditions: FilterQuery<factory.task.ITask<factory.taskName>>, projection: ProjectionType<factory.task.ITask<factory.taskName>>): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Pick<import("@chevre/factory/lib/chevre/task").ITask | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/createAccountingReport").ITask | import("@chevre/factory/lib/chevre/task/onAssetTransactionStatusChanged").ITask | import("@chevre/factory/lib/chevre/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/chevre/task/onEventChanged").ITask | import("@chevre/factory/lib/chevre/task/onResourceDeleted").ITask | import("@chevre/factory/lib/chevre/task/onResourceUpdated").ITask | import("@chevre/factory/lib/chevre/task/onOrderPaymentCompleted").ITask | import("@chevre/factory/lib/chevre/task/placeOrder").ITask | import("@chevre/factory/lib/chevre/task/returnOrder").ITask | import("@chevre/factory/lib/chevre/task/returnPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/sendEmailMessage").ITask | import("@chevre/factory/lib/chevre/task/sendOrder").ITask | import("@chevre/factory/lib/chevre/task/triggerWebhook").ITask | import("@chevre/factory/lib/chevre/task/useReservation").ITask | import("@chevre/factory/lib/chevre/task/voidPayTransaction").ITask, "project" | "name" | "identifier" | "description" | "data" | "status" | "runsAt" | "dateAborted" | "executionResults" | "executor" | "lastTriedAt" | "remainingNumberOfTries" | "numberOfTried"> & {
36
+ getCursor(conditions: FilterQuery<factory.task.ITask<factory.taskName>>, projection: ProjectionType<factory.task.ITask<factory.taskName>>): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Pick<import("@chevre/factory/lib/chevre/task").ITask | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/createAccountingReport").ITask | import("@chevre/factory/lib/chevre/task/onAssetTransactionStatusChanged").ITask | import("@chevre/factory/lib/chevre/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/chevre/task/onEventChanged").ITask | import("@chevre/factory/lib/chevre/task/onResourceDeleted").ITask | import("@chevre/factory/lib/chevre/task/onResourceUpdated").ITask | import("@chevre/factory/lib/chevre/task/onOrderPaymentCompleted").ITask | import("@chevre/factory/lib/chevre/task/placeOrder").ITask | import("@chevre/factory/lib/chevre/task/returnOrder").ITask | import("@chevre/factory/lib/chevre/task/returnPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/sendEmailMessage").ITask | import("@chevre/factory/lib/chevre/task/sendOrder").ITask | import("@chevre/factory/lib/chevre/task/triggerWebhook").ITask | import("@chevre/factory/lib/chevre/task/useReservation").ITask | import("@chevre/factory/lib/chevre/task/voidPayTransaction").ITask, "identifier" | "name" | "description" | "project" | "data" | "status" | "runsAt" | "dateAborted" | "executionResults" | "executor" | "lastTriedAt" | "remainingNumberOfTries" | "numberOfTried"> & {
37
37
  expires?: never;
38
38
  } & {
39
39
  _id: import("mongoose").Types.ObjectId;
40
40
  } & {
41
41
  __v: number;
42
- }, import("mongoose").QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Pick<import("@chevre/factory/lib/chevre/task").ITask | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/createAccountingReport").ITask | import("@chevre/factory/lib/chevre/task/onAssetTransactionStatusChanged").ITask | import("@chevre/factory/lib/chevre/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/chevre/task/onEventChanged").ITask | import("@chevre/factory/lib/chevre/task/onResourceDeleted").ITask | import("@chevre/factory/lib/chevre/task/onResourceUpdated").ITask | import("@chevre/factory/lib/chevre/task/onOrderPaymentCompleted").ITask | import("@chevre/factory/lib/chevre/task/placeOrder").ITask | import("@chevre/factory/lib/chevre/task/returnOrder").ITask | import("@chevre/factory/lib/chevre/task/returnPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/sendEmailMessage").ITask | import("@chevre/factory/lib/chevre/task/sendOrder").ITask | import("@chevre/factory/lib/chevre/task/triggerWebhook").ITask | import("@chevre/factory/lib/chevre/task/useReservation").ITask | import("@chevre/factory/lib/chevre/task/voidPayTransaction").ITask, "project" | "name" | "identifier" | "description" | "data" | "status" | "runsAt" | "dateAborted" | "executionResults" | "executor" | "lastTriedAt" | "remainingNumberOfTries" | "numberOfTried"> & {
42
+ }, import("mongoose").QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Pick<import("@chevre/factory/lib/chevre/task").ITask | import("@chevre/factory/lib/chevre/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/createAccountingReport").ITask | import("@chevre/factory/lib/chevre/task/onAssetTransactionStatusChanged").ITask | import("@chevre/factory/lib/chevre/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/chevre/task/onEventChanged").ITask | import("@chevre/factory/lib/chevre/task/onResourceDeleted").ITask | import("@chevre/factory/lib/chevre/task/onResourceUpdated").ITask | import("@chevre/factory/lib/chevre/task/onOrderPaymentCompleted").ITask | import("@chevre/factory/lib/chevre/task/placeOrder").ITask | import("@chevre/factory/lib/chevre/task/returnOrder").ITask | import("@chevre/factory/lib/chevre/task/returnPayTransaction").ITask | import("@chevre/factory/lib/chevre/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/chevre/task/sendEmailMessage").ITask | import("@chevre/factory/lib/chevre/task/sendOrder").ITask | import("@chevre/factory/lib/chevre/task/triggerWebhook").ITask | import("@chevre/factory/lib/chevre/task/useReservation").ITask | import("@chevre/factory/lib/chevre/task/voidPayTransaction").ITask, "identifier" | "name" | "description" | "project" | "data" | "status" | "runsAt" | "dateAborted" | "executionResults" | "executor" | "lastTriedAt" | "remainingNumberOfTries" | "numberOfTried"> & {
43
43
  expires?: never;
44
44
  } & {
45
45
  _id: import("mongoose").Types.ObjectId;
@@ -1,6 +1,5 @@
1
1
  import type { Connection } from 'mongoose';
2
2
  import { factory } from '../factory';
3
- import { IDocType } from './mongoose/schemas/transaction';
4
3
  /**
5
4
  * 取引管理リポジトリ
6
5
  */
@@ -43,7 +42,7 @@ export declare class AdminTransactionRepo {
43
42
  expires: {
44
43
  $lt: Date;
45
44
  };
46
- }): Promise<Pick<factory.transaction.ITransaction<factory.transactionType>, 'id' | 'typeOf'> | undefined>;
45
+ }): Promise<Pick<factory.transaction.placeOrder.ITransaction, 'id' | 'typeOf'> | undefined>;
47
46
  findByIdAndDelete(params: {
48
47
  id: string;
49
48
  }): Promise<void>;
@@ -51,81 +50,78 @@ export declare class AdminTransactionRepo {
51
50
  filter: any;
52
51
  $unset: any;
53
52
  }): Promise<import("mongoose").UpdateWriteOpResult>;
54
- getCursor(conditions: any, projection: any, sort?: factory.sortType): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & (({
53
+ getCursor(conditions: any, projection: any, sort?: factory.sortType): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, {
55
54
  object: import("@chevre/factory/lib/chevre/transaction/placeOrder").IObject;
56
- error?: any;
55
+ endDate?: Date | undefined;
56
+ startDate: Date;
57
+ typeOf: factory.transactionType.PlaceOrder;
57
58
  project: import("@chevre/factory/lib/chevre/transaction").IProject;
58
59
  seller: import("@chevre/factory/lib/chevre/transaction/placeOrder").ISeller;
59
- typeOf: factory.transactionType.PlaceOrder;
60
60
  expires: Date;
61
61
  result?: import("@chevre/factory/lib/chevre/transaction/placeOrder").IResult | undefined;
62
- startDate: Date;
63
- endDate?: Date | undefined;
64
62
  instrument?: import("@chevre/factory/lib/chevre/transaction/placeOrder").IInstrument | undefined;
65
63
  agent: import("@chevre/factory/lib/chevre/transaction/placeOrder").IAgent;
66
64
  status: factory.transactionStatusType;
67
- tasksExportAction?: import("@chevre/factory/lib/chevre/transaction").ITasksExportAction | undefined;
68
- potentialActions?: undefined;
69
- } & {
70
- _id: import("mongoose").Types.ObjectId;
71
- } & {
72
- __v: number;
73
- }) | ({
74
- object: import("@chevre/factory/lib/chevre/transaction/returnOrder").IObject;
75
- error?: any;
65
+ tasksExportAction?: import("@chevre/factory/lib/chevre/transaction/placeOrder").ITasksExportAction | undefined;
66
+ }, import("./mongoose/virtuals").IVirtuals, {}> & {
67
+ object: import("@chevre/factory/lib/chevre/transaction/placeOrder").IObject;
68
+ endDate?: Date | undefined;
69
+ startDate: Date;
70
+ typeOf: factory.transactionType.PlaceOrder;
76
71
  project: import("@chevre/factory/lib/chevre/transaction").IProject;
77
- seller: import("@chevre/factory/lib/chevre/transaction").ISeller;
78
- typeOf: factory.transactionType.ReturnOrder;
72
+ seller: import("@chevre/factory/lib/chevre/transaction/placeOrder").ISeller;
79
73
  expires: Date;
80
- result?: undefined;
81
- startDate: Date;
82
- endDate?: Date | undefined;
83
- agent: import("@chevre/factory/lib/chevre/transaction").IAgent;
84
- recipient?: undefined;
74
+ result?: import("@chevre/factory/lib/chevre/transaction/placeOrder").IResult | undefined;
75
+ instrument?: import("@chevre/factory/lib/chevre/transaction/placeOrder").IInstrument | undefined;
76
+ agent: import("@chevre/factory/lib/chevre/transaction/placeOrder").IAgent;
85
77
  status: factory.transactionStatusType;
86
- tasksExportAction?: import("@chevre/factory/lib/chevre/transaction").ITasksExportAction | undefined;
87
- potentialActions?: import("@chevre/factory/lib/chevre/transaction/returnOrder").IPotentialActions | undefined;
78
+ tasksExportAction?: import("@chevre/factory/lib/chevre/transaction/placeOrder").ITasksExportAction | undefined;
88
79
  } & {
89
80
  _id: import("mongoose").Types.ObjectId;
90
81
  } & {
91
82
  __v: number;
92
- })), import("mongoose").QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & (({
83
+ }, import("mongoose").QueryOptions<{
93
84
  object: import("@chevre/factory/lib/chevre/transaction/placeOrder").IObject;
94
- error?: any;
85
+ endDate?: Date | undefined;
86
+ startDate: Date;
87
+ typeOf: factory.transactionType.PlaceOrder;
95
88
  project: import("@chevre/factory/lib/chevre/transaction").IProject;
96
89
  seller: import("@chevre/factory/lib/chevre/transaction/placeOrder").ISeller;
97
- typeOf: factory.transactionType.PlaceOrder;
98
90
  expires: Date;
99
91
  result?: import("@chevre/factory/lib/chevre/transaction/placeOrder").IResult | undefined;
100
- startDate: Date;
101
- endDate?: Date | undefined;
102
92
  instrument?: import("@chevre/factory/lib/chevre/transaction/placeOrder").IInstrument | undefined;
103
93
  agent: import("@chevre/factory/lib/chevre/transaction/placeOrder").IAgent;
104
94
  status: factory.transactionStatusType;
105
- tasksExportAction?: import("@chevre/factory/lib/chevre/transaction").ITasksExportAction | undefined;
106
- potentialActions?: undefined;
107
- } & {
108
- _id: import("mongoose").Types.ObjectId;
109
- } & {
110
- __v: number;
111
- }) | ({
112
- object: import("@chevre/factory/lib/chevre/transaction/returnOrder").IObject;
113
- error?: any;
95
+ tasksExportAction?: import("@chevre/factory/lib/chevre/transaction/placeOrder").ITasksExportAction | undefined;
96
+ }>, (import("mongoose").Document<unknown, Record<string, never>, {
97
+ object: import("@chevre/factory/lib/chevre/transaction/placeOrder").IObject;
98
+ endDate?: Date | undefined;
99
+ startDate: Date;
100
+ typeOf: factory.transactionType.PlaceOrder;
114
101
  project: import("@chevre/factory/lib/chevre/transaction").IProject;
115
- seller: import("@chevre/factory/lib/chevre/transaction").ISeller;
116
- typeOf: factory.transactionType.ReturnOrder;
102
+ seller: import("@chevre/factory/lib/chevre/transaction/placeOrder").ISeller;
117
103
  expires: Date;
118
- result?: undefined;
119
- startDate: Date;
104
+ result?: import("@chevre/factory/lib/chevre/transaction/placeOrder").IResult | undefined;
105
+ instrument?: import("@chevre/factory/lib/chevre/transaction/placeOrder").IInstrument | undefined;
106
+ agent: import("@chevre/factory/lib/chevre/transaction/placeOrder").IAgent;
107
+ status: factory.transactionStatusType;
108
+ tasksExportAction?: import("@chevre/factory/lib/chevre/transaction/placeOrder").ITasksExportAction | undefined;
109
+ }, import("./mongoose/virtuals").IVirtuals, {}> & {
110
+ object: import("@chevre/factory/lib/chevre/transaction/placeOrder").IObject;
120
111
  endDate?: Date | undefined;
121
- agent: import("@chevre/factory/lib/chevre/transaction").IAgent;
122
- recipient?: undefined;
112
+ startDate: Date;
113
+ typeOf: factory.transactionType.PlaceOrder;
114
+ project: import("@chevre/factory/lib/chevre/transaction").IProject;
115
+ seller: import("@chevre/factory/lib/chevre/transaction/placeOrder").ISeller;
116
+ expires: Date;
117
+ result?: import("@chevre/factory/lib/chevre/transaction/placeOrder").IResult | undefined;
118
+ instrument?: import("@chevre/factory/lib/chevre/transaction/placeOrder").IInstrument | undefined;
119
+ agent: import("@chevre/factory/lib/chevre/transaction/placeOrder").IAgent;
123
120
  status: factory.transactionStatusType;
124
- tasksExportAction?: import("@chevre/factory/lib/chevre/transaction").ITasksExportAction | undefined;
125
- potentialActions?: import("@chevre/factory/lib/chevre/transaction/returnOrder").IPotentialActions | undefined;
121
+ tasksExportAction?: import("@chevre/factory/lib/chevre/transaction/placeOrder").ITasksExportAction | undefined;
126
122
  } & {
127
123
  _id: import("mongoose").Types.ObjectId;
128
124
  } & {
129
125
  __v: number;
130
- }))) | null>;
126
+ }) | null>;
131
127
  }