@chevre/domain 24.1.0-alpha.3 → 24.1.0-alpha.31

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 (173) hide show
  1. package/README.md +0 -2
  2. package/lib/chevre/repo/acceptedOffer.d.ts +14 -13
  3. package/lib/chevre/repo/acceptedOffer.js +135 -51
  4. package/lib/chevre/repo/acceptedOfferInReserve.d.ts +30 -0
  5. package/lib/chevre/repo/acceptedOfferInReserve.js +78 -0
  6. package/lib/chevre/repo/accountingReport.d.ts +9 -2
  7. package/lib/chevre/repo/accountingReport.js +6 -34
  8. package/lib/chevre/repo/action/actionProcess.d.ts +1 -1
  9. package/lib/chevre/repo/assetTransaction/reserve.d.ts +0 -1
  10. package/lib/chevre/repo/assetTransaction/reserve.js +4 -50
  11. package/lib/chevre/repo/event.js +12 -8
  12. package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.d.ts +7 -0
  13. package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.js +74 -0
  14. package/lib/chevre/repo/factory/reservation/createMongoConditions.js +155 -180
  15. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +42 -42
  16. package/lib/chevre/repo/mongoose/schemas/order.js +108 -108
  17. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +3 -1
  18. package/lib/chevre/repo/mongoose/schemas/reservation.js +128 -146
  19. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +43 -0
  20. package/lib/chevre/repo/mongoose/schemas/setting.js +2 -1
  21. package/lib/chevre/repo/order.d.ts +2 -83
  22. package/lib/chevre/repo/order.js +171 -364
  23. package/lib/chevre/repo/orderInTransaction.d.ts +39 -3
  24. package/lib/chevre/repo/orderInTransaction.js +43 -1
  25. package/lib/chevre/repo/reservation.d.ts +20 -7
  26. package/lib/chevre/repo/reservation.js +14 -10
  27. package/lib/chevre/repo/role.d.ts +1 -15
  28. package/lib/chevre/repo/role.js +7 -14
  29. package/lib/chevre/repo/setting/integration.d.ts +19 -0
  30. package/lib/chevre/repo/setting/integration.js +72 -0
  31. package/lib/chevre/repo/transaction.d.ts +6 -6
  32. package/lib/chevre/repository.d.ts +5 -0
  33. package/lib/chevre/repository.js +11 -0
  34. package/lib/chevre/service/aggregation/event/aggregateOffers.js +22 -26
  35. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +0 -1
  36. package/lib/chevre/service/assetTransaction/cancelReservation/factory.js +14 -11
  37. package/lib/chevre/service/assetTransaction/cancelReservation/start.d.ts +1 -1
  38. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +1 -1
  39. package/lib/chevre/service/assetTransaction/pay/check.d.ts +1 -1
  40. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +1 -1
  41. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.d.ts +1 -1
  42. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.d.ts +1 -1
  43. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +1 -1
  44. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +1 -1
  45. package/lib/chevre/service/assetTransaction/pay/start.d.ts +1 -1
  46. package/lib/chevre/service/assetTransaction/reserve/cancel.d.ts +1 -1
  47. package/lib/chevre/service/assetTransaction/reserve/confirm.d.ts +1 -1
  48. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +0 -12
  49. package/lib/chevre/service/assetTransaction/reserve/start/factory/price.d.ts +1 -1
  50. package/lib/chevre/service/assetTransaction/reserve/start.d.ts +1 -1
  51. package/lib/chevre/service/delivery/factory.d.ts +6 -1
  52. package/lib/chevre/service/delivery/factory.js +1 -1
  53. package/lib/chevre/service/delivery/reservation/factory.d.ts +1 -3
  54. package/lib/chevre/service/delivery/reservation/factory.js +0 -17
  55. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.d.ts +2 -2
  56. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +1 -1
  57. package/lib/chevre/service/offer/any.d.ts +6 -1
  58. package/lib/chevre/service/offer/event/authorize/factory.d.ts +6 -3
  59. package/lib/chevre/service/offer/event/authorize/factory.js +4 -7
  60. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +1 -1
  61. package/lib/chevre/service/offer/event/authorize.d.ts +7 -1
  62. package/lib/chevre/service/offer/event/authorize.js +11 -3
  63. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.d.ts +1 -1
  64. package/lib/chevre/service/offer/event/voidTransaction.d.ts +1 -1
  65. package/lib/chevre/service/offer/event/voidTransactionByActionId.d.ts +1 -1
  66. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.d.ts +1 -3
  67. package/lib/chevre/service/order/createAccountingReportIfNotExist.d.ts +1 -3
  68. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +67 -72
  69. package/lib/chevre/service/order/deleteOrder.js +21 -44
  70. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.d.ts +1 -1
  71. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.d.ts +1 -1
  72. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.d.ts +1 -1
  73. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.js +9 -11
  74. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.d.ts +1 -1
  75. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +1 -1
  76. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +0 -1
  77. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +6 -1
  78. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +0 -1
  79. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.d.ts +1 -1
  80. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +1 -1
  81. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.d.ts +1 -1
  82. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +2 -1
  83. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +0 -1
  84. package/lib/chevre/service/order/onOrderUpdated.js +0 -1
  85. package/lib/chevre/service/order/payOrder.d.ts +1 -1
  86. package/lib/chevre/service/order/placeOrder/factory/orderedItem.d.ts +1 -1
  87. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +0 -5
  88. package/lib/chevre/service/order/placeOrder/factory.d.ts +1 -1
  89. package/lib/chevre/service/order/placeOrder.d.ts +1 -1
  90. package/lib/chevre/service/order/returnOrder.js +0 -1
  91. package/lib/chevre/service/order/sendOrder.js +2 -5
  92. package/lib/chevre/service/payment/any/authorize.d.ts +1 -1
  93. package/lib/chevre/service/payment/any/person2username.js +0 -1
  94. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +1 -1
  95. package/lib/chevre/service/payment/creditCard/authorize.d.ts +1 -1
  96. package/lib/chevre/service/payment/creditCard/authorize.js +3 -3
  97. package/lib/chevre/service/payment/creditCard/payCreditCard.d.ts +1 -1
  98. package/lib/chevre/service/payment/creditCard/payCreditCard.js +1 -1
  99. package/lib/chevre/service/payment/creditCard/refundCreditCard.d.ts +1 -1
  100. package/lib/chevre/service/payment/creditCard/refundCreditCard.js +1 -1
  101. package/lib/chevre/service/payment/creditCard/searchGMOTrade.d.ts +1 -1
  102. package/lib/chevre/service/payment/creditCard/searchGMOTrade.js +1 -1
  103. package/lib/chevre/service/payment/creditCard/voidTransaction.d.ts +1 -1
  104. package/lib/chevre/service/payment/creditCard/voidTransaction.js +1 -1
  105. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.d.ts +8 -1
  106. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +1 -1
  107. package/lib/chevre/service/payment/movieTicket/authorize.d.ts +1 -1
  108. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.d.ts +1 -1
  109. package/lib/chevre/service/payment/movieTicket/payMovieTicket.d.ts +1 -1
  110. package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +1 -1
  111. package/lib/chevre/service/payment/movieTicket/processPurchaseNumberAuth.d.ts +1 -1
  112. package/lib/chevre/service/payment/movieTicket/processPurchaseNumberAuth.js +1 -1
  113. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.d.ts +1 -1
  114. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.js +2 -2
  115. package/lib/chevre/service/payment/movieTicket/voidTransaction.d.ts +1 -1
  116. package/lib/chevre/service/reserve/confirmReservation.js +7 -7
  117. package/lib/chevre/service/reserve/factory.js +2 -1
  118. package/lib/chevre/service/reserve/findByCode.d.ts +1 -1
  119. package/lib/chevre/service/reserve/findByCode.js +2 -1
  120. package/lib/chevre/service/reserve/findReservations.d.ts +4 -4
  121. package/lib/chevre/service/reserve/findReservations.js +16 -26
  122. package/lib/chevre/service/reserve/potentialActions/onPendingReservationCanceled.js +0 -1
  123. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +0 -1
  124. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.d.ts +4 -3
  125. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +1 -10
  126. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +0 -1
  127. package/lib/chevre/service/reserve/potentialActions/onReservationsCreated.js +0 -1
  128. package/lib/chevre/service/reserve/searchByOrder.js +8 -3
  129. package/lib/chevre/service/reserve/useReservation.d.ts +1 -1
  130. package/lib/chevre/service/reserve/useReservation.js +20 -24
  131. package/lib/chevre/service/task/acceptCOAOffer.js +2 -2
  132. package/lib/chevre/service/task/authorizePayment.js +1 -1
  133. package/lib/chevre/service/task/cancelPendingReservation.js +1 -1
  134. package/lib/chevre/service/task/checkMovieTicket.js +1 -1
  135. package/lib/chevre/service/task/confirmReserveTransaction.d.ts +1 -1
  136. package/lib/chevre/service/task/confirmReserveTransaction.js +3 -2
  137. package/lib/chevre/service/task/createAccountingReport.js +7 -9
  138. package/lib/chevre/service/task/importEventCapacitiesFromCOA.js +1 -1
  139. package/lib/chevre/service/task/importEventsFromCOA.js +1 -1
  140. package/lib/chevre/service/task/importOffersFromCOA.js +1 -1
  141. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +0 -1
  142. package/lib/chevre/service/task/pay.js +1 -1
  143. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.d.ts +1 -1
  144. package/lib/chevre/service/task/payment/payByTask.d.ts +1 -1
  145. package/lib/chevre/service/task/payment/payByTask.js +3 -2
  146. package/lib/chevre/service/task/payment/refundByTask.d.ts +1 -1
  147. package/lib/chevre/service/task/payment/voidPaymentByTask.d.ts +1 -1
  148. package/lib/chevre/service/task/refund.js +1 -1
  149. package/lib/chevre/service/task/returnReserveTransaction.js +1 -1
  150. package/lib/chevre/service/task/syncResourcesFromCOA.js +1 -1
  151. package/lib/chevre/service/task/useReservation.d.ts +2 -2
  152. package/lib/chevre/service/task/useReservation.js +6 -18
  153. package/lib/chevre/service/task/voidPayment.js +1 -1
  154. package/lib/chevre/service/task/voidReserveTransaction.js +1 -1
  155. package/lib/chevre/service/task.d.ts +1 -1
  156. package/lib/chevre/service/taskHandler.js +1 -0
  157. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +0 -1
  158. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +0 -1
  159. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.d.ts +1 -1
  160. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.d.ts +1 -1
  161. package/lib/chevre/service/transaction/placeOrder/confirm/validation.d.ts +2 -2
  162. package/lib/chevre/service/transaction/placeOrder/confirm.js +5 -3
  163. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +0 -1
  164. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +0 -1
  165. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +0 -1
  166. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +0 -1
  167. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +0 -1
  168. package/lib/chevre/service/transaction/returnOrder/preStart.js +2 -4
  169. package/lib/chevre/service/validation/validateOrder.js +5 -79
  170. package/lib/chevre/settings.d.ts +0 -55
  171. package/lib/chevre/settings.js +1 -29
  172. package/lib/chevre/taskSettings.d.ts +1 -1
  173. package/package.json +2 -2
@@ -328,27 +328,17 @@ function createReservation(params) {
328
328
  const price4reservation = (0, price_1.createPrice)(params);
329
329
  if (params.reservationFor.typeOf === factory_1.factory.eventType.ScreeningEvent) {
330
330
  return {
331
- // project: params.project, // 廃止(2024-04-08~)
332
331
  typeOf: factory_1.factory.reservationType.EventReservation,
333
332
  id: params.id,
334
333
  // reservationPackage保管に移行(2023-06-06~)
335
334
  // issuedThrough,
336
335
  additionalProperty: params.additionalProperty,
337
- // bookingTime: params.reserveDate, // 廃止(2024-04-08~)
338
- // modifiedTime: params.reserveDate, // 廃止(2024-04-08~)
339
336
  numSeats: 1,
340
337
  price: price4reservation,
341
338
  priceCurrency: factory_1.factory.priceCurrency.JPY,
342
- // reservationNumber: params.reservationNumber, // 廃止(2024-04-08~)
343
339
  // statusは不要なので削除(2023-07-19~)
344
340
  // reservationStatus: factory.reservationStatusType.ReservationPending,
345
341
  reservedTicket: params.reservedTicket,
346
- // underName: { // 廃止(2024-04-08~)
347
- // typeOf: params.agent.typeOf,
348
- // name: params.agent.name
349
- // },
350
- // checkedIn: false, // 廃止(2024-04-08~)
351
- // attended: false, // 廃止(2024-04-08~)
352
342
  ...(typeof params.additionalTicketText === 'string') ? { additionalTicketText: params.additionalTicketText } : undefined,
353
343
  ...(Array.isArray(params.subReservation))
354
344
  ? {
@@ -362,8 +352,6 @@ function createReservation(params) {
362
352
  })
363
353
  }
364
354
  : undefined,
365
- // reservationPackage保管に移行(2023-06-06~)
366
- // ...(typeof params.broker?.typeOf === 'string') ? { broker: params.broker } : undefined,
367
355
  ...(typeof params.programMembershipUsed?.identifier === 'string')
368
356
  ? { programMembershipUsed: params.programMembershipUsed }
369
357
  : undefined
@@ -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;
@@ -1,5 +1,5 @@
1
1
  import { factory } from '../../../factory';
2
- import { Settings } from '../../../settings';
2
+ import type { IntegrationSettingRepo as Settings } from '../../../repo/setting/integration';
3
3
  import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
4
4
  import type { AuthorizationRepo } from '../../../repo/authorization';
5
5
  import type { EventRepo } from '../../../repo/event';
@@ -5,7 +5,12 @@ export type IOwnershipInfo = factory.ownershipInfo.IOwnershipInfo<factory.owners
5
5
  */
6
6
  export declare function createOwnershipInfosFromOrder(params: {
7
7
  order: Pick<factory.order.IOrder, 'orderDate' | 'project' | 'customer' | 'orderNumber' | 'seller'> & {
8
- acceptedOffers: factory.order.IAcceptedOffer[];
8
+ acceptedOffers: (Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
9
+ /**
10
+ * COA以外では注文ドキュメントにpriceSpecificationが存在しないのでIFを補完
11
+ */
12
+ priceSpecification?: factory.order.ITicketPriceSpecification;
13
+ })[];
9
14
  };
10
15
  offerIndexBase: number;
11
16
  }): IOwnershipInfo[];
@@ -43,7 +43,7 @@ function createOwnershipInfosFromOrder(params) {
43
43
  ownershipInfo = (0, factory_2.createReservationOwnershipInfo)({
44
44
  project: params.order.project,
45
45
  ownedBy: ownedBy,
46
- acceptedOffer: { ...acceptedOffer, itemOffered },
46
+ acceptedOffer,
47
47
  ownedFrom: ownedFrom,
48
48
  identifier: identifier,
49
49
  acquiredFrom: acquiredFrom
@@ -6,9 +6,7 @@ export declare function createReservationOwnershipInfo(params: {
6
6
  id: string;
7
7
  };
8
8
  ownedBy: factory.ownershipInfo.IOwner[];
9
- acceptedOffer: factory.order.IAcceptedOffer & {
10
- itemOffered: factory.order.IReservation;
11
- };
9
+ acceptedOffer: Pick<factory.order.IAcceptedOffer, 'itemOffered'>;
12
10
  ownedFrom: Date;
13
11
  identifier: string;
14
12
  acquiredFrom: factory.ownershipInfo.IAcquiredFrom;
@@ -19,31 +19,14 @@ function createReservationOwnershipInfo(params) {
19
19
  else {
20
20
  throw new factory_1.factory.errors.NotImplemented(`itemOffered.typeOf '${itemOffered.typeOf}' not implemented`); // eslint-disable-line @typescript-eslint/no-explicit-any
21
21
  }
22
- // let bookingService = params.acceptedOffer.offeredThrough;
23
- // if (bookingService === undefined) {
24
- // // デフォルトブッキングサービスはChevre
25
- // bookingService = {
26
- // typeOf: 'WebAPI',
27
- // identifier: factory.service.webAPI.Identifier.Chevre
28
- // };
29
- // }
30
22
  let typeOfGood;
31
23
  if (itemOffered.typeOf === factory_1.factory.reservationType.EventReservation) {
32
24
  typeOfGood = {
33
25
  typeOf: itemOffered.typeOf,
34
26
  id: itemOffered.id,
35
27
  reservationNumber: itemOffered.reservationNumber,
36
- // bookingService: bookingService,
37
28
  ...(typeof itemOffered.issuedThrough?.typeOf === 'string') ? { issuedThrough: itemOffered.issuedThrough } : undefined
38
29
  };
39
- // } else if (itemOffered.typeOf === factory.reservationType.BusReservation) {
40
- // typeOfGood = {
41
- // typeOf: itemOffered.typeOf,
42
- // id: itemOffered.id,
43
- // reservationNumber: itemOffered.reservationNumber,
44
- // bookingService: bookingService,
45
- // ...(typeof itemOffered.issuedThrough?.typeOf === 'string') ? { issuedThrough: itemOffered.issuedThrough } : undefined
46
- // };
47
30
  }
48
31
  else {
49
32
  throw new factory_1.factory.errors.NotImplemented(`itemOffered.typeOf '${itemOffered.typeOf}' not implemented`); // eslint-disable-line @typescript-eslint/no-explicit-any
@@ -1,6 +1,6 @@
1
1
  import { SendGridCredentials } from '../../credentials/sendGrid';
2
2
  import type { TaskRepo } from '../../repo/task';
3
- import { Settings } from '../../settings';
3
+ import type { IntegrationSettingRepo as Settings } from '../../repo/setting/integration';
4
4
  /**
5
5
  * 中止されたタスクリストをEメールで通知する
6
6
  * add(2025-03-13~)
@@ -9,7 +9,7 @@ declare function notifyAbortedTasksByEmail(params: {
9
9
  dateAbortedGte: Date;
10
10
  }): (repos: {
11
11
  task: TaskRepo;
12
- }, settings: Pick<Settings, "abortedTasksWithoutReport">, credentials: {
12
+ }, settings: Settings, credentials: {
13
13
  sendGrid: SendGridCredentials;
14
14
  }) => Promise<void>;
15
15
  export { notifyAbortedTasksByEmail };
@@ -15,7 +15,7 @@ const debug = (0, debug_1.default)('chevre-domain:service:notification');
15
15
  */
16
16
  function notifyAbortedTasksByEmail(params) {
17
17
  return async (repos, settings, credentials) => {
18
- const { abortedTasksWithoutReport } = settings;
18
+ const abortedTasksWithoutReport = await settings.getByKey('abortedTasksWithoutReport');
19
19
  const abortedTasks = await repos.task.projectFields({
20
20
  status: { $eq: factory_1.factory.taskStatus.Aborted },
21
21
  dateAborted: { $gte: params.dateAbortedGte },
@@ -10,7 +10,12 @@ export declare function acceptOffer(params: {
10
10
  project: {
11
11
  id: string;
12
12
  };
13
- acceptedOffers: factory.order.IAcceptedOffer[];
13
+ acceptedOffers: (Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
14
+ /**
15
+ * COA以外では注文ドキュメントにpriceSpecificationが存在しないのでIFを補完
16
+ */
17
+ priceSpecification?: factory.order.ITicketPriceSpecification;
18
+ })[];
14
19
  }): IAcceptOfferOperation<void>;
15
20
  export declare function voidAcceptedOffer(params: {
16
21
  /**
@@ -23,7 +23,7 @@ declare function createAuthorizeSeatReservationActionAttributes(params: {
23
23
  transaction: Pick<factory.transaction.ITransaction<factory.transactionType.PlaceOrder>, 'agent' | 'id' | 'project' | 'seller' | 'typeOf'>;
24
24
  }): factory.action.authorize.offer.eventService.IAttributes;
25
25
  declare function acceptedOffers2amount(params: {
26
- acceptedOffers: IResultAcceptedOffer[];
26
+ acceptedOffers: Pick<IResultAcceptedOffer, 'priceSpecification' | 'id'>[];
27
27
  }): number;
28
28
  declare function acceptedOffers2authorizeResult(params: {
29
29
  acceptedOffers: factory.assetTransaction.reserve.IAcceptedTicketOfferWithoutDetail[];
@@ -32,8 +32,11 @@ declare function acceptedOffers2authorizeResult(params: {
32
32
  ticketOffers: factory.product.ITicketOffer[];
33
33
  }): factory.action.authorize.offer.eventService.IResult;
34
34
  type IObjectSubReservation = factory.assetTransaction.reserve.IObjectSubReservation;
35
- export type IResultAcceptedOffer = factory.order.IAcceptedOffer & {
36
- itemOffered: factory.order.IReservation;
35
+ export type IResultAcceptedOffer = Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
36
+ itemOffered: factory.order.IEventReservation;
37
+ offeredThrough: factory.offer.IOfferedThrough;
38
+ serialNumber: string;
39
+ priceSpecification?: factory.order.ITicketPriceSpecification;
37
40
  };
38
41
  declare function responseBody2acceptedOffers4result(params: {
39
42
  issuedThrough: factory.assetTransaction.reserve.IIssuedThrough;
@@ -302,7 +302,6 @@ function responseBody2acceptedOffers4result(params) {
302
302
  * 注文データの予約を生成する
303
303
  */
304
304
  function createReservation(params) {
305
- // const { itemOffered, event, reservationFor } = params;
306
305
  const { itemOffered } = params;
307
306
  const event = params.reservationFor;
308
307
  let reservationItem;
@@ -367,19 +366,17 @@ function createReservation(params) {
367
366
  if (params.issuedThrough.typeOf !== factory_1.factory.product.ProductType.EventService) {
368
367
  throw new factory_1.factory.errors.Argument('issuedThrough', `issuedThrough.typeOf must be ${factory_1.factory.product.ProductType.EventService}`);
369
368
  }
369
+ const { additionalProperty, additionalTicketText, programMembershipUsed } = itemOffered;
370
370
  reservationItem = {
371
371
  typeOf: itemOffered.typeOf,
372
- additionalProperty: itemOffered.additionalProperty,
373
- additionalTicketText: itemOffered.additionalTicketText,
374
372
  id: itemOffered.id,
375
373
  issuedThrough: params.issuedThrough,
376
374
  reservationNumber: params.reservationNumber,
377
375
  reservationFor,
378
376
  reservedTicket,
379
- // 使用メンバーシップがあれば追加
380
- ...(typeof itemOffered.programMembershipUsed?.typeOf === 'string')
381
- ? { programMembershipUsed: itemOffered.programMembershipUsed }
382
- : undefined
377
+ ...((Array.isArray(additionalProperty)) && { additionalProperty }),
378
+ ...((typeof additionalTicketText === 'string') && { additionalTicketText }),
379
+ ...((typeof programMembershipUsed?.typeOf === 'string') && { programMembershipUsed }) // 使用メンバーシップがあれば追加
383
380
  };
384
381
  }
385
382
  else {
@@ -1,5 +1,5 @@
1
1
  import { factory } from '../../../../factory';
2
- import { Settings } from '../../../../settings';
2
+ import type { IntegrationSettingRepo as Settings } from '../../../../repo/setting/integration';
3
3
  import type { AssetTransactionRepo } from '../../../../repo/assetTransaction';
4
4
  import type { AuthorizationRepo } from '../../../../repo/authorization';
5
5
  import type { EventRepo, IMinimizedIndividualEvent } from '../../../../repo/event';
@@ -1,5 +1,5 @@
1
1
  import { factory } from '../../../factory';
2
- import { Settings } from '../../../settings';
2
+ import type { IntegrationSettingRepo as Settings } from '../../../repo/setting/integration';
3
3
  import type { AuthorizeOfferActionRepo } from '../../../repo/action/authorizeOffer';
4
4
  import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
5
5
  import type { AuthorizationRepo } from '../../../repo/authorization';
@@ -67,6 +67,12 @@ interface IAuthorizeOptions {
67
67
  * 最大n日前から予約可能
68
68
  */
69
69
  maxReservationGracePeriodInDays: number;
70
+ /**
71
+ * 価格仕様なしのacceptedOfferを採用するかどうか
72
+ * 実験的に導入
73
+ * 2026-005-19~
74
+ */
75
+ useAcceptedOfferNoPriceSpec?: boolean;
70
76
  }
71
77
  /**
72
78
  * 興行オファー承認
@@ -58,13 +58,21 @@ function authorize(params, options) {
58
58
  acceptedOffers4result = processStartReserveResult.acceptedOffers4result;
59
59
  // add orderInTransaction(2024-01-15~)
60
60
  if (!noOfferSpecified) {
61
- // if (params.options.useCreateOrderOnOfferAccepted) {
61
+ const useAcceptedOfferNoPriceSpec = options.useAcceptedOfferNoPriceSpec === true;
62
62
  await (0, any_1.acceptOffer)({
63
63
  orderNumber,
64
64
  project: transaction.project,
65
- acceptedOffers: acceptedOffers4result
65
+ acceptedOffers: acceptedOffers4result.map((acceptOffer4result) => {
66
+ // support useAcceptedOfferNoPriceSpec(2026-05-19~)
67
+ if (useAcceptedOfferNoPriceSpec) {
68
+ const { priceSpecification: _priceSpecification, ...acceptOfferNoPriceSpec } = acceptOffer4result;
69
+ return acceptOfferNoPriceSpec;
70
+ }
71
+ else {
72
+ return acceptOffer4result;
73
+ }
74
+ })
66
75
  })(repos);
67
- // }
68
76
  }
69
77
  }
70
78
  catch (error) {
@@ -1,5 +1,5 @@
1
1
  import { factory } from '../../../../factory';
2
- import { Settings } from '../../../../settings';
2
+ import type { IntegrationSettingRepo as Settings } from '../../../../repo/setting/integration';
3
3
  import type { ActionRepo } from '../../../../repo/action';
4
4
  import type { AssetTransactionRepo } from '../../../../repo/assetTransaction';
5
5
  import type { OrderInTransactionRepo } from '../../../../repo/orderInTransaction';
@@ -1,6 +1,6 @@
1
1
  import type { COA } from '@motionpicture/coa-service';
2
2
  import { factory } from '../../../factory';
3
- import { Settings } from '../../../settings';
3
+ import type { IntegrationSettingRepo as Settings } from '../../../repo/setting/integration';
4
4
  import type { ActionRepo } from '../../../repo/action';
5
5
  import type { AcceptCOAOfferActionRepo } from '../../../repo/action/acceptCOAOffer';
6
6
  import type { AuthorizeOfferActionRepo } from '../../../repo/action/authorizeOffer';
@@ -1,6 +1,6 @@
1
1
  import type { COA } from '@motionpicture/coa-service';
2
2
  import { factory } from '../../../factory';
3
- import { Settings } from '../../../settings';
3
+ import type { IntegrationSettingRepo as Settings } from '../../../repo/setting/integration';
4
4
  import type { ActionRepo } from '../../../repo/action';
5
5
  import type { AuthorizeOfferActionRepo } from '../../../repo/action/authorizeOffer';
6
6
  import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
@@ -21,9 +21,7 @@ export declare function createAuthorizeSeatReservationActionAttributes(params: {
21
21
  export declare function offers2resultPrice(offers: IAcceptedOffer4COA[]): {
22
22
  price: number;
23
23
  };
24
- type IResultAcceptedOffer = Omit<factory.order.IAcceptedOffer, 'itemOffered'> & {
25
- itemOffered: factory.order.ICOAEventReservation;
26
- };
24
+ type IResultAcceptedOffer = factory.order.ICOAAcceptedOffer;
27
25
  /**
28
26
  * COA仮予約結果から注文アイテムを生成する
29
27
  */
@@ -1,7 +1,5 @@
1
1
  import { AccountingReportRepo } from '../../repo/accountingReport';
2
2
  import { factory } from '../../factory';
3
- export declare function createAccountingReportIfNotExist(params: Pick<factory.order.IOrder, 'id' | 'orderNumber' | 'project' | 'customer' | 'confirmationNumber' | 'paymentMethods' | 'orderedItem' | 'price' | 'priceCurrency' | 'seller' | 'broker' | 'typeOf' | 'orderDate'> & {
4
- acceptedOffers: factory.order.IAcceptedOffer[];
5
- }): (repos: {
3
+ export declare function createAccountingReportIfNotExist(params: Pick<factory.order.IOrder, 'id' | 'orderNumber' | 'project' | 'paymentMethods' | 'seller' | 'typeOf' | 'orderDate'> & {}): (repos: {
6
4
  accountingReport: AccountingReportRepo;
7
5
  }) => Promise<void>;
@@ -19,84 +19,79 @@ function createAccountingReportIfNotExist(params) {
19
19
  }
20
20
  // 最適化(2023-06-30~)
21
21
  function createOrder4report(params) {
22
- if (!Array.isArray(params.acceptedOffers)) {
23
- throw new factory_1.factory.errors.ArgumentNull('order.acceptedOffers');
24
- }
25
- const numItems = params.acceptedOffers.length;
26
- // 必要な属性についてDate型に変換(でないと検索クエリを効率的に使えない)
27
- const acceptedOffers = (Array.isArray(params.acceptedOffers))
28
- ? params.acceptedOffers.map((o) => {
29
- if (o.itemOffered.typeOf === factory_1.factory.reservationType.EventReservation) {
30
- let itemOffered = o.itemOffered;
31
- const reservationFor = itemOffered.reservationFor;
32
- itemOffered = {
33
- ...itemOffered,
34
- reservationFor: {
35
- ...reservationFor,
36
- ...(reservationFor.doorTime !== undefined)
37
- ? {
38
- doorTime: (0, moment_timezone_1.default)(reservationFor.doorTime)
39
- .toDate()
40
- }
41
- : undefined,
42
- ...(reservationFor.endDate !== undefined)
43
- ? {
44
- endDate: (0, moment_timezone_1.default)(reservationFor.endDate)
45
- .toDate()
46
- }
47
- : undefined,
48
- ...(reservationFor.startDate !== undefined)
49
- ? {
50
- startDate: (0, moment_timezone_1.default)(reservationFor.startDate)
51
- .toDate()
52
- }
53
- : undefined
54
- }
55
- };
56
- return {
57
- ...o,
58
- itemOffered
59
- };
60
- }
61
- else {
62
- return o;
63
- }
64
- })
65
- : [];
66
- const customer = {
67
- // ...createMaskedCustomer(params),
68
- id: params.customer.id,
69
- typeOf: params.customer.typeOf,
70
- additionalProperty: (Array.isArray(params.customer.additionalProperty))
71
- ? params.customer.additionalProperty
72
- : [],
73
- identifier: (Array.isArray(params.customer.identifier))
74
- ? params.customer.identifier
75
- : []
76
- };
22
+ // if (!Array.isArray(params.acceptedOffers)) {
23
+ // throw new factory.errors.ArgumentNull('order.acceptedOffers');
24
+ // }
25
+ // const numItems: number = params.acceptedOffers.length;
26
+ // // 必要な属性についてDate型に変換(でないと検索クエリを効率的に使えない)
27
+ // const acceptedOffers = (Array.isArray(params.acceptedOffers))
28
+ // ? params.acceptedOffers.map((o) => {
29
+ // if (o.itemOffered.typeOf === factory.reservationType.EventReservation) {
30
+ // let itemOffered = o.itemOffered;
31
+ // const reservationFor = itemOffered.reservationFor;
32
+ // itemOffered = {
33
+ // ...itemOffered,
34
+ // reservationFor: {
35
+ // ...reservationFor,
36
+ // ...(reservationFor.doorTime !== undefined)
37
+ // ? {
38
+ // doorTime: moment(reservationFor.doorTime)
39
+ // .toDate()
40
+ // }
41
+ // : undefined,
42
+ // ...(reservationFor.endDate !== undefined)
43
+ // ? {
44
+ // endDate: moment(reservationFor.endDate)
45
+ // .toDate()
46
+ // }
47
+ // : undefined,
48
+ // ...(reservationFor.startDate !== undefined)
49
+ // ? {
50
+ // startDate: moment(reservationFor.startDate)
51
+ // .toDate()
52
+ // }
53
+ // : undefined
54
+ // }
55
+ // } as factory.order.IReservation;
56
+ // return {
57
+ // ...o,
58
+ // itemOffered
59
+ // };
60
+ // } else {
61
+ // return o;
62
+ // }
63
+ // })
64
+ // : [];
65
+ // const customer: factory.report.accountingReport.IOptimizedCustomer = {
66
+ // id: params.customer.id,
67
+ // typeOf: params.customer.typeOf,
68
+ // additionalProperty: (Array.isArray(params.customer.additionalProperty))
69
+ // ? params.customer.additionalProperty
70
+ // : [],
71
+ // identifier: (Array.isArray(params.customer.identifier))
72
+ // ? params.customer.identifier
73
+ // : []
74
+ // };
77
75
  return {
78
- // ...params,
79
- confirmationNumber: params.confirmationNumber,
80
76
  id: params.id,
81
77
  orderNumber: params.orderNumber,
82
- orderedItem: params.orderedItem,
83
- paymentMethods: params.paymentMethods,
84
- price: params.price,
85
- priceCurrency: params.priceCurrency,
86
- seller: params.seller,
78
+ paymentMethods: params.paymentMethods.map(({ paymentMethodId }) => ({ paymentMethodId })),
79
+ seller: {
80
+ id: params.seller.id,
81
+ name: params.seller.name,
82
+ typeOf: params.seller.typeOf
83
+ },
87
84
  typeOf: params.typeOf,
88
- customer,
89
85
  orderDate: (0, moment_timezone_1.default)(params.orderDate)
90
86
  .toDate(),
91
- acceptedOffers,
92
- numItems,
93
- ...(typeof params.broker?.typeOf === 'string') ? { broker: params.broker } : undefined
94
- // ...(params.dateReturned !== null && params.dateReturned !== undefined)
95
- // ? {
96
- // dateReturned: moment(params.dateReturned)
97
- // .toDate()
98
- // }
99
- // : undefined
87
+ // confirmationNumber: params.confirmationNumber, // discontinue(2026-05-06~)
88
+ // price: params.price, // discontinue(2026-05-06~)
89
+ // priceCurrency: params.priceCurrency, // discontinue(2026-05-06~)
90
+ // customer, // discontinue(2026-05-06~)
91
+ // numItems, // discontinue(2026-05-06~)
92
+ // orderedItem: params.orderedItem, // discontinue(2026-05-06~)
93
+ // acceptedOffers, // discontinue(2026-05-06~)
94
+ // ...(typeof params.broker?.typeOf === 'string') ? { broker: params.broker } : undefined // discontinue(2026-05-06~)
100
95
  };
101
96
  }
102
97
  function createAccountingReport(params) {
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deleteOrder = deleteOrder;
4
- const factory_1 = require("../delivery/factory");
5
- const factory_2 = require("../../factory");
4
+ // import { createOwnershipInfosFromOrder } from '../delivery/factory';
5
+ const factory_1 = require("../../factory");
6
6
  /**
7
7
  * 注文に関わるリソースを削除する
8
8
  * 冪等性を確保すること
@@ -20,24 +20,24 @@ function deleteOrder(params) {
20
20
  return;
21
21
  }
22
22
  if (typeof order.id !== 'string') {
23
- throw new factory_2.factory.errors.Internal(`order.id undefined. orderNumber: ${params.object.orderNumber}`);
23
+ throw new factory_1.factory.errors.Internal(`order.id undefined. orderNumber: ${params.object.orderNumber}`);
24
24
  }
25
25
  // 注文アイテムの予約を削除
26
26
  await deleteReservationsByOrder(order)(repos);
27
- // 所有権削除
28
- try {
29
- await deleteOwnershipInfosByOrder(order)(repos);
30
- }
31
- catch (error) {
32
- console.error('deleteOwnershipInfosByOrder throws', error);
33
- }
27
+ // 所有権は所有期限でcleanされるので、注文削除時連動はひとまず廃止(2026-05-17~)
28
+ // // 所有権削除
29
+ // try {
30
+ // await deleteOwnershipInfosByOrder(order)(repos);
31
+ // } catch (error) {
32
+ // console.error('deleteOwnershipInfosByOrder throws', error);
33
+ // }
34
34
  // 経理レポート削除
35
35
  await repos.accountingReport.deleteByOrderNumber({ mainEntity: { orderNumber: order.orderNumber } });
36
36
  // メモ削除(2024-02-15~)
37
37
  await repos.note.deleteNotesByAbout({
38
38
  about: {
39
39
  id: order.id,
40
- typeOf: factory_2.factory.order.OrderType.Order
40
+ typeOf: factory_1.factory.order.OrderType.Order
41
41
  }
42
42
  });
43
43
  // 注文削除
@@ -49,7 +49,7 @@ function deleteOrder(params) {
49
49
  function deletePersonIfNecessary(order) {
50
50
  return async (repos) => {
51
51
  // 代理注文を除く
52
- const isCustomerPerson = order.customer.typeOf === factory_2.factory.personType.Person
52
+ const isCustomerPerson = order.customer.typeOf === factory_1.factory.personType.Person
53
53
  && typeof order.broker?.typeOf !== 'string';
54
54
  if (isCustomerPerson) {
55
55
  const ordersByPerson = await repos.order.projectFields({
@@ -60,12 +60,12 @@ function deletePersonIfNecessary(order) {
60
60
  if (ordersByPerson.length === 0) {
61
61
  const setting = await repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['userPoolIdNew']);
62
62
  if (typeof setting?.userPoolIdNew !== 'string') {
63
- throw new factory_2.factory.errors.NotFound('setting.userPoolIdNew');
63
+ throw new factory_1.factory.errors.NotFound('setting.userPoolIdNew');
64
64
  }
65
65
  const deletePersonTask = {
66
- project: { typeOf: factory_2.factory.organizationType.Project, id: order.project.id },
67
- name: factory_2.factory.taskName.DeletePerson,
68
- status: factory_2.factory.taskStatus.Ready,
66
+ project: { typeOf: factory_1.factory.organizationType.Project, id: order.project.id },
67
+ name: factory_1.factory.taskName.DeletePerson,
68
+ status: factory_1.factory.taskStatus.Ready,
69
69
  runsAt: new Date(),
70
70
  remainingNumberOfTries: 10,
71
71
  numberOfTried: 0,
@@ -74,8 +74,8 @@ function deletePersonIfNecessary(order) {
74
74
  id: order.customer.id,
75
75
  agent: {
76
76
  id: order.project.id,
77
- typeOf: factory_2.factory.organizationType.Project,
78
- name: factory_2.factory.organizationType.Project
77
+ typeOf: factory_1.factory.organizationType.Project,
78
+ name: factory_1.factory.organizationType.Project
79
79
  },
80
80
  physically: true,
81
81
  userPoolId: setting.userPoolIdNew,
@@ -94,36 +94,13 @@ function deleteReservationsByOrder(order) {
94
94
  orderNumber: { $eq: order.orderNumber },
95
95
  project: { id: { $eq: order.project.id } },
96
96
  acceptedOffers: {
97
- itemOffered: { typeOf: { $in: [factory_2.factory.reservationType.EventReservation] } }
97
+ // itemOffered: { typeOf: { $in: [factory.reservationType.EventReservation] } }
98
98
  }
99
- });
99
+ }, { useReserveTransaction: true } // 予約取引参照(2026-05-18~)
100
+ );
100
101
  const reservationIds = acceptedOffers.map((o) => String(o.itemOffered.id));
101
102
  if (reservationIds.length > 0) {
102
103
  await repos.reservation.deleteByIds({ project: { id: order.project.id }, ids: reservationIds });
103
104
  }
104
105
  };
105
106
  }
106
- function deleteOwnershipInfosByOrder(order) {
107
- return async (repos) => {
108
- const now = new Date();
109
- const ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({
110
- order: {
111
- ...order,
112
- acceptedOffers: await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
113
- orderNumber: { $eq: order.orderNumber },
114
- project: { id: { $eq: order.project.id } }
115
- })
116
- },
117
- offerIndexBase: 0
118
- });
119
- const ownershipIdentifiers = ownershipInfos.map((o) => String(o.identifier));
120
- if (ownershipIdentifiers.length > 0) {
121
- await repos.ownershipInfo.deleteExpiredByIdentifiers({
122
- project: { id: order.project.id },
123
- identifiers: ownershipIdentifiers,
124
- // 所有期限切れのもの(ownedThroughの存在しないものは削除してはいけない)
125
- ownedThrough: { $lte: now }
126
- });
127
- }
128
- };
129
- }
@@ -5,7 +5,7 @@ import type { SettingRepo } from '../../../repo/setting';
5
5
  import type { TaskRepo } from '../../../repo/task';
6
6
  import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
7
7
  import { factory } from '../../../factory';
8
- import { Settings } from '../../../settings';
8
+ import type { IntegrationSettingRepo as Settings } from '../../../repo/setting/integration';
9
9
  interface IOnPayTransactionConfirmedRepos {
10
10
  acceptedOffer: AcceptedOfferRepo;
11
11
  assetTransaction: AssetTransactionRepo;
@@ -5,7 +5,7 @@ import type { SettingRepo } from '../../../repo/setting';
5
5
  import type { TaskRepo } from '../../../repo/task';
6
6
  import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
7
7
  import { factory } from '../../../factory';
8
- import { Settings } from '../../../settings';
8
+ import type { IntegrationSettingRepo as Settings } from '../../../repo/setting/integration';
9
9
  interface IOnReserveTransactionConfirmedRepos {
10
10
  acceptedOffer: AcceptedOfferRepo;
11
11
  assetTransaction: AssetTransactionRepo;