@chevre/domain 21.18.0-alpha.2 → 21.18.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 (106) hide show
  1. package/example/src/chevre/aggreateOwnershipInfosByOrder.ts +24 -0
  2. package/example/src/chevre/searchAcceptedOfferIds.ts +57 -0
  3. package/example/src/chevre/searchOrderAcceptedOffers.ts +12 -12
  4. package/example/src/chevre/searchOrders.ts +36 -19
  5. package/example/src/chevre/searchReservationsByOrder.ts +30 -0
  6. package/example/src/chevre/searchTransactions.ts +41 -0
  7. package/example/src/chevre/transaction/processReturnOrder.ts +1 -0
  8. package/example/src/chevre/upsertMoviesByIdentifier.ts +57 -0
  9. package/example/src/chevre/upsertScreeningEventSeriesByVersion.ts +141 -0
  10. package/example/src/duration.ts +22 -0
  11. package/lib/chevre/repo/acceptedOffer.d.ts +60 -0
  12. package/lib/chevre/repo/acceptedOffer.js +158 -0
  13. package/lib/chevre/repo/creativeWork.d.ts +5 -1
  14. package/lib/chevre/repo/creativeWork.js +42 -22
  15. package/lib/chevre/repo/event.d.ts +12 -0
  16. package/lib/chevre/repo/event.js +61 -0
  17. package/lib/chevre/repo/offerCatalog.d.ts +8 -2
  18. package/lib/chevre/repo/offerCatalog.js +8 -8
  19. package/lib/chevre/repo/order.d.ts +14 -54
  20. package/lib/chevre/repo/order.js +46 -180
  21. package/lib/chevre/repo/place.js +14 -10
  22. package/lib/chevre/repo/transaction.d.ts +5 -4
  23. package/lib/chevre/repository.d.ts +5 -7
  24. package/lib/chevre/repository.js +14 -17
  25. package/lib/chevre/service/assetTransaction/pay/potentialActions.d.ts +3 -1
  26. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +3 -3
  27. package/lib/chevre/service/assetTransaction/pay.d.ts +2 -0
  28. package/lib/chevre/service/assetTransaction/pay.js +10 -6
  29. package/lib/chevre/service/delivery/factory.d.ts +3 -1
  30. package/lib/chevre/service/delivery/factory.js +4 -2
  31. package/lib/chevre/service/delivery.d.ts +1 -2
  32. package/lib/chevre/service/delivery.js +1 -3
  33. package/lib/chevre/service/offer/product.d.ts +0 -14
  34. package/lib/chevre/service/offer/product.js +59 -42
  35. package/lib/chevre/service/order/confirmPayTransaction.d.ts +2 -0
  36. package/lib/chevre/service/order/confirmPayTransaction.js +1 -0
  37. package/lib/chevre/service/order/createAccountingReportIfNotExist.d.ts +3 -1
  38. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +4 -1
  39. package/lib/chevre/service/order/deleteOrder.d.ts +2 -0
  40. package/lib/chevre/service/order/deleteOrder.js +15 -4
  41. package/lib/chevre/service/order/findPlaceOrderTransaction.d.ts +3 -1
  42. package/lib/chevre/service/order/findPlaceOrderTransaction.js +1 -2
  43. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +3 -3
  44. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +15 -9
  45. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +11 -0
  46. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.js +54 -0
  47. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled.d.ts +10 -0
  48. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled.js +38 -0
  49. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.d.ts +12 -0
  50. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +111 -0
  51. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.d.ts +12 -0
  52. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +64 -0
  53. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.d.ts +10 -0
  54. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +103 -0
  55. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +30 -0
  56. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +227 -0
  57. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.d.ts +14 -0
  58. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +216 -0
  59. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +10 -0
  60. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +110 -0
  61. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.d.ts +14 -0
  62. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +164 -0
  63. package/lib/chevre/service/order/onOrderStatusChanged.d.ts +9 -15
  64. package/lib/chevre/service/order/onOrderStatusChanged.js +11 -446
  65. package/lib/chevre/service/order/onOrderUpdated/factory.d.ts +6 -0
  66. package/lib/chevre/service/order/onOrderUpdated/factory.js +45 -0
  67. package/lib/chevre/service/order/onOrderUpdated.js +1 -1
  68. package/lib/chevre/service/order/payOrder.d.ts +2 -2
  69. package/lib/chevre/service/order/placeOrder.d.ts +2 -3
  70. package/lib/chevre/service/order/placeOrder.js +65 -22
  71. package/lib/chevre/service/order/returnOrder.d.ts +2 -2
  72. package/lib/chevre/service/order/returnOrder.js +34 -13
  73. package/lib/chevre/service/order/sendOrder.d.ts +2 -2
  74. package/lib/chevre/service/order/sendOrder.js +19 -6
  75. package/lib/chevre/service/order.d.ts +2 -2
  76. package/lib/chevre/service/order.js +2 -2
  77. package/lib/chevre/service/payment/any.js +1 -1
  78. package/lib/chevre/service/reserve/searchByOrder.d.ts +21 -0
  79. package/lib/chevre/service/reserve/searchByOrder.js +113 -0
  80. package/lib/chevre/service/reserve/verifyToken4reservation.js +0 -11
  81. package/lib/chevre/service/reserve.d.ts +2 -1
  82. package/lib/chevre/service/reserve.js +3 -1
  83. package/lib/chevre/service/task/confirmPayTransaction.js +2 -1
  84. package/lib/chevre/service/task/deleteTransaction.js +2 -0
  85. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +5 -6
  86. package/lib/chevre/service/task/onAuthorizationCreated.js +9 -18
  87. package/lib/chevre/service/task/onOrderPaymentCompleted.js +5 -6
  88. package/lib/chevre/service/task/placeOrder.js +10 -17
  89. package/lib/chevre/service/task/returnOrder.js +10 -17
  90. package/lib/chevre/service/task/sendOrder.js +10 -17
  91. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +3 -7
  92. package/lib/chevre/service/transaction/deleteTransaction.d.ts +2 -0
  93. package/lib/chevre/service/transaction/moneyTransfer.js +3 -4
  94. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -1
  95. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +1 -1
  96. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.d.ts +1 -0
  97. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.js +3 -3
  98. package/lib/chevre/service/transaction/returnOrder/potentialActions.d.ts +1 -0
  99. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +1 -1
  100. package/lib/chevre/service/transaction/returnOrder.d.ts +3 -0
  101. package/lib/chevre/service/transaction/returnOrder.js +73 -55
  102. package/package.json +2 -2
  103. package/lib/chevre/repo/action/registerServiceInProgress.d.ts +0 -29
  104. package/lib/chevre/repo/action/registerServiceInProgress.js +0 -58
  105. package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +0 -42
  106. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +0 -467
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.call = void 0;
13
13
  const factory = require("../../factory");
14
+ const acceptedOffer_1 = require("../../repo/acceptedOffer");
14
15
  const action_1 = require("../../repo/action");
15
16
  const assetTransaction_1 = require("../../repo/assetTransaction");
16
17
  const code_1 = require("../../repo/code");
@@ -26,6 +27,7 @@ const reserve_1 = require("../reserve");
26
27
  function call(data) {
27
28
  return (settings) => __awaiter(this, void 0, void 0, function* () {
28
29
  yield onAuthorizationCreated(data)({
30
+ acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
29
31
  action: new action_1.MongoRepository(settings.connection),
30
32
  assetTransaction: new assetTransaction_1.MongoRepository(settings.connection),
31
33
  code: new code_1.MongoRepository(settings.connection),
@@ -38,6 +40,7 @@ function call(data) {
38
40
  });
39
41
  }
40
42
  exports.call = call;
43
+ // tslint:disable-next-line:max-func-body-length
41
44
  function onAuthorizationCreated(params) {
42
45
  return (repos) => __awaiter(this, void 0, void 0, function* () {
43
46
  // 発券対象予約ID
@@ -55,24 +58,12 @@ function onAuthorizationCreated(params) {
55
58
  // 注文検索
56
59
  const orderNumber = authorizationObject.orderNumber;
57
60
  if (typeof orderNumber === 'string' && orderNumber.length > 0) {
58
- // 最適化(2023-01-28~)
59
- const order = yield repos.order.findByOrderNumber({
60
- orderNumber,
61
- project: { id: params.project.id },
62
- inclusion: ['acceptedOffers'],
63
- exclusion: []
64
- });
65
- const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
66
- reservationNumbers = acceptedOffers
67
- .filter((o) => o.itemOffered.typeOf === factory.reservationType.EventReservation
68
- || o.itemOffered.typeOf === factory.reservationType.BusReservation)
69
- .map((o) => o.itemOffered.reservationNumber);
70
- reservationNumbers = [...new Set(reservationNumbers)];
71
- reservationForIds = acceptedOffers
72
- .filter((o) => o.itemOffered.typeOf === factory.reservationType.EventReservation
73
- || o.itemOffered.typeOf === factory.reservationType.BusReservation)
74
- .map((o) => String(o.itemOffered.reservationFor.id));
75
- reservationForIds = [...new Set(reservationForIds)];
61
+ reservationNumbers = yield repos.acceptedOffer.distinctValues({
62
+ orderNumber: { $in: [orderNumber] }
63
+ }, 'acceptedOffers.itemOffered.reservationNumber');
64
+ reservationForIds = yield repos.acceptedOffer.distinctValues({
65
+ orderNumber: { $in: [orderNumber] }
66
+ }, 'acceptedOffers.itemOffered.reservationFor.id');
76
67
  }
77
68
  break;
78
69
  case 'OwnershipInfo':
@@ -10,8 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.call = void 0;
13
- const factory = require("../../factory");
14
- const registerServiceInProgress_1 = require("../../repo/action/registerServiceInProgress");
13
+ const acceptedOffer_1 = require("../../repo/acceptedOffer");
15
14
  const order_1 = require("../../repo/order");
16
15
  const task_1 = require("../../repo/task");
17
16
  const transaction_1 = require("../../repo/transaction");
@@ -21,12 +20,12 @@ const payOrder_1 = require("../order/payOrder");
21
20
  */
22
21
  function call(data) {
23
22
  return (settings) => __awaiter(this, void 0, void 0, function* () {
24
- if (settings.redisClient === undefined) {
25
- throw new factory.errors.Argument('settings', 'redisClient required');
26
- }
23
+ // if (settings.redisClient === undefined) {
24
+ // throw new factory.errors.Argument('settings', 'redisClient required');
25
+ // }
27
26
  yield (0, payOrder_1.payOrder)(data)({
27
+ acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
28
28
  order: new order_1.MongoRepository(settings.connection),
29
- registerActionInProgress: new registerServiceInProgress_1.RedisRepository(settings.redisClient),
30
29
  task: new task_1.MongoRepository(settings.connection),
31
30
  transaction: new transaction_1.MongoRepository(settings.connection)
32
31
  });
@@ -10,10 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.call = void 0;
13
- const factory = require("../../factory");
13
+ const acceptedOffer_1 = require("../../repo/acceptedOffer");
14
14
  const accountingReport_1 = require("../../repo/accountingReport");
15
15
  const action_1 = require("../../repo/action");
16
- const registerServiceInProgress_1 = require("../../repo/action/registerServiceInProgress");
17
16
  const order_1 = require("../../repo/order");
18
17
  const task_1 = require("../../repo/task");
19
18
  const transaction_1 = require("../../repo/transaction");
@@ -23,22 +22,16 @@ const OrderService = require("../order");
23
22
  */
24
23
  function call(data) {
25
24
  return (settings) => __awaiter(this, void 0, void 0, function* () {
26
- if (settings.redisClient === undefined) {
27
- throw new factory.errors.Argument('settings', 'redisClient required');
28
- }
29
- const actionRepo = new action_1.MongoRepository(settings.connection);
30
- const accountingReportRepo = new accountingReport_1.MongoRepository(settings.connection);
31
- const orderRepo = new order_1.MongoRepository(settings.connection);
32
- const taskRepo = new task_1.MongoRepository(settings.connection);
33
- const transactionRepo = new transaction_1.MongoRepository(settings.connection);
34
- const registerServiceInProgressRepo = new registerServiceInProgress_1.RedisRepository(settings.redisClient);
25
+ // if (settings.redisClient === undefined) {
26
+ // throw new factory.errors.Argument('settings', 'redisClient required');
27
+ // }
35
28
  yield OrderService.placeOrder(Object.assign(Object.assign({}, data), { useOnOrderStatusChanged: true }))({
36
- accountingReport: accountingReportRepo,
37
- action: actionRepo,
38
- order: orderRepo,
39
- registerActionInProgress: registerServiceInProgressRepo,
40
- task: taskRepo,
41
- transaction: transactionRepo
29
+ acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
30
+ accountingReport: new accountingReport_1.MongoRepository(settings.connection),
31
+ action: new action_1.MongoRepository(settings.connection),
32
+ order: new order_1.MongoRepository(settings.connection),
33
+ task: new task_1.MongoRepository(settings.connection),
34
+ transaction: new transaction_1.MongoRepository(settings.connection)
42
35
  });
43
36
  });
44
37
  }
@@ -10,9 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.call = void 0;
13
- const factory = require("../../factory");
13
+ const acceptedOffer_1 = require("../../repo/acceptedOffer");
14
14
  const action_1 = require("../../repo/action");
15
- const registerServiceInProgress_1 = require("../../repo/action/registerServiceInProgress");
16
15
  const order_1 = require("../../repo/order");
17
16
  const ownershipInfo_1 = require("../../repo/ownershipInfo");
18
17
  const task_1 = require("../../repo/task");
@@ -23,22 +22,16 @@ const returnOrder_1 = require("../order/returnOrder");
23
22
  */
24
23
  function call(data) {
25
24
  return (settings) => __awaiter(this, void 0, void 0, function* () {
26
- if (settings.redisClient === undefined) {
27
- throw new factory.errors.Argument('settings', 'redisClient required');
28
- }
29
- const actionRepo = new action_1.MongoRepository(settings.connection);
30
- const orderRepo = new order_1.MongoRepository(settings.connection);
31
- const ownershipInfoRepo = new ownershipInfo_1.MongoRepository(settings.connection);
32
- const taskRepo = new task_1.MongoRepository(settings.connection);
33
- const transactionRepo = new transaction_1.MongoRepository(settings.connection);
34
- const registerServiceInProgressRepo = new registerServiceInProgress_1.RedisRepository(settings.redisClient);
25
+ // if (settings.redisClient === undefined) {
26
+ // throw new factory.errors.Argument('settings', 'redisClient required');
27
+ // }
35
28
  yield (0, returnOrder_1.returnOrder)(Object.assign(Object.assign({}, data), { useOnOrderStatusChanged: true }))({
36
- action: actionRepo,
37
- order: orderRepo,
38
- ownershipInfo: ownershipInfoRepo,
39
- registerServiceInProgress: registerServiceInProgressRepo,
40
- task: taskRepo,
41
- transaction: transactionRepo
29
+ acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
30
+ action: new action_1.MongoRepository(settings.connection),
31
+ order: new order_1.MongoRepository(settings.connection),
32
+ ownershipInfo: new ownershipInfo_1.MongoRepository(settings.connection),
33
+ task: new task_1.MongoRepository(settings.connection),
34
+ transaction: new transaction_1.MongoRepository(settings.connection)
42
35
  });
43
36
  });
44
37
  }
@@ -10,9 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.call = void 0;
13
- const factory = require("../../factory");
13
+ const acceptedOffer_1 = require("../../repo/acceptedOffer");
14
14
  const action_1 = require("../../repo/action");
15
- const registerServiceInProgress_1 = require("../../repo/action/registerServiceInProgress");
16
15
  const order_1 = require("../../repo/order");
17
16
  const ownershipInfo_1 = require("../../repo/ownershipInfo");
18
17
  const task_1 = require("../../repo/task");
@@ -23,22 +22,16 @@ const OrderService = require("../order");
23
22
  */
24
23
  function call(data) {
25
24
  return (settings) => __awaiter(this, void 0, void 0, function* () {
26
- if (settings.redisClient === undefined) {
27
- throw new factory.errors.Argument('settings', 'redisClient required');
28
- }
29
- const actionRepo = new action_1.MongoRepository(settings.connection);
30
- const orderRepo = new order_1.MongoRepository(settings.connection);
31
- const ownershipInfoRepo = new ownershipInfo_1.MongoRepository(settings.connection);
32
- const taskRepo = new task_1.MongoRepository(settings.connection);
33
- const transactionRepo = new transaction_1.MongoRepository(settings.connection);
34
- const registerServiceInProgressRepo = new registerServiceInProgress_1.RedisRepository(settings.redisClient);
25
+ // if (settings.redisClient === undefined) {
26
+ // throw new factory.errors.Argument('settings', 'redisClient required');
27
+ // }
35
28
  yield OrderService.sendOrder(Object.assign(Object.assign({}, data), { useOnOrderStatusChanged: true }))({
36
- action: actionRepo,
37
- order: orderRepo,
38
- ownershipInfo: ownershipInfoRepo,
39
- registerActionInProgress: registerServiceInProgressRepo,
40
- task: taskRepo,
41
- transaction: transactionRepo
29
+ acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
30
+ action: new action_1.MongoRepository(settings.connection),
31
+ order: new order_1.MongoRepository(settings.connection),
32
+ ownershipInfo: new ownershipInfo_1.MongoRepository(settings.connection),
33
+ task: new task_1.MongoRepository(settings.connection),
34
+ transaction: new transaction_1.MongoRepository(settings.connection)
42
35
  });
43
36
  });
44
37
  }
@@ -10,9 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.call = void 0;
13
- const factory = require("../../factory");
14
13
  const action_1 = require("../../repo/action");
15
- const registerServiceInProgress_1 = require("../../repo/action/registerServiceInProgress");
16
14
  const assetTransaction_1 = require("../../repo/assetTransaction");
17
15
  const transaction_1 = require("../../repo/transaction");
18
16
  const ProductOfferService = require("../offer/product");
@@ -21,17 +19,15 @@ const ProductOfferService = require("../offer/product");
21
19
  */
22
20
  function call(data) {
23
21
  return (settings) => __awaiter(this, void 0, void 0, function* () {
24
- if (settings.redisClient === undefined) {
25
- throw new factory.errors.Argument('settings', 'redisClient required');
26
- }
22
+ // if (settings.redisClient === undefined) {
23
+ // throw new factory.errors.Argument('settings', 'redisClient required');
24
+ // }
27
25
  const actionRepo = new action_1.MongoRepository(settings.connection);
28
- const registerActionInProgressRepo = new registerServiceInProgress_1.RedisRepository(settings.redisClient);
29
26
  const assetTransactionRepo = new assetTransaction_1.MongoRepository(settings.connection);
30
27
  const transactionRepo = new transaction_1.MongoRepository(settings.connection);
31
28
  yield ProductOfferService.voidTransaction(data)({
32
29
  action: actionRepo,
33
30
  assetTransaction: assetTransactionRepo,
34
- registerActionInProgress: registerActionInProgressRepo,
35
31
  transaction: transactionRepo
36
32
  });
37
33
  });
@@ -1,4 +1,5 @@
1
1
  import * as factory from '../../factory';
2
+ import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
2
3
  import type { MongoRepository as AccountingReportRepo } from '../../repo/accountingReport';
3
4
  import type { MongoRepository as ActionRepo } from '../../repo/action';
4
5
  import type { MongoRepository as AssetTransactionRepo } from '../../repo/assetTransaction';
@@ -13,6 +14,7 @@ import type { MongoRepository as TransactionRepo } from '../../repo/transaction'
13
14
  * 冪等性を確保すること
14
15
  */
15
16
  export declare function deleteTransaction(params: factory.task.IData<factory.taskName.DeleteTransaction>): (repos: {
17
+ acceptedOffer: AcceptedOfferRepo;
16
18
  accountingReport: AccountingReportRepo;
17
19
  action: ActionRepo;
18
20
  assetTransaction: AssetTransactionRepo;
@@ -412,8 +412,8 @@ function validateFromLocation(project, fromLocationBeforeStart, issuedThrough) {
412
412
  orderNumbers: [String(fromLocation.orderNumber)],
413
413
  confirmationNumbers: [String(fromLocation.confirmationNumber)]
414
414
  }, {
415
- acceptedOffers: 0,
416
- orderedItem: 0
415
+ identifier: 1,
416
+ orderStatus: 1
417
417
  });
418
418
  const order = orders.shift();
419
419
  if (order === undefined) {
@@ -467,8 +467,7 @@ function validateToLocation(project, toLocationBeforeStart, issuedThrough) {
467
467
  orderNumbers: [String(toLocation.orderNumber)],
468
468
  confirmationNumbers: [String(toLocation.confirmationNumber)]
469
469
  }, {
470
- acceptedOffers: 0,
471
- orderedItem: 0
470
+ identifier: 1
472
471
  });
473
472
  const order = orders.shift();
474
473
  if (order === undefined) {
@@ -10,4 +10,4 @@ export declare function createOrder(params: {
10
10
  orderStatus: factory.orderStatus;
11
11
  isGift: boolean;
12
12
  authorizeActions: factory.action.authorize.IAction<factory.action.authorize.IAttributes<any, any>>[];
13
- }): factory.order.IOrder;
13
+ }): factory.transaction.placeOrder.IOrderAsResult;
@@ -32,7 +32,7 @@ export type IResultOrderParams = factory.transaction.placeOrder.IResultOrderPara
32
32
  };
33
33
  };
34
34
  export declare function validateNumItems(params: {
35
- order: factory.order.IOrder;
35
+ order: factory.transaction.placeOrder.IOrderAsResult;
36
36
  result: {
37
37
  order: IResultOrderParams;
38
38
  };
@@ -2,5 +2,6 @@ import * as factory from '../../../../factory';
2
2
  export type WebAPIIdentifier = factory.service.webAPI.Identifier;
3
3
  export declare function createReturnMoneyTransferActions(params: {
4
4
  order: factory.order.IOrder;
5
+ moneyTransferAcceptedOffers: Pick<factory.order.IAcceptedOffer<factory.order.IMoneyTransfer>, 'itemOffered'>[];
5
6
  returnOrderActionParams?: factory.transaction.returnOrder.IReturnOrderActionParams;
6
7
  }): Promise<factory.task.IData<factory.taskName.ReturnMoneyTransfer>[]>;
@@ -32,9 +32,9 @@ function createReturnMoneyTransferActions(params) {
32
32
  priceCurrency: order.priceCurrency,
33
33
  orderDate: order.orderDate
34
34
  };
35
- // 注文アイテムから返却アクションを作成する
36
- const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
37
- for (const acceptedOffer of acceptedOffers) {
35
+ // 注文オファーから返却アクションを作成する
36
+ // const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
37
+ for (const acceptedOffer of params.moneyTransferAcceptedOffers) {
38
38
  if (acceptedOffer.itemOffered.typeOf === factory.actionType.MoneyTransfer) {
39
39
  const moneyTransfer = acceptedOffer.itemOffered;
40
40
  const transactionNumber = String((_b = (_a = moneyTransfer.object) === null || _a === void 0 ? void 0 : _a.pendingTransaction) === null || _b === void 0 ? void 0 : _b.transactionNumber);
@@ -9,4 +9,5 @@ export declare function createPotentialActions(params: {
9
9
  potentialActions?: factory.transaction.returnOrder.IPotentialActionsParams;
10
10
  transaction: factory.transaction.returnOrder.ITransaction;
11
11
  emailMessageOnOrderReturned?: factory.creativeWork.message.email.ICreativeWork;
12
+ moneyTransferAcceptedOffers: Pick<factory.order.IAcceptedOffer<factory.order.IMoneyTransfer>, 'itemOffered'>[];
12
13
  }): Promise<factory.transaction.returnOrder.IPotentialActions>;
@@ -34,7 +34,7 @@ function createPotentialActions(params) {
34
34
  const returnPaymentMethodActions = yield (0, returnPaymentMethod_1.createReturnPaymentMethodActions)(Object.assign(Object.assign({}, params), { order, returnOrderActionParams }));
35
35
  // ポイント特典の数だけ、返却アクションを作成
36
36
  const returnPointAwardActions = yield (0, returnPointAward_1.createReturnPointAwardActions)(Object.assign(Object.assign({}, params), { order }));
37
- const returnMoneyTransferActions = yield (0, returnMoneyTransfer_1.createReturnMoneyTransferActions)(Object.assign(Object.assign({}, params), { order, returnOrderActionParams }));
37
+ const returnMoneyTransferActions = yield (0, returnMoneyTransfer_1.createReturnMoneyTransferActions)(Object.assign(Object.assign({}, params), { order, moneyTransferAcceptedOffers: params.moneyTransferAcceptedOffers, returnOrderActionParams }));
38
38
  // 返品後のEメール送信アクション
39
39
  const sendEmailMessaegActionsOnReturn = yield (0, sendEmailMessage_1.createSendEmailMessaegActionsOnReturn)(Object.assign(Object.assign({}, params), { order, returnOrderActionParams }));
40
40
  const potentialActionsOnReturnOrder = {
@@ -1,4 +1,5 @@
1
1
  import * as factory from '../../factory';
2
+ import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
2
3
  import type { MongoRepository as EmailMessageRepo } from '../../repo/emailMessage';
3
4
  import type { MongoRepository as EventRepo } from '../../repo/event';
4
5
  import type { MongoRepository as MerchantReturnPolicyRepo } from '../../repo/merchantReturnPolicy';
@@ -11,6 +12,7 @@ import type { MongoRepository as SellerRepo } from '../../repo/seller';
11
12
  import type { MongoRepository as TaskRepo } from '../../repo/task';
12
13
  import type { MongoRepository as TransactionRepo } from '../../repo/transaction';
13
14
  export interface IStartOperationRepos {
15
+ acceptedOffer: AcceptedOfferRepo;
14
16
  event: EventRepo;
15
17
  merchantReturnPolicy: MerchantReturnPolicyRepo;
16
18
  offer: OfferRepo;
@@ -40,6 +42,7 @@ export declare function confirm(params: factory.transaction.returnOrder.IConfirm
40
42
  };
41
43
  };
42
44
  }): (repos: {
45
+ acceptedOffer: AcceptedOfferRepo;
43
46
  emailMessage?: EmailMessageRepo;
44
47
  order: OrderRepo;
45
48
  transaction: TransactionRepo;
@@ -172,25 +172,34 @@ function fixOrders(params) {
172
172
  project: { id: { $eq: params.project.id } },
173
173
  confirmationNumbers: [params.object.order[0].confirmationNumber],
174
174
  orderNumbers: [params.object.order[0].orderNumber]
175
- }, {
176
- // acceptedOffers: 0, // カスタム返品ポリシーに必要
177
- customer: 0,
178
- orderedItem: 0
179
- // paymentMethods: 0 // 適用決済方法検証に必要
180
- });
175
+ },
176
+ // positive projectionで検索(2023-12-08~)
177
+ {
178
+ confirmationNumber: 1, dateReturned: 1, orderDate: 1, orderNumber: 1, orderStatus: 1,
179
+ paymentMethods: 1, price: 1, project: 1, seller: 1, typeOf: 1
180
+ }
181
+ // {
182
+ // // acceptedOffers: 0, // カスタム返品ポリシーに必要
183
+ // customer: 0,
184
+ // orderedItem: 0
185
+ // // paymentMethods: 0 // 適用決済方法検証に必要
186
+ // }
187
+ );
181
188
  if (orders.length !== params.object.order.length) {
182
189
  throw new factory.errors.NotFound('Order');
183
190
  }
184
- const offerIds = yield repos.order.searchAcceptedOfferIds({
185
- project: { id: { $eq: params.project.id } },
186
- confirmationNumbers: [params.object.order[0].confirmationNumber],
187
- orderNumbers: [params.object.order[0].orderNumber]
188
- });
189
- const eventIds = yield repos.order.searchReservationForIdsByOrderNumbers({
191
+ const offerIds = yield repos.acceptedOffer.distinctValues({
190
192
  orderNumber: { $in: [params.object.order[0].orderNumber] }
191
- });
192
- const acceptedOffers = yield repos.order.searchAcceptedOffersByOrderNumbers({
193
+ }, 'acceptedOffers.id');
194
+ const eventIds = yield repos.acceptedOffer.distinctValues({
193
195
  orderNumber: { $in: [params.object.order[0].orderNumber] }
196
+ }, 'acceptedOffers.itemOffered.reservationFor.id');
197
+ // const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumbers({
198
+ // orderNumber: { $in: [params.object.order[0].orderNumber] }
199
+ // });
200
+ const acceptedOffers = yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
201
+ orderNumber: { $eq: params.object.order[0].orderNumber },
202
+ project: { id: { $eq: params.project.id } }
194
203
  });
195
204
  return { acceptedOffers, eventIds, offerIds, orders };
196
205
  });
@@ -208,9 +217,12 @@ function checkUsedReservationExists(params) {
208
217
  return (repos) => __awaiter(this, void 0, void 0, function* () {
209
218
  let usedReservationExists = false;
210
219
  // 注文に含まれる予約の状態検証
211
- const reservationNumbers = yield repos.order.searchReservationNumbersByOrderNumbers({
220
+ // const reservationNumbers = await repos.acceptedOffer.searchReservationNumbersByOrderNumbers({
221
+ // orderNumber: { $in: params.orders.map((order) => order.orderNumber) }
222
+ // });
223
+ const reservationNumbers = yield repos.acceptedOffer.distinctValues({
212
224
  orderNumber: { $in: params.orders.map((order) => order.orderNumber) }
213
- });
225
+ }, 'acceptedOffers.itemOffered.reservationNumber');
214
226
  if (reservationNumbers.length > 0) {
215
227
  // 使用済の予約がひとつでもあれば不可
216
228
  const existingUsedReservations = yield repos.reservation.search({
@@ -279,42 +291,40 @@ function createOrder4returnPolicy(params) {
279
291
  orderDate: params.order.orderDate,
280
292
  orderNumber: params.order.orderNumber,
281
293
  price: params.order.price,
282
- acceptedOffers: (Array.isArray(params.order.acceptedOffers))
283
- ? params.order.acceptedOffers.map((o) => {
284
- var _a;
285
- if (o.itemOffered.typeOf === factory.reservationType.EventReservation) {
286
- const reservation = o.itemOffered;
287
- const priceComponent = (_a = o.priceSpecification) === null || _a === void 0 ? void 0 : _a.priceComponent;
288
- return {
289
- itemOffered: {
290
- additionalProperty: reservation.additionalProperty,
291
- reservationFor: {
292
- doorTime: reservation.reservationFor.doorTime,
293
- endDate: reservation.reservationFor.endDate,
294
- startDate: reservation.reservationFor.startDate
295
- // superEvent: reservation.reservationFor.superEvent
296
- },
297
- reservedTicket: {
298
- ticketedSeat: reservation.reservedTicket.ticketedSeat
299
- }
294
+ acceptedOffers: params.order.acceptedOffers.map((o) => {
295
+ var _a;
296
+ if (o.itemOffered.typeOf === factory.reservationType.EventReservation) {
297
+ const reservation = o.itemOffered;
298
+ const priceComponent = (_a = o.priceSpecification) === null || _a === void 0 ? void 0 : _a.priceComponent;
299
+ return {
300
+ itemOffered: {
301
+ additionalProperty: reservation.additionalProperty,
302
+ reservationFor: {
303
+ doorTime: reservation.reservationFor.doorTime,
304
+ endDate: reservation.reservationFor.endDate,
305
+ startDate: reservation.reservationFor.startDate
306
+ // superEvent: reservation.reservationFor.superEvent
300
307
  },
301
- priceSpecification: {
302
- priceComponent: (Array.isArray(priceComponent))
303
- ? priceComponent.map((component) => {
304
- const { accounting, name, priceCurrency, valueAddedTaxIncluded } = component, postingComponent = __rest(component, ["accounting", "name", "priceCurrency", "valueAddedTaxIncluded"]);
305
- return postingComponent;
306
- })
307
- : []
308
+ reservedTicket: {
309
+ ticketedSeat: reservation.reservedTicket.ticketedSeat
308
310
  }
309
- };
310
- }
311
- else {
312
- return {
313
- priceSpecification: o.priceSpecification
314
- };
315
- }
316
- })
317
- : []
311
+ },
312
+ priceSpecification: {
313
+ priceComponent: (Array.isArray(priceComponent))
314
+ ? priceComponent.map((component) => {
315
+ const { accounting, name, priceCurrency, valueAddedTaxIncluded } = component, postingComponent = __rest(component, ["accounting", "name", "priceCurrency", "valueAddedTaxIncluded"]);
316
+ return postingComponent;
317
+ })
318
+ : []
319
+ }
320
+ };
321
+ }
322
+ else {
323
+ return {
324
+ priceSpecification: o.priceSpecification
325
+ };
326
+ }
327
+ })
318
328
  };
319
329
  }
320
330
  const TIMEOUT = 5000;
@@ -389,7 +399,7 @@ function findApplicableReturnPolicy(params) {
389
399
  if (typeof returnPolicySameAsByPoject === 'string' && returnPolicySameAsByPoject.length > 0) {
390
400
  const returnPolicyByProject = yield getReturnPolicyByProject({
391
401
  sameAs: returnPolicySameAsByPoject,
392
- order: params.orders[0] // 同時返品可能な注文数をは1
402
+ order: Object.assign(Object.assign({}, params.orders[0]), { acceptedOffers: params.acceptedOffers })
393
403
  });
394
404
  applicalbleReturnPolicies.push(returnPolicyByProject);
395
405
  }
@@ -601,6 +611,7 @@ function validateOffersReturnPolicy(params) {
601
611
  // 決済カード取消ポリシーを確定(2023-05-23~)
602
612
  const returnFeesMovieTicket = [];
603
613
  params.acceptedOffers.forEach((acceptedOffer) => {
614
+ var _a, _b;
604
615
  const unitPriceOffer = params.offers.find((offer) => offer.id === acceptedOffer.id);
605
616
  if (unitPriceOffer === undefined) {
606
617
  throw new factory.errors.NotFound(`UnitPriceOffer ${acceptedOffer.id}`);
@@ -613,11 +624,11 @@ function validateOffersReturnPolicy(params) {
613
624
  if (policyByOffer === undefined) {
614
625
  throw new factory.errors.NotFound(`MerchantReturnPolicy acceptedOffer:${acceptedOffer.id}`);
615
626
  }
616
- const movieTicketTypeChargeSpecExists = acceptedOffer.priceSpecification.priceComponent.some((component) => {
627
+ const movieTicketTypeChargeSpecExists = (_a = acceptedOffer.priceSpecification) === null || _a === void 0 ? void 0 : _a.priceComponent.some((component) => {
617
628
  return component.typeOf === factory.priceSpecificationType.MovieTicketTypeChargeSpecification;
618
629
  });
619
- if (movieTicketTypeChargeSpecExists) {
620
- acceptedOffer.priceSpecification.priceComponent.forEach((component) => {
630
+ if (movieTicketTypeChargeSpecExists === true) {
631
+ (_b = acceptedOffer.priceSpecification) === null || _b === void 0 ? void 0 : _b.priceComponent.forEach((component) => {
621
632
  if (component.typeOf === factory.priceSpecificationType.UnitPriceSpecification) {
622
633
  if (Array.isArray(component.appliesToMovieTicket)) {
623
634
  component.appliesToMovieTicket.forEach((appliesToMovieTicket) => {
@@ -706,12 +717,19 @@ function confirm(params) {
706
717
  emailMessageOnOrderReturned = searchEmailMessagesResult.shift();
707
718
  }
708
719
  const result = {};
720
+ const moneyTransferAcceptedOffers = yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
721
+ orderNumber: { $eq: transaction.object.order[0].orderNumber },
722
+ project: { id: { $eq: transaction.project.id } },
723
+ acceptedOffers: { itemOffered: { typeOf: { $in: [factory.actionType.MoneyTransfer] } } }
724
+ }, ['itemOffered']);
725
+ debug(moneyTransferAcceptedOffers.length, 'moneyTransferAcceptedOffers found.', moneyTransferAcceptedOffers);
709
726
  const potentialActions = yield (0, potentialActions_1.createPotentialActions)({
710
727
  dateReturned: params.object.order.dateReturned,
711
728
  orders: orders,
712
729
  potentialActions: params.potentialActions,
713
730
  transaction: transaction,
714
- emailMessageOnOrderReturned: emailMessageOnOrderReturned
731
+ emailMessageOnOrderReturned: emailMessageOnOrderReturned,
732
+ moneyTransferAcceptedOffers
715
733
  });
716
734
  // ステータス変更
717
735
  yield repos.transaction.confirm({
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  ],
11
11
  "dependencies": {
12
12
  "@aws-sdk/credential-providers": "3.433.0",
13
- "@chevre/factory": "4.344.0",
13
+ "@chevre/factory": "4.346.0",
14
14
  "@cinerino/sdk": "5.3.0",
15
15
  "@motionpicture/coa-service": "9.2.0",
16
16
  "@motionpicture/gmo-service": "5.2.0",
@@ -115,5 +115,5 @@
115
115
  "postversion": "git push origin --tags",
116
116
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
117
117
  },
118
- "version": "21.18.0-alpha.2"
118
+ "version": "21.18.0-alpha.20"
119
119
  }
@@ -1,29 +0,0 @@
1
- import { RedisClientType } from 'redis';
2
- /**
3
- * 進行アクションキーインターフェース
4
- */
5
- export interface IProgressKey {
6
- agent: {
7
- id: string;
8
- };
9
- product: {
10
- id: string;
11
- };
12
- }
13
- /**
14
- * 進行中サービス登録アクションリポジトリ
15
- */
16
- export declare class RedisRepository {
17
- private static readonly KEY_PREFIX;
18
- private readonly redisClient;
19
- constructor(redisClient: RedisClientType);
20
- /**
21
- * ロックする
22
- */
23
- lock(progressKey: IProgressKey, holder: string): Promise<boolean>;
24
- /**
25
- * メンバーシップ登録進行ロックを解除する
26
- */
27
- unlock(progressKey: IProgressKey): Promise<void>;
28
- getHolder(progressKey: IProgressKey): Promise<string | null>;
29
- }