@chevre/domain 26.0.0-alpha.4 → 26.0.0-alpha.41

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 (246) hide show
  1. package/lib/chevre/eventEmitter/task.d.ts +8 -23
  2. package/lib/chevre/eventEmitter/task.js +2 -2
  3. package/lib/chevre/repo/acceptedOffer.d.ts +0 -7
  4. package/lib/chevre/repo/acceptedOffer.js +27 -27
  5. package/lib/chevre/repo/action/acceptCOAOffer.d.ts +3 -1
  6. package/lib/chevre/repo/action/acceptCOAOffer.js +8 -2
  7. package/lib/chevre/repo/action/acceptPay.d.ts +3 -1
  8. package/lib/chevre/repo/action/acceptPay.js +8 -4
  9. package/lib/chevre/repo/action/{actionProcess.d.ts → anyAction/actionProcess.d.ts} +18 -45
  10. package/lib/chevre/repo/action/{actionProcess.js → anyAction/actionProcess.js} +26 -91
  11. package/lib/chevre/repo/action/anyAction/actionRecipe.d.ts +37 -0
  12. package/lib/chevre/repo/action/anyAction/actionRecipe.js +53 -0
  13. package/lib/chevre/repo/action/authorizeInvoice.d.ts +5 -8
  14. package/lib/chevre/repo/action/authorizeInvoice.js +7 -4
  15. package/lib/chevre/repo/action/authorizeOffer.d.ts +3 -1
  16. package/lib/chevre/repo/action/authorizeOffer.js +7 -2
  17. package/lib/chevre/repo/action/authorizePaymentMethod.d.ts +3 -1
  18. package/lib/chevre/repo/action/authorizePaymentMethod.js +7 -4
  19. package/lib/chevre/repo/action/authorizeTicketedObject.d.ts +3 -1
  20. package/lib/chevre/repo/action/authorizeTicketedObject.js +7 -2
  21. package/lib/chevre/repo/action/checkMovieTicket.d.ts +3 -1
  22. package/lib/chevre/repo/action/checkMovieTicket.js +8 -1
  23. package/lib/chevre/repo/action/create.d.ts +10 -0
  24. package/lib/chevre/repo/action/create.js +17 -0
  25. package/lib/chevre/repo/action/inform.d.ts +38 -0
  26. package/lib/chevre/repo/action/inform.js +146 -0
  27. package/lib/chevre/repo/action/pay.d.ts +3 -1
  28. package/lib/chevre/repo/action/pay.js +7 -4
  29. package/lib/chevre/repo/action/refund.d.ts +3 -1
  30. package/lib/chevre/repo/action/refund.js +7 -4
  31. package/lib/chevre/repo/action/sendEmailMessage.d.ts +10 -0
  32. package/lib/chevre/repo/action/sendEmailMessage.js +17 -0
  33. package/lib/chevre/repo/action/sendOrder.d.ts +10 -0
  34. package/lib/chevre/repo/action/sendOrder.js +16 -0
  35. package/lib/chevre/repo/action/unknown2actionError.d.ts +6 -0
  36. package/lib/chevre/repo/action/unknown2actionError.js +15 -0
  37. package/lib/chevre/repo/action/update.d.ts +48 -0
  38. package/lib/chevre/repo/action/update.js +166 -0
  39. package/lib/chevre/repo/action/use.d.ts +39 -0
  40. package/lib/chevre/repo/action/use.js +153 -0
  41. package/lib/chevre/repo/action.d.ts +5 -101
  42. package/lib/chevre/repo/action.js +7 -453
  43. package/lib/chevre/repo/adminAction.d.ts +87 -0
  44. package/lib/chevre/repo/adminAction.js +170 -0
  45. package/lib/chevre/repo/adminAssetTransaction.d.ts +126 -0
  46. package/lib/chevre/repo/adminAssetTransaction.js +491 -0
  47. package/lib/chevre/repo/adminAsyncAction.d.ts +2 -2
  48. package/lib/chevre/repo/adminScheduledTask.d.ts +1 -1
  49. package/lib/chevre/repo/adminTask.d.ts +25 -8
  50. package/lib/chevre/repo/adminTask.js +31 -32
  51. package/lib/chevre/repo/adminTransaction.d.ts +131 -0
  52. package/lib/chevre/repo/adminTransaction.js +237 -0
  53. package/lib/chevre/repo/aggregateAction.d.ts +8 -11
  54. package/lib/chevre/repo/aggregateAction.js +0 -61
  55. package/lib/chevre/repo/aggregateAssetTransaction.d.ts +43 -0
  56. package/lib/chevre/repo/aggregateAssetTransaction.js +166 -0
  57. package/lib/chevre/repo/aggregateTransaction.d.ts +39 -0
  58. package/lib/chevre/repo/aggregateTransaction.js +166 -0
  59. package/lib/chevre/repo/aggregateUseAction.d.ts +35 -0
  60. package/lib/chevre/repo/aggregateUseAction.js +164 -0
  61. package/lib/chevre/repo/aggregation.d.ts +0 -8
  62. package/lib/chevre/repo/aggregation.js +0 -10
  63. package/lib/chevre/repo/assetTransaction.d.ts +10 -235
  64. package/lib/chevre/repo/assetTransaction.js +48 -636
  65. package/lib/chevre/repo/asyncAction.d.ts +2 -2
  66. package/lib/chevre/repo/authorization.d.ts +0 -6
  67. package/lib/chevre/repo/authorization.js +15 -27
  68. package/lib/chevre/repo/message.d.ts +0 -7
  69. package/lib/chevre/repo/message.js +0 -38
  70. package/lib/chevre/repo/migrateAction.d.ts +48 -0
  71. package/lib/chevre/repo/migrateAction.js +32 -0
  72. package/lib/chevre/repo/mongoose/schemas/action/inform.d.ts +11 -0
  73. package/lib/chevre/repo/mongoose/schemas/action/inform.js +82 -0
  74. package/lib/chevre/repo/mongoose/schemas/action/update.d.ts +12 -0
  75. package/lib/chevre/repo/mongoose/schemas/action/update.js +112 -0
  76. package/lib/chevre/repo/mongoose/schemas/{ownershipInfo.d.ts → action/use.d.ts} +4 -6
  77. package/lib/chevre/repo/mongoose/schemas/action/use.js +92 -0
  78. package/lib/chevre/repo/mongoose/schemas/action.d.ts +1 -3
  79. package/lib/chevre/repo/mongoose/schemas/action.js +22 -7
  80. package/lib/chevre/repo/mongoose/schemas/actionRecipe.d.ts +1 -0
  81. package/lib/chevre/repo/mongoose/schemas/actionRecipe.js +19 -1
  82. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +8 -9
  83. package/lib/chevre/repo/mongoose/schemas/aggregation.js +8 -1
  84. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +95 -76
  85. package/lib/chevre/repo/mongoose/schemas/authorization.js +25 -18
  86. package/lib/chevre/repo/mongoose/schemas/event.js +7 -0
  87. package/lib/chevre/repo/mongoose/schemas/eventOffer.js +7 -0
  88. package/lib/chevre/repo/mongoose/schemas/message.js +8 -1
  89. package/lib/chevre/repo/mongoose/schemas/pendingReservation.js +11 -4
  90. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +1 -0
  91. package/lib/chevre/repo/mongoose/schemas/task.d.ts +2 -5
  92. package/lib/chevre/repo/mongoose/schemas/task.js +134 -118
  93. package/lib/chevre/repo/mongoose/schemas/ticket.js +8 -1
  94. package/lib/chevre/repo/orderInTransaction.d.ts +0 -3
  95. package/lib/chevre/repo/orderInTransaction.js +30 -22
  96. package/lib/chevre/repo/scheduledTask.d.ts +5 -2
  97. package/lib/chevre/repo/scheduledTask.js +3 -25
  98. package/lib/chevre/repo/task.d.ts +45 -171
  99. package/lib/chevre/repo/task.js +20 -475
  100. package/lib/chevre/repo/taskDelayed.d.ts +74 -0
  101. package/lib/chevre/repo/taskDelayed.js +195 -0
  102. package/lib/chevre/repo/taskRunning.d.ts +35 -0
  103. package/lib/chevre/repo/taskRunning.js +89 -0
  104. package/lib/chevre/repo/ticket.d.ts +0 -6
  105. package/lib/chevre/repo/ticket.js +0 -11
  106. package/lib/chevre/repo/transaction.d.ts +1 -187
  107. package/lib/chevre/repo/transaction.js +2 -383
  108. package/lib/chevre/repository.d.ts +50 -10
  109. package/lib/chevre/repository.js +112 -24
  110. package/lib/chevre/service/aggregation/system.d.ts +9 -8
  111. package/lib/chevre/service/aggregation/system.js +5 -5
  112. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +10 -17
  113. package/lib/chevre/service/assetTransaction/refund.js +2 -2
  114. package/lib/chevre/service/asyncAction.d.ts +2 -2
  115. package/lib/chevre/service/asyncAction.js +1 -4
  116. package/lib/chevre/service/asyncActionHandler/onOperationFailed.d.ts +2 -2
  117. package/lib/chevre/service/asyncActionHandler/onOperationFailed.js +0 -2
  118. package/lib/chevre/service/asyncActionHandler.d.ts +4 -4
  119. package/lib/chevre/service/asyncActionHandler.js +11 -13
  120. package/lib/chevre/service/event/processUpdateMovieTheater.d.ts +4 -2
  121. package/lib/chevre/service/event/processUpdateMovieTheater.js +3 -3
  122. package/lib/chevre/service/event.d.ts +4 -2
  123. package/lib/chevre/service/event.js +3 -3
  124. package/lib/chevre/service/notification/sendEmailMessage.d.ts +4 -2
  125. package/lib/chevre/service/notification/sendEmailMessage.js +3 -3
  126. package/lib/chevre/service/notification/triggerWebhook.d.ts +4 -2
  127. package/lib/chevre/service/notification/triggerWebhook.js +5 -16
  128. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -3
  129. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +0 -4
  130. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +19 -19
  131. package/lib/chevre/service/offer/onEventChanged.js +0 -2
  132. package/lib/chevre/service/order/confirmPayTransaction.js +4 -1
  133. package/lib/chevre/service/order/createAccountingReportIfNotExist.d.ts +1 -1
  134. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +2 -56
  135. package/lib/chevre/service/order/deleteOrder.d.ts +2 -2
  136. package/lib/chevre/service/order/deleteOrder.js +1 -2
  137. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +1 -49
  138. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +2 -2
  139. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +2 -4
  140. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +2 -4
  141. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +4 -4
  142. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +2 -2
  143. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +2 -10
  144. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +2 -2
  145. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +4 -8
  146. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +2 -2
  147. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +1 -1
  148. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +5 -11
  149. package/lib/chevre/service/order/onOrderUpdated/factory.js +0 -3
  150. package/lib/chevre/service/order/returnOrder.d.ts +0 -2
  151. package/lib/chevre/service/order/returnOrder.js +8 -40
  152. package/lib/chevre/service/order/sendOrder.d.ts +4 -6
  153. package/lib/chevre/service/order/sendOrder.js +30 -72
  154. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +0 -4
  155. package/lib/chevre/service/payment/any/findAcceptAction.js +19 -19
  156. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +0 -4
  157. package/lib/chevre/service/payment/any/findAuthorizeAction.js +19 -19
  158. package/lib/chevre/service/payment/any/findCheckAction.d.ts +0 -4
  159. package/lib/chevre/service/payment/any/findCheckAction.js +19 -19
  160. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +1 -1
  161. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +0 -2
  162. package/lib/chevre/service/payment/any/publishPaymentUrl.js +2 -2
  163. package/lib/chevre/service/project.d.ts +0 -6
  164. package/lib/chevre/service/project.js +0 -2
  165. package/lib/chevre/service/reserve/cancelReservation.js +3 -3
  166. package/lib/chevre/service/reserve/checkInReservation.js +2 -2
  167. package/lib/chevre/service/reserve/confirmReservation.js +1 -1
  168. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -2
  169. package/lib/chevre/service/reserve/useReservation.d.ts +4 -0
  170. package/lib/chevre/service/reserve/useReservation.js +6 -24
  171. package/lib/chevre/service/scheduledTask.d.ts +1 -4
  172. package/lib/chevre/service/scheduledTask.js +3 -10
  173. package/lib/chevre/service/scheduledTaskHandler/onOperationFailed.js +1 -2
  174. package/lib/chevre/service/scheduledTaskHandler.js +0 -13
  175. package/lib/chevre/service/task/acceptCOAOffer.js +1 -14
  176. package/lib/chevre/service/task/authorizePayment.js +1 -7
  177. package/lib/chevre/service/task/checkMovieTicket.js +1 -7
  178. package/lib/chevre/service/task/checkResource.js +14 -57
  179. package/lib/chevre/service/task/confirmReserveTransaction.js +3 -1
  180. package/lib/chevre/service/task/createAccountingReport.js +8 -15
  181. package/lib/chevre/service/task/deleteTransaction.js +10 -41
  182. package/lib/chevre/service/task/importEventsFromCOA.js +4 -2
  183. package/lib/chevre/service/task/onAuthorizationCreated.js +2 -2
  184. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.d.ts +4 -2
  185. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +4 -4
  186. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.d.ts +4 -2
  187. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +4 -4
  188. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.d.ts +4 -2
  189. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +4 -4
  190. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.d.ts +4 -2
  191. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +4 -4
  192. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.d.ts +4 -2
  193. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +4 -4
  194. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.d.ts +4 -2
  195. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +4 -4
  196. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.d.ts +4 -2
  197. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +4 -4
  198. package/lib/chevre/service/task/onResourceDeleted.js +4 -3
  199. package/lib/chevre/service/task/onResourceUpdated/onAggregateOfferUpdated.js +0 -1
  200. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +0 -1
  201. package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +0 -1
  202. package/lib/chevre/service/task/onResourceUpdated.js +0 -8
  203. package/lib/chevre/service/task/publishPaymentUrl.js +2 -13
  204. package/lib/chevre/service/task/returnOrder.js +2 -5
  205. package/lib/chevre/service/task/returnPayTransaction.js +2 -5
  206. package/lib/chevre/service/task/sendEmailMessage.js +2 -2
  207. package/lib/chevre/service/task/sendOrder.js +4 -8
  208. package/lib/chevre/service/task/syncResourcesFromCOA.js +31 -23
  209. package/lib/chevre/service/task/triggerWebhook.js +4 -2
  210. package/lib/chevre/service/task/useReservation.js +4 -0
  211. package/lib/chevre/service/task/voidReserveTransaction.js +5 -8
  212. package/lib/chevre/service/task.d.ts +3 -22
  213. package/lib/chevre/service/task.js +8 -40
  214. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +0 -1
  215. package/lib/chevre/service/taskHandler/onOperationFailed.d.ts +3 -2
  216. package/lib/chevre/service/taskHandler/onOperationFailed.js +5 -16
  217. package/lib/chevre/service/taskHandler.d.ts +1 -2
  218. package/lib/chevre/service/taskHandler.js +7 -19
  219. package/lib/chevre/service/transaction/deleteTransaction/deletePayTransactionsByPlaceOrder.js +2 -2
  220. package/lib/chevre/service/transaction/deleteTransaction/deleteReservationsByPlaceOrder.js +2 -2
  221. package/lib/chevre/service/transaction/deleteTransaction.d.ts +8 -4
  222. package/lib/chevre/service/transaction/deleteTransaction.js +7 -7
  223. package/lib/chevre/service/transaction/placeOrder/confirm.js +1 -1
  224. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.d.ts +8 -4
  225. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +55 -103
  226. package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +2 -0
  227. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +14 -10
  228. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.d.ts +13 -3
  229. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +48 -51
  230. package/lib/chevre/service/transaction/returnOrder.d.ts +2 -0
  231. package/lib/chevre/service/transaction/returnOrder.js +15 -13
  232. package/lib/chevre/service/transaction.d.ts +2 -0
  233. package/lib/chevre/service/transaction.js +0 -2
  234. package/lib/chevre/service/validation/validateOrder.d.ts +0 -4
  235. package/lib/chevre/service/validation/validateOrder.js +3 -3
  236. package/lib/chevre/taskSettings.d.ts +4 -4
  237. package/package.json +2 -2
  238. package/lib/chevre/repo/action/checkThing.d.ts +0 -8
  239. package/lib/chevre/repo/action/checkThing.js +0 -13
  240. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +0 -227
  241. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.d.ts +0 -25
  242. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.js +0 -100
  243. package/lib/chevre/repo/ownershipInfo.d.ts +0 -122
  244. package/lib/chevre/repo/ownershipInfo.js +0 -466
  245. package/lib/chevre/service/validation/validateEvent.d.ts +0 -11
  246. package/lib/chevre/service/validation/validateEvent.js +0 -21
@@ -1,468 +1,22 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.ActionRepo = void 0;
7
- const moment_1 = __importDefault(require("moment"));
8
- const factory_1 = require("../factory");
9
- // import { createSchema as createRecipeSchema, IModel as IActionRecipeModel, modelName as recipeModelName } from './mongoose/schemas/actionRecipe';
10
- const actionProcess_1 = require("./action/actionProcess");
4
+ const actionProcess_1 = require("./action/anyAction/actionProcess");
11
5
  /**
12
6
  * アクションリポジトリ
13
7
  */
14
8
  class ActionRepo extends actionProcess_1.ActionProcessRepo {
15
- // private readonly actionModel: IActionModel;
16
- // private readonly actionRecipeModel: IActionRecipeModel;
17
- // constructor(connection: Connection) {
18
- // this.actionModel = connection.model(modelName, createSchema());
19
- // this.actionRecipeModel = connection.model(recipeModelName, createRecipeSchema());
20
- // }
9
+ constructor(connection) {
10
+ super({ connection }, {
11
+ expireAfterSeconds: actionProcess_1.DEFAULT_EXPIRE_AFTER_SECONDS,
12
+ recipeExpireAfterSeconds: actionProcess_1.RECIPE_DEFAULT_EXPIRE_AFTER_SECONDS
13
+ });
14
+ }
21
15
  /**
22
16
  * 汎用アクション検索
23
17
  */
24
18
  async findActionsByType(params, inclusion) {
25
19
  return (this.findAnyActions(params, inclusion));
26
20
  }
27
- // /**
28
- // * アクション開始
29
- // */
30
- // public async start<T extends factory.actionType>(
31
- // attributes: factory.action.IAttributes<T, any, any>,
32
- // options?: {
33
- // recipe?: IRecipeAsActionAttributes;
34
- // }
35
- // ): Promise<Pick<IAction<T>, 'id' | 'typeOf' | 'startDate'>> {
36
- // const startDate = new Date();
37
- // const creatingAction: Omit<factory.action.IAction<factory.action.IAttributes<T, any, any>>, 'id'> = {
38
- // ...attributes,
39
- // actionStatus: factory.actionStatusType.ActiveActionStatus,
40
- // startDate
41
- // };s
42
- // // reimplemnt with insertMany(2024-08-29~)
43
- // const result = await this.actionModel.insertMany(creatingAction, { rawResult: true });
44
- // const id = result.insertedIds?.[0]?.toHexString();
45
- // if (typeof id !== 'string') {
46
- // throw new factory.errors.Internal('action not saved');
47
- // }
48
- // // add recipe(2024-06-09~)
49
- // const savingRecipe = options?.recipe;
50
- // if (savingRecipe?.typeOf === 'Recipe') {
51
- // await this.upsertRecipe({ ...savingRecipe, recipeFor: { id, typeOf: creatingAction.typeOf } });
52
- // }
53
- // return { id, startDate, typeOf: creatingAction.typeOf };
54
- // }
55
- // public async completeWithVoid(params: {
56
- // typeOf: factory.actionType;
57
- // id: string;
58
- // result: any;
59
- // recipe?: IRecipeAsActionAttributes;
60
- // }): Promise<void> {
61
- // if (params.recipe?.typeOf === 'Recipe') {
62
- // await this.upsertRecipe({ ...params.recipe, recipeFor: { id: params.id, typeOf: params.typeOf } });
63
- // }
64
- // const doc = await this.actionModel.findOneAndUpdate(
65
- // {
66
- // _id: { $eq: params.id },
67
- // typeOf: { $eq: params.typeOf }
68
- // },
69
- // {
70
- // $set: {
71
- // actionStatus: factory.actionStatusType.CompletedActionStatus,
72
- // result: params.result,
73
- // endDate: new Date()
74
- // }
75
- // },
76
- // { new: false, projection: { _id: 1 } }
77
- // )
78
- // .lean<{ _id: ObjectId }>()
79
- // .exec();
80
- // if (doc === null) {
81
- // throw new factory.errors.NotFound(this.actionModel.modelName);
82
- // }
83
- // }
84
- // /**
85
- // * アクション取消
86
- // */
87
- // public async cancelWithVoid(params: {
88
- // typeOf: factory.actionType.AcceptAction | factory.actionType.AuthorizeAction; // 現時点でAcceptAction,AuthorizeActionのみ対応
89
- // id: string;
90
- // cancelAction?: Pick<ICancelActionAction, 'agent' | 'sameAs' | 'startTime'>;
91
- // }): Promise<void> {
92
- // const cancelDate = new Date();
93
- // const cancelAction: ICancelActionAction | undefined = (params.cancelAction !== undefined)
94
- // ? {
95
- // ...params.cancelAction,
96
- // endTime: cancelDate,
97
- // typeOf: factory.actionType.CancelAction
98
- // }
99
- // : undefined;
100
- // const doc = await this.actionModel.findOneAndUpdate(
101
- // {
102
- // _id: { $eq: params.id },
103
- // typeOf: { $eq: params.typeOf },
104
- // actionStatus: { $ne: factory.actionStatusType.CanceledActionStatus } // 冪等性確保(2024-05-26~)
105
- // },
106
- // {
107
- // $set: {
108
- // actionStatus: factory.actionStatusType.CanceledActionStatus,
109
- // ...(cancelAction !== undefined) ? { cancelAction } : undefined // cancelAction連携(2024-05-26~)
110
- // }
111
- // },
112
- // { new: false, projection: { _id: 1 } }
113
- // )
114
- // .lean<{ _id: ObjectId }>()
115
- // .exec();
116
- // if (doc === null) {
117
- // // 既にCanceledActionStatusであればok
118
- // const existingAction = <Pick<IAction<typeof params.typeOf>, 'actionStatus'>>
119
- // await this.findById({ id: params.id, typeOf: params.typeOf }, ['actionStatus'], []);
120
- // if (existingAction.actionStatus !== factory.actionStatusType.CanceledActionStatus) {
121
- // throw new factory.errors.NotFound(this.actionModel.modelName);
122
- // }
123
- // }
124
- // // endDateが存在しなければセット(2024-04-22~)
125
- // await this.actionModel.updateOne(
126
- // {
127
- // _id: { $eq: params.id },
128
- // endDate: { $exists: false }
129
- // },
130
- // { $set: { endDate: cancelDate } }
131
- // )
132
- // .exec();
133
- // }
134
- // /**
135
- // * アクション失敗
136
- // */
137
- // public async giveUp(params: {
138
- // typeOf: factory.actionType;
139
- // id: string;
140
- // error: Error | Error[];
141
- // recipe?: IRecipeAsActionAttributes;
142
- // }): Promise<void> {
143
- // const actionError: IActionError | IActionError[] = (Array.isArray(params.error))
144
- // ? params.error.map((e) => ({ ...e, message: e.message, name: e.name }))
145
- // : { ...params.error, message: params.error.message, name: params.error.name };
146
- // if (params.recipe?.typeOf === 'Recipe') {
147
- // await this.upsertRecipe({ ...params.recipe, recipeFor: { id: params.id, typeOf: params.typeOf } });
148
- // }
149
- // const doc = await this.actionModel.findOneAndUpdate(
150
- // {
151
- // typeOf: { $eq: params.typeOf },
152
- // _id: { $eq: params.id }
153
- // },
154
- // {
155
- // $set: {
156
- // actionStatus: factory.actionStatusType.FailedActionStatus,
157
- // error: actionError,
158
- // endDate: new Date()
159
- // }
160
- // },
161
- // { new: true, projection: { _id: 1 } }
162
- // )
163
- // .lean<{ _id: ObjectId }>()
164
- // .exec();
165
- // if (doc === null) {
166
- // throw new factory.errors.NotFound(this.actionModel.modelName);
167
- // }
168
- // }
169
- // /**
170
- // * アクション再開
171
- // */
172
- // public async reStart(params: {
173
- // typeOf: factory.actionType;
174
- // id: string;
175
- // recipe?: IRecipeAsActionAttributes;
176
- // }): Promise<void> {
177
- // const doc = await this.actionModel.findOneAndUpdate(
178
- // {
179
- // _id: { $eq: params.id },
180
- // typeOf: { $eq: params.typeOf },
181
- // actionStatus: { $eq: factory.actionStatusType.CompletedActionStatus }
182
- // },
183
- // {
184
- // $set: {
185
- // actionStatus: factory.actionStatusType.ActiveActionStatus,
186
- // startDate: new Date()
187
- // },
188
- // $unset: { endDate: 1 }
189
- // },
190
- // { new: false, projection: { _id: 1 } }
191
- // )
192
- // .lean<{ _id: ObjectId }>()
193
- // .exec();
194
- // if (doc === null) {
195
- // throw new factory.errors.NotFound(this.actionModel.modelName);
196
- // }
197
- // // add recipe(2024-06-09~)
198
- // if (params.recipe?.typeOf === 'Recipe') {
199
- // await this.upsertRecipe({ ...params.recipe, recipeFor: { id: params.id, typeOf: params.typeOf } });
200
- // }
201
- // }
202
- // /**
203
- // * 一定期間ActiveActionStatusのアクションをFailedActionStatusにする
204
- // */
205
- // public async giveUpStartDatePassedCertainPeriod(params: {
206
- // id?: { $eq?: string };
207
- // error: any;
208
- // startDate: { $lt: Date };
209
- // }): Promise<any> {
210
- // return this.actionModel.updateMany(
211
- // {
212
- // actionStatus: { $eq: factory.actionStatusType.ActiveActionStatus },
213
- // // 一定期間過ぎたもの
214
- // startDate: { $lt: params.startDate.$lt },
215
- // ...(typeof params.id?.$eq === 'string') ? { _id: { $eq: params.id.$eq } } : undefined
216
- // },
217
- // {
218
- // actionStatus: factory.actionStatusType.FailedActionStatus,
219
- // error: params.error,
220
- // endDate: new Date()
221
- // }
222
- // )
223
- // .exec();
224
- // }
225
- // public async findById<T extends factory.actionType>(
226
- // params: {
227
- // typeOf: T;
228
- // id: string;
229
- // },
230
- // inclusion?: IKeyOfProjection[],
231
- // exclusion?: IKeyOfProjection[]
232
- // ): Promise<IAction<T>> {
233
- // let positiveProjectionFields: IKeyOfProjection[] = AVAILABLE_PROJECT_FIELDS;
234
- // if (Array.isArray(inclusion) && inclusion.length > 0) {
235
- // positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PROJECT_FIELDS.includes(key));
236
- // } else {
237
- // if (Array.isArray(exclusion) && exclusion.length > 0) {
238
- // positiveProjectionFields = positiveProjectionFields.filter((key) => !exclusion.includes(key));
239
- // }
240
- // }
241
- // const projection: ProjectionType<IAction<T>> = {
242
- // _id: 0,
243
- // id: { $toString: '$_id' },
244
- // ...Object.fromEntries<1>(positiveProjectionFields.map((key) => ([key, 1])))
245
- // };
246
- // const doc = await this.actionModel.findOne(
247
- // {
248
- // typeOf: { $eq: params.typeOf },
249
- // _id: { $eq: params.id }
250
- // },
251
- // projection
252
- // )
253
- // .lean<IAction<T>>() // 2024-08-26~
254
- // .exec();
255
- // if (doc === null) {
256
- // throw new factory.errors.NotFound(this.actionModel.modelName);
257
- // }
258
- // return doc;
259
- // }
260
- // public async findPayAction(params: {
261
- // project: { id: string };
262
- // paymentMethodId: string;
263
- // actionStatus?: { $in?: factory.actionStatusType[] };
264
- // }): Promise<factory.action.trade.pay.IAction | undefined> {
265
- // const payActions = await this.findActionsByType<factory.actionType.PayAction>(
266
- // {
267
- // limit: 1,
268
- // page: 1,
269
- // actionStatus: (Array.isArray(params.actionStatus?.$in))
270
- // ? { $in: params.actionStatus?.$in }
271
- // : { $in: [factory.actionStatusType.CompletedActionStatus] },
272
- // project: { id: { $eq: params.project.id } },
273
- // typeOf: { $eq: factory.actionType.PayAction },
274
- // object: { paymentMethod: { paymentMethodId: { $eq: params.paymentMethodId } } }
275
- // },
276
- // []
277
- // ) as factory.action.trade.pay.IAction[];
278
- // return payActions.shift();
279
- // }
280
- /**
281
- * 取引に対するアクションを検索する
282
- */
283
- async searchByPurpose(params) {
284
- return (this.findAnyActionsByPurpose(params));
285
- }
286
- /**
287
- * 注文番号から、注文に対するアクションを検索する
288
- */
289
- async searchByOrderNumber(params) {
290
- const filter = {
291
- $or: [
292
- { 'object.orderNumber': { $exists: true, $eq: params.orderNumber } },
293
- { 'purpose.orderNumber': { $exists: true, $eq: params.orderNumber } },
294
- // consider inform returnAction(2025-01-22~)
295
- { 'about.orderNumber': { $exists: true, $eq: params.orderNumber } },
296
- // consider reserveAction,cancelReservationAction(2025-02-17~)
297
- { 'instrument.orderNumber': { $exists: true, $eq: params.orderNumber } }
298
- ]
299
- };
300
- const projection = {
301
- _id: 0,
302
- id: { $toString: '$_id' },
303
- ...Object.fromEntries(actionProcess_1.AVAILABLE_PROJECT_FIELDS.map((key) => ([key, 1])))
304
- };
305
- const query = this.actionModel.find(filter, projection);
306
- // .select({ __v: 0, createdAt: 0, updatedAt: 0 });
307
- /* istanbul ignore else */
308
- if (params.sort?.startDate !== undefined) {
309
- query.sort({ startDate: params.sort.startDate });
310
- }
311
- return query
312
- .lean() // 2024-08-26~
313
- .exec();
314
- }
315
- /**
316
- * 注文番号から、注文に対するアクションを削除する
317
- */
318
- async deleteActionsByOrderNumber(params) {
319
- const { project, orderNumber } = params;
320
- if (typeof project.id !== 'string' || project.id === '') {
321
- throw new factory_1.factory.errors.ArgumentNull('project.id');
322
- }
323
- if (typeof orderNumber !== 'string' || orderNumber === '') {
324
- throw new factory_1.factory.errors.ArgumentNull('orderNumber');
325
- }
326
- const filters = [
327
- {
328
- identifier: 'byObject',
329
- filter: {
330
- 'project.id': { $eq: project.id },
331
- 'object.orderNumber': { $exists: true, $eq: orderNumber }
332
- }
333
- },
334
- {
335
- identifier: 'byPurpose',
336
- filter: {
337
- 'project.id': { $eq: project.id },
338
- 'purpose.orderNumber': { $exists: true, $eq: orderNumber }
339
- }
340
- },
341
- {
342
- identifier: 'byAbout',
343
- filter: {
344
- 'project.id': { $eq: project.id },
345
- 'about.orderNumber': { $exists: true, $eq: orderNumber }
346
- }
347
- },
348
- {
349
- identifier: 'byInstrument',
350
- filter: {
351
- 'project.id': { $eq: project.id },
352
- 'instrument.orderNumber': { $exists: true, $eq: orderNumber }
353
- }
354
- },
355
- ];
356
- return Promise.all(filters.map(async ({ identifier, filter }) => {
357
- return this.actionModel.deleteMany(filter)
358
- .exec()
359
- .then((result) => {
360
- return {
361
- identifier,
362
- // n: result?.n,
363
- // opTime: result.opTime,
364
- // ok: result?.ok,
365
- // operationTime,
366
- deletedCount: result?.deletedCount
367
- };
368
- });
369
- }));
370
- }
371
- async deleteByProject(params) {
372
- await this.actionModel.deleteMany({
373
- 'project.id': { $eq: params.project.id }
374
- })
375
- .exec();
376
- }
377
- /**
378
- * 開始日時を一定期間過ぎたアクションを削除する
379
- */
380
- async deleteStartDatePassedCertainPeriod(params) {
381
- return this.actionModel.deleteMany({
382
- startDate: {
383
- $lt: params.$lt
384
- }
385
- })
386
- .exec();
387
- }
388
- /**
389
- * 終了日時を一定期間過ぎたアクションを削除する
390
- * 作成日時を一定期間過ぎたアクションレシピも削除する
391
- */
392
- async deleteEndDatePassedCertainPeriod(params) {
393
- const { $lt } = params;
394
- if ($lt instanceof Date) {
395
- const deleteActionsResult = await this.actionModel.deleteMany({
396
- // 終了日時を一定期間過ぎたもの
397
- endDate: { $exists: true, $lt }
398
- })
399
- .exec();
400
- // clean actionRecipes(2025-01-10~)
401
- const dateCreatedLt = (0, moment_1.default)($lt)
402
- .add(-1, 'day') // レシピ作成とアクション終了の時間差を考慮
403
- .toDate();
404
- const deleteActionRecipesResult = await this.actionRecipeModel.deleteMany({
405
- dateCreated: { $lt: dateCreatedLt }
406
- })
407
- .exec();
408
- return { deleteActionRecipesResult, deleteActionsResult };
409
- }
410
- }
411
- /**
412
- * 取引からアクションを削除する
413
- */
414
- async deleteActionsByTransactionId(params) {
415
- const { project, transaction } = params;
416
- if (typeof project.id !== 'string' || project.id === '') {
417
- throw new factory_1.factory.errors.ArgumentNull('project.id');
418
- }
419
- if (typeof transaction.id !== 'string' || transaction.id === '') {
420
- throw new factory_1.factory.errors.ArgumentNull('transaction.id ');
421
- }
422
- const filters = [
423
- {
424
- identifier: 'byPurpose',
425
- filter: {
426
- 'project.id': { $eq: project.id },
427
- typeOf: { $in: params.typeOf.$in },
428
- 'purpose.id': { $exists: true, $eq: transaction.id },
429
- 'purpose.typeOf': { $exists: true, $eq: transaction.typeOf }
430
- }
431
- },
432
- // instrumentによるアクション削除にも対応(2026-07-10~)
433
- {
434
- identifier: 'byInstrument',
435
- filter: {
436
- 'project.id': { $eq: project.id },
437
- // typeOf: { $in: params.typeOf.$in }, // typOfでフィルターしない
438
- 'instrument.id': { $exists: true, $eq: transaction.id },
439
- 'instrument.typeOf': { $exists: true, $eq: transaction.typeOf }
440
- }
441
- }
442
- ];
443
- return Promise.all(filters.map(async ({ identifier, filter }) => {
444
- return this.actionModel.deleteMany(filter)
445
- .exec()
446
- .then((result) => {
447
- return {
448
- identifier,
449
- // n: result?.n,
450
- // opTime: result.opTime,
451
- // ok: result?.ok,
452
- // operationTime,
453
- deletedCount: result?.deletedCount
454
- };
455
- });
456
- }));
457
- }
458
- getCursor(conditions, projection) {
459
- return this.actionModel.find(conditions, projection)
460
- .sort({ startDate: factory_1.factory.sortType.Descending })
461
- .cursor();
462
- }
463
- async unsetUnnecessaryFields(params) {
464
- return this.actionModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
465
- .exec();
466
- }
467
21
  }
468
22
  exports.ActionRepo = ActionRepo;
@@ -0,0 +1,87 @@
1
+ import type { Connection, FilterQuery } from 'mongoose';
2
+ import { factory } from '../factory';
3
+ import type { IDocType } from './mongoose/schemas/action';
4
+ import { IAction, ActionProcessRepo } from './action/anyAction/actionProcess';
5
+ import { StartableActionType, IAvailableActionRecipe } from './action';
6
+ export type IAction4transaction<T extends factory.actionType.AcceptAction | factory.actionType.AuthorizeAction> = T extends factory.actionType.AcceptAction ? factory.action.accept.coaOffer.IAction | factory.action.accept.pay.IAction : T extends factory.actionType.AuthorizeAction ? (factory.action.authorize.offer.eventService.IAction | factory.action.authorize.paymentMethod.any.IAction) : never;
7
+ export interface IDeleteActionResult {
8
+ identifier: string;
9
+ deletedCount?: number;
10
+ }
11
+ /**
12
+ * アクション管理リポジトリ
13
+ */
14
+ export declare class AdminActionRepo extends ActionProcessRepo<IAction<StartableActionType>, IAvailableActionRecipe> {
15
+ constructor(connection: Connection);
16
+ /**
17
+ * 取引に対するアクションを検索する
18
+ */
19
+ searchByPurpose<T extends factory.actionType.AuthorizeAction>(params: {
20
+ typeOf?: T;
21
+ purpose: {
22
+ typeOf: factory.transactionType;
23
+ id: string;
24
+ };
25
+ object?: {
26
+ typeOf?: {
27
+ $eq?: factory.action.authorize.offer.eventService.ObjectType.SeatReservation | factory.action.authorize.paymentMethod.any.ResultType.Payment;
28
+ };
29
+ paymentMethodId?: {
30
+ $eq?: string;
31
+ };
32
+ };
33
+ actionStatus?: {
34
+ $eq?: factory.actionStatusType.CompletedActionStatus;
35
+ };
36
+ sort?: factory.action.ISortOrder;
37
+ }): Promise<IAction4transaction<T>[]>;
38
+ /**
39
+ * 注文番号から、注文に対するアクションを検索する
40
+ */
41
+ searchByOrderNumber(params: {
42
+ orderNumber: string;
43
+ sort?: factory.action.ISortOrder;
44
+ }): Promise<IAction<factory.actionType>[]>;
45
+ /**
46
+ * 注文番号から、注文に対するアクションを削除する
47
+ */
48
+ deleteActionsByOrderNumber(params: {
49
+ project: {
50
+ id: string;
51
+ };
52
+ orderNumber: string;
53
+ }): Promise<IDeleteActionResult[]>;
54
+ deleteByProject(params: {
55
+ project: {
56
+ id: string;
57
+ };
58
+ }): Promise<void>;
59
+ /**
60
+ * 取引からアクションを削除する
61
+ */
62
+ deleteActionsByTransactionId(params: {
63
+ project: {
64
+ id: string;
65
+ };
66
+ transaction: {
67
+ typeOf: factory.transactionType;
68
+ id: string;
69
+ };
70
+ typeOf: {
71
+ $in: factory.actionType[];
72
+ };
73
+ }): Promise<IDeleteActionResult[]>;
74
+ getCursor(conditions: any, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & IDocType & {
75
+ _id: import("mongoose").Types.ObjectId;
76
+ } & {
77
+ __v: number;
78
+ }, import("mongoose").QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & IDocType & {
79
+ _id: import("mongoose").Types.ObjectId;
80
+ } & {
81
+ __v: number;
82
+ }) | null>;
83
+ unsetUnnecessaryFields(params: {
84
+ filter: FilterQuery<factory.action.IAction<factory.action.IAttributes<factory.actionType, any, any>>>;
85
+ $unset: any;
86
+ }): Promise<import("mongoose").UpdateWriteOpResult>;
87
+ }