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

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 (123) 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 +6 -5
  4. package/lib/chevre/repo/acceptedOffer.js +14 -9
  5. package/lib/chevre/repo/acceptedOfferInReserve.d.ts +6 -8
  6. package/lib/chevre/repo/acceptedOfferInReserve.js +13 -7
  7. package/lib/chevre/repo/adminAcceptedOffer.d.ts +8 -8
  8. package/lib/chevre/repo/adminAcceptedOffer.js +6 -4
  9. package/lib/chevre/repo/adminEvent.d.ts +0 -6
  10. package/lib/chevre/repo/adminEvent.js +3 -9
  11. package/lib/chevre/repo/adminEventSeries.d.ts +89 -0
  12. package/lib/chevre/repo/adminEventSeries.js +174 -0
  13. package/lib/chevre/repo/adminTask.d.ts +2 -2
  14. package/lib/chevre/repo/adminTransaction.d.ts +44 -48
  15. package/lib/chevre/repo/adminTransaction.js +0 -98
  16. package/lib/chevre/repo/aggregateEvent.js +0 -1
  17. package/lib/chevre/repo/aggregateTransaction.d.ts +0 -1
  18. package/lib/chevre/repo/aggregateTransaction.js +0 -1
  19. package/lib/chevre/repo/event.d.ts +2 -2
  20. package/lib/chevre/repo/event.js +71 -110
  21. package/lib/chevre/repo/eventSeries.d.ts +3 -82
  22. package/lib/chevre/repo/eventSeries.js +3 -201
  23. package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.d.ts +1 -1
  24. package/lib/chevre/repo/mongoose/schemas/civicStructure.d.ts +1 -0
  25. package/lib/chevre/repo/mongoose/schemas/order.d.ts +22 -1
  26. package/lib/chevre/repo/mongoose/schemas/place.js +0 -9
  27. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +3 -1
  28. package/lib/chevre/repo/mongoose/schemas/seller.js +0 -2
  29. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +2 -3
  30. package/lib/chevre/repo/mongoose/schemas/transaction.js +81 -70
  31. package/lib/chevre/repo/order.d.ts +2 -2
  32. package/lib/chevre/repo/order.js +0 -31
  33. package/lib/chevre/repo/orderInTransaction.d.ts +5 -25
  34. package/lib/chevre/repo/orderInTransaction.js +0 -6
  35. package/lib/chevre/repo/place/movieTheater.d.ts +3 -1
  36. package/lib/chevre/repo/place/movieTheater.js +3 -1
  37. package/lib/chevre/repo/place/{hasPOS.d.ts → pos.d.ts} +13 -20
  38. package/lib/chevre/repo/place/{hasPOS.js → pos.js} +66 -29
  39. package/lib/chevre/repo/place/screeningRoom.d.ts +24 -3
  40. package/lib/chevre/repo/place/screeningRoom.js +28 -17
  41. package/lib/chevre/repo/priceSpecification.d.ts +8 -8
  42. package/lib/chevre/repo/seller.d.ts +11 -4
  43. package/lib/chevre/repo/seller.js +31 -58
  44. package/lib/chevre/repo/sellerPaymentAccepted.d.ts +14 -21
  45. package/lib/chevre/repo/sellerPaymentAccepted.js +65 -38
  46. package/lib/chevre/repo/task.d.ts +3 -3
  47. package/lib/chevre/repo/transaction/placeOrder.d.ts +6 -12
  48. package/lib/chevre/repo/transaction/placeOrder.js +53 -146
  49. package/lib/chevre/repo/transaction/returnOrderInProgress.d.ts +1 -1
  50. package/lib/chevre/repo/transaction.d.ts +1 -1
  51. package/lib/chevre/repo/transaction.js +0 -1
  52. package/lib/chevre/repository.d.ts +10 -5
  53. package/lib/chevre/repository.js +19 -8
  54. package/lib/chevre/service/aggregation/event/aggregateOffers.js +1 -2
  55. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +0 -1
  56. package/lib/chevre/service/aggregation/system.js +1 -3
  57. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateAcceptedPaymentMethodIfNeeded.js +1 -2
  58. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +2 -2
  59. package/lib/chevre/service/delivery/reservation/factory.d.ts +1 -1
  60. package/lib/chevre/service/event/saveScreeningEventSeries.d.ts +2 -2
  61. package/lib/chevre/service/event/saveScreeningEventSeries.js +1 -1
  62. package/lib/chevre/service/event/saveScreeningEvents.d.ts +2 -0
  63. package/lib/chevre/service/event.d.ts +2 -0
  64. package/lib/chevre/service/event.js +0 -1
  65. package/lib/chevre/service/offer/any.d.ts +1 -1
  66. package/lib/chevre/service/offer/event/authorize/factory.d.ts +5 -5
  67. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +1 -1
  68. package/lib/chevre/service/offer/event/authorize.js +1 -4
  69. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +1 -1
  70. package/lib/chevre/service/offer/event/voidTransaction.js +2 -5
  71. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +1 -4
  72. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +2 -9
  73. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.d.ts +2 -2
  74. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +1 -4
  75. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +1 -4
  76. package/lib/chevre/service/offer/onEventChanged.js +2 -4
  77. package/lib/chevre/service/offer.js +1 -2
  78. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.js +1 -1
  79. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +4 -6
  80. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +23 -4
  81. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +1 -1
  82. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.d.ts +1 -1
  83. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.d.ts +1 -1
  84. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +1 -1
  85. package/lib/chevre/service/order/placeOrder/factory/orderedItem.d.ts +1 -1
  86. package/lib/chevre/service/order/placeOrder/factory.d.ts +1 -1
  87. package/lib/chevre/service/order/sendOrder.js +2 -14
  88. package/lib/chevre/service/payment/any/authorize.js +1 -1
  89. package/lib/chevre/service/payment/any/factory.d.ts +2 -2
  90. package/lib/chevre/service/payment/any/invalidatePaymentUrl.js +1 -4
  91. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +2 -2
  92. package/lib/chevre/service/payment/any/publishPaymentUrl.js +1 -1
  93. package/lib/chevre/service/payment/creditCard/getGMOInfoFromSeller.js +1 -1
  94. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.d.ts +3 -3
  95. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +1 -1
  96. package/lib/chevre/service/payment/movieTicket/payMovieTicket/payActionParams2seatInfoSyncIn.js +1 -1
  97. package/lib/chevre/service/payment/movieTicket/validation.js +1 -1
  98. package/lib/chevre/service/task/importEventsFromCOA.js +2 -0
  99. package/lib/chevre/service/task/onResourceDeleted.js +8 -8
  100. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.d.ts +7 -3
  101. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +51 -50
  102. package/lib/chevre/service/task/onResourceUpdated.js +5 -25
  103. package/lib/chevre/service/task/syncResourcesFromCOA.js +3 -1
  104. package/lib/chevre/service/transaction/deleteTransaction.js +1 -1
  105. package/lib/chevre/service/transaction/placeOrder/confirm/prepareUnitPriceOfferConditions.d.ts +1 -1
  106. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.d.ts +1 -1
  107. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.d.ts +1 -1
  108. package/lib/chevre/service/transaction/placeOrder/confirm/validation.d.ts +2 -2
  109. package/lib/chevre/service/transaction/placeOrder/confirm.js +1 -7
  110. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.d.ts +2 -2
  111. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +1 -4
  112. package/lib/chevre/service/transaction/placeOrder/start.js +1 -1
  113. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +1 -4
  114. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +1 -3
  115. package/lib/chevre/service/transaction/returnOrder/preStart/factory.d.ts +1 -1
  116. package/lib/chevre/service/transaction/returnOrder/preStart.d.ts +13 -1
  117. package/lib/chevre/service/transaction/returnOrder/preStart.js +1 -2
  118. package/lib/chevre/service/transaction/returnOrder.d.ts +14 -3
  119. package/lib/chevre/service/transaction/returnOrder.js +1 -6
  120. package/lib/chevre/service/transaction.d.ts +1 -1
  121. package/package.json +2 -2
  122. package/lib/chevre/service/delivery/factory.d.ts +0 -16
  123. 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) {
@@ -1,9 +1,9 @@
1
1
  import type { Connection } from 'mongoose';
2
- import { AcceptedOfferInReserveRepo, IAcceptedOffer } from './acceptedOfferInReserve';
2
+ import { factory } from '../factory';
3
+ import { AcceptedOfferInReserveRepo } from './acceptedOfferInReserve';
3
4
  type IDistinctField = 'acceptedOffers.id' | 'acceptedOffers.itemOffered.reservationNumber' | 'acceptedOffers.itemOffered.reservationFor.id' | 'acceptedOffers.serialNumber' | 'acceptedOffers.offeredThrough.identifier' | 'acceptedOffers.itemOffered.reservationFor.superEvent.location.branchCode';
4
5
  interface ISearchSlicedAcceptedOffersResult {
5
- acceptedOffers: Pick<IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'>[];
6
- numAcceptedOffers: number;
6
+ partialAcceptedOffers: Pick<factory.acceptedOffer.IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'>[];
7
7
  }
8
8
  /**
9
9
  * 注文オファーリポジトリ
@@ -41,11 +41,12 @@ export declare class AcceptedOfferRepo extends AcceptedOfferInReserveRepo {
41
41
  reservedTicket?: never;
42
42
  };
43
43
  };
44
- }): Promise<Pick<IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'>[]>;
44
+ }): Promise<Pick<factory.acceptedOffer.IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'>[]>;
45
45
  /**
46
46
  * 注文オファーをsliceして検索する(2024-01-10~)
47
+ * 注文通知に渡すオファーを参照するためにのみ使用
47
48
  */
48
- searchSlicedAcceptedOffersByOrderNumber(filter: {
49
+ findPartialAcceptedOffersByOrderNumber(filter: {
49
50
  $slice: [number, number];
50
51
  orderNumber: {
51
52
  $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) {
@@ -1,14 +1,8 @@
1
1
  import type { Connection } from 'mongoose';
2
2
  import { factory } from '../factory';
3
3
  import { IModel } from './mongoose/schemas/assetTransaction';
4
+ import type { IAcceptedOfferInDoc } from './mongoose/schemas/order';
4
5
  import { IAcceptedOfferByReserveTransaction } from './factory/acceptedOffer/reserveTransaction2itemOffered';
5
- export type IAcceptedOffer = Pick<factory.order.IAcceptedOffer, 'id' | 'itemOffered' | 'offeredThrough' | 'serialNumber' | 'typeOf'> & {
6
- /**
7
- * COA以外では注文ドキュメントにpriceSpecificationが存在しないのでIFを補完
8
- */
9
- priceSpecification?: factory.order.ITicketPriceSpecification;
10
- name?: never;
11
- };
12
6
  /**
13
7
  * 予約取引に依存した注文オファーリポジトリ
14
8
  */
@@ -27,5 +21,9 @@ export declare class AcceptedOfferInReserveRepo {
27
21
  /**
28
22
  * 予約取引からオファー詳細情報を付加する
29
23
  */
30
- protected addAcceptedOffersDetails(acceptedOffers: IAcceptedOffer[]): Promise<IAcceptedOffer[]>;
24
+ protected addAcceptedOffersDetails(
25
+ /**
26
+ * 注文ドキュメント内の生オファーを受け取る
27
+ */
28
+ acceptedOffers: IAcceptedOfferInDoc[]): Promise<factory.acceptedOffer.IAcceptedOffer[]>;
31
29
  }
@@ -41,7 +41,11 @@ class AcceptedOfferInReserveRepo {
41
41
  /**
42
42
  * 予約取引からオファー詳細情報を付加する
43
43
  */
44
- async addAcceptedOffersDetails(acceptedOffers) {
44
+ async addAcceptedOffersDetails(
45
+ /**
46
+ * 注文ドキュメント内の生オファーを受け取る
47
+ */
48
+ acceptedOffers) {
45
49
  const offeredThroughIdentifier = acceptedOffers.at(0)?.offeredThrough?.identifier;
46
50
  if (offeredThroughIdentifier === factory_1.factory.service.webAPI.Identifier.COA) {
47
51
  // COAでは予約取引を参照しない
@@ -67,18 +71,20 @@ class AcceptedOfferInReserveRepo {
67
71
  // itemOfferedByReserveは必ず存在するはず
68
72
  if (itemOfferedByReserve === undefined) {
69
73
  console.error('repo:acceptedOffer: addAcceptedOffersDetails: itemOfferedByReserve: undefined!!!', acceptedOffer.itemOffered.id);
74
+ throw new factory_1.factory.errors.Internal(`itemOfferedByReserve not found. itemOffered.id:${acceptedOffer.itemOffered.id}`);
70
75
  }
71
- const nameByReserveTransaction = acceptedOfferByReserveTransaction?.name;
76
+ // const nameByReserveTransaction = acceptedOfferByReserveTransaction?.name;
72
77
  const { priceSpecification: _originalPriceSpec, // 注文ドキュメントのpriceSpecificationはもう採用しない(2026-05-21~)
73
78
  name: _originalName, // 注文ドキュメントのnameはもう採用しない(2026-06-09~)
74
- itemOffered, ...acceptedOfferWithoutPrice } = acceptedOffer;
79
+ itemOffered: _itemOffered, ...acceptedOfferWithoutPrice } = acceptedOffer;
75
80
  return {
76
81
  ...acceptedOfferWithoutPrice,
77
- ...((nameByReserveTransaction !== undefined) && { name: nameByReserveTransaction }), // 予約取引参照の値で上書き(2026-06-09~)
82
+ // ...((nameByReserveTransaction !== undefined) && { name: nameByReserveTransaction }), // 予約取引参照の値で上書き(2026-06-09~)
78
83
  ...((priceSpecByReserveTransaction !== undefined) && { priceSpecification: priceSpecByReserveTransaction }), // 予約取引参照の値で上書き
79
- ...(itemOfferedByReserve !== undefined)
80
- ? { itemOffered: itemOfferedByReserve } // 予約取引参照の値で上書き
81
- : { itemOffered }
84
+ itemOffered: itemOfferedByReserve // 予約取引参照の値で上書き
85
+ // ...(itemOfferedByReserve !== undefined)
86
+ // ? { itemOffered: itemOfferedByReserve } // 予約取引参照の値で上書き
87
+ // : { itemOffered }
82
88
  };
83
89
  });
84
90
  }
@@ -1,22 +1,22 @@
1
1
  import type { Connection } from 'mongoose';
2
2
  import { factory } from '../factory';
3
- import { AcceptedOfferInReserveRepo, IAcceptedOffer } from './acceptedOfferInReserve';
3
+ import { AcceptedOfferInReserveRepo } from './acceptedOfferInReserve';
4
4
  type IProjection4searchWithUnwoundAcceptedOffers = {
5
5
  [key in keyof factory.order.IOrder]?: 1;
6
6
  } & {};
7
- type IMinimizedReservationFor = Pick<IAcceptedOffer['itemOffered']['reservationFor'], 'id' | 'typeOf'>;
8
- type IMinimizedItemOffered = Pick<IAcceptedOffer['itemOffered'], 'additionalProperty' | 'additionalTicketText' | 'id' | 'issuedThrough' | 'programMembershipUsed' | 'reservationNumber' | 'reservedTicket' | 'typeOf'> & {
7
+ type IMinimizedReservationFor = Pick<factory.acceptedOffer.IAcceptedOffer['itemOffered']['reservationFor'], 'id' | 'typeOf'>;
8
+ type IMinimizedItemOffered = Pick<factory.acceptedOffer.IAcceptedOffer['itemOffered'], 'additionalProperty' | 'additionalTicketText' | 'id' | 'issuedThrough' | 'programMembershipUsed' | 'reservationNumber' | 'reservedTicket' | 'typeOf'> & {
9
9
  reservationFor: IMinimizedReservationFor;
10
10
  };
11
- type IMinimizedAcceptedOffer = Pick<IAcceptedOffer, 'id' | 'name' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'> & {
11
+ type IMinimizedAcceptedOffer = Pick<factory.acceptedOffer.IAcceptedOffer, 'id' | 'name' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'> & {
12
12
  itemOffered: IMinimizedItemOffered;
13
13
  };
14
- type IAcceptedOfferInOrder = Pick<IAcceptedOffer, 'id' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'> & {
14
+ type IAcceptedOfferAsFindResult = Pick<factory.acceptedOffer.IAcceptedOffer, 'id' | 'offeredThrough' | 'priceSpecification' | 'serialNumber' | 'typeOf'> & {
15
15
  /**
16
16
  * reservationFor最小化に対応
17
17
  * 2026-09-01~
18
18
  */
19
- itemOffered: IAcceptedOffer['itemOffered'] | IMinimizedItemOffered;
19
+ itemOffered: factory.acceptedOffer.IAcceptedOffer['itemOffered'] | IMinimizedItemOffered;
20
20
  };
21
21
  /**
22
22
  * 注文オファー管理リポジトリ
@@ -39,7 +39,7 @@ export declare class AdminAcceptedOfferRepo extends AcceptedOfferInReserveRepo {
39
39
  */
40
40
  minimizeReservationFor: boolean;
41
41
  }): Promise<(factory.order.IOrder & {
42
- acceptedOffers: [IAcceptedOffer | IMinimizedAcceptedOffer];
42
+ acceptedOffers: [factory.acceptedOffer.IAcceptedOffer | IMinimizedAcceptedOffer];
43
43
  _id?: never;
44
44
  })[]>;
45
45
  /**
@@ -59,6 +59,6 @@ export declare class AdminAcceptedOfferRepo extends AcceptedOfferInReserveRepo {
59
59
  * 2026-08-31~
60
60
  */
61
61
  minimizeReservationFor: boolean;
62
- }): Promise<IAcceptedOfferInOrder[]>;
62
+ }): Promise<IAcceptedOfferAsFindResult[]>;
63
63
  }
64
64
  export {};
@@ -94,11 +94,12 @@ class AdminAcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInRes
94
94
  // itemOfferedByReserveは必ず存在するはず
95
95
  if (itemOfferedByReserve === undefined) {
96
96
  console.error('repo:acceptedOffer: searchWithUnwoundAcceptedOffers: itemOfferedByReserve: undefined!!!', acceptedOffer.itemOffered.id);
97
+ throw new factory_1.factory.errors.Internal(`itemOfferedByReserve not found. itemOffered.id:${acceptedOffer.itemOffered.id}`);
97
98
  }
98
99
  const nameByReserveTransaction = acceptedOfferByReserveTransaction?.name;
99
100
  const { priceSpecification: _originalPriceSpec, // 注文ドキュメントのpriceSpecificationはもう採用しない(2026-05-21~)
100
101
  name: _originalName, // 注文ドキュメントのnameはもう採用しない(2026-06-09~)
101
- itemOffered, ...acceptedOfferWithoutPrice } = acceptedOffer;
102
+ itemOffered: _itemOffered, ...acceptedOfferWithoutPrice } = acceptedOffer;
102
103
  return {
103
104
  ...order,
104
105
  acceptedOffers: [
@@ -106,9 +107,10 @@ class AdminAcceptedOfferRepo extends acceptedOfferInReserve_1.AcceptedOfferInRes
106
107
  ...acceptedOfferWithoutPrice,
107
108
  ...((nameByReserveTransaction !== undefined) && { name: nameByReserveTransaction }), // 予約取引参照の値で上書き(2026-06-09~)
108
109
  ...((priceSpecByReserveTransaction !== undefined) && { priceSpecification: priceSpecByReserveTransaction }), // 予約取引参照の値で上書き
109
- ...(itemOfferedByReserve !== undefined)
110
- ? { itemOffered: minimizeItemOffered(itemOfferedByReserve, options) } // 予約取引参照の値で上書き(2026-05-25~)
111
- : { itemOffered: minimizeItemOffered(itemOffered, options) }
110
+ itemOffered: minimizeItemOffered(itemOfferedByReserve, options) // 予約取引参照の値で上書き(2026-05-25~)
111
+ // ...(itemOfferedByReserve !== undefined)
112
+ // ? { itemOffered: minimizeItemOffered(itemOfferedByReserve, options) } // 予約取引参照の値で上書き(2026-05-25~)
113
+ // : { itemOffered: minimizeItemOffered(itemOffered, options) }
112
114
  }
113
115
  ]
114
116
  };
@@ -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;