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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/lib/chevre/emailMessageBuilder.d.ts +10 -4
  2. package/lib/chevre/emailMessageBuilder.js +48 -73
  3. package/lib/chevre/repo/acceptedOffer.d.ts +1 -5
  4. package/lib/chevre/repo/acceptedOffer.js +5 -5
  5. package/lib/chevre/repo/acceptedOfferInReserve.d.ts +1 -5
  6. package/lib/chevre/repo/acceptedOfferInReserve.js +4 -4
  7. package/lib/chevre/repo/emailMessage.d.ts +18 -9
  8. package/lib/chevre/repo/emailMessage.js +26 -36
  9. package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.d.ts +1 -3
  10. package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.js +2 -3
  11. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +9 -1
  12. package/lib/chevre/repo/mongoose/schemas/emailMessages.js +5 -20
  13. package/lib/chevre/repo/mongoose/schemas/order.d.ts +4 -0
  14. package/lib/chevre/repo/mongoose/schemas/order.js +11 -110
  15. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +0 -6
  16. package/lib/chevre/repo/order.d.ts +9 -6
  17. package/lib/chevre/repo/order.js +45 -26
  18. package/lib/chevre/repo/orderInTransaction.d.ts +50 -32
  19. package/lib/chevre/repo/orderInTransaction.js +109 -73
  20. package/lib/chevre/repo/orderNumber.d.ts +4 -0
  21. package/lib/chevre/repo/orderNumber.js +32 -60
  22. package/lib/chevre/repo/passport.d.ts +5 -2
  23. package/lib/chevre/repo/transaction/placeOrder.js +12 -10
  24. package/lib/chevre/repo/transaction.d.ts +6 -2
  25. package/lib/chevre/repo/transaction.js +6 -2
  26. package/lib/chevre/service/assetTransaction/reserve/start.d.ts +0 -2
  27. package/lib/chevre/service/offer/any.d.ts +3 -8
  28. package/lib/chevre/service/offer/any.js +7 -6
  29. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +0 -2
  30. package/lib/chevre/service/offer/event/authorize.d.ts +0 -4
  31. package/lib/chevre/service/offer/event/authorize.js +5 -6
  32. package/lib/chevre/service/offer/event/voidTransaction.js +29 -17
  33. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +16 -12
  34. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.d.ts +0 -6
  35. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +10 -12
  36. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.d.ts +1 -1
  37. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +7 -7
  38. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +21 -17
  39. package/lib/chevre/service/order/deleteOrder.js +1 -1
  40. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.d.ts +4 -1
  41. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +1 -26
  42. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +3 -2
  43. package/lib/chevre/service/order/placeOrder/factory.d.ts +1 -1
  44. package/lib/chevre/service/order/placeOrder/factory.js +10 -8
  45. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.d.ts +1 -3
  46. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +3 -15
  47. package/lib/chevre/service/order/placeOrder.js +6 -6
  48. package/lib/chevre/service/order.d.ts +1 -2
  49. package/lib/chevre/service/order.js +1 -5
  50. package/lib/chevre/service/payment/any/authorize/fixOrderAsNeeded.d.ts +2 -4
  51. package/lib/chevre/service/payment/any/authorize/fixOrderAsNeeded.js +4 -6
  52. package/lib/chevre/service/payment/any/authorize.d.ts +2 -0
  53. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +0 -4
  54. package/lib/chevre/service/payment/any/publishPaymentUrl.js +5 -8
  55. package/lib/chevre/service/reserve/findByCode.js +1 -1
  56. package/lib/chevre/service/reserve/searchByOrder.js +1 -1
  57. package/lib/chevre/service/task/acceptCOAOffer.js +8 -10
  58. package/lib/chevre/service/task/authorizePayment.js +2 -6
  59. package/lib/chevre/service/task/confirmReserveTransaction.js +1 -1
  60. package/lib/chevre/service/task/payment/payByTask.js +1 -1
  61. package/lib/chevre/service/task/publishPaymentUrl.js +6 -9
  62. package/lib/chevre/service/transaction/placeOrder/confirm/factory/result.d.ts +7 -2
  63. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.d.ts +3 -3
  64. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +8 -23
  65. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.d.ts +3 -3
  66. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +1 -6
  67. package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +2 -7
  68. package/lib/chevre/service/transaction/placeOrder/confirm.js +38 -35
  69. package/lib/chevre/service/transaction/placeOrder/issueOrderNumberIfNotExist.d.ts +2 -0
  70. package/lib/chevre/service/transaction/placeOrder/issueOrderNumberIfNotExist.js +1 -0
  71. package/lib/chevre/service/transaction/placeOrder/start/factory.d.ts +19 -4
  72. package/lib/chevre/service/transaction/placeOrder/start/factory.js +23 -12
  73. package/lib/chevre/service/transaction/placeOrder/start.d.ts +7 -4
  74. package/lib/chevre/service/transaction/placeOrder/start.js +23 -2
  75. package/lib/chevre/service/transaction/placeOrder/updateAgent.d.ts +0 -4
  76. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +20 -22
  77. package/lib/chevre/service/transaction/placeOrder.d.ts +1 -2
  78. package/lib/chevre/service/transaction/placeOrder.js +1 -3
  79. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +2 -37
  80. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.d.ts +2 -2
  81. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +3 -18
  82. package/lib/chevre/service/transaction/returnOrder/potentialActions.d.ts +0 -1
  83. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +0 -4
  84. package/lib/chevre/service/transaction/returnOrder/preStart.js +1 -1
  85. package/lib/chevre/service/transaction/returnOrder.d.ts +0 -2
  86. package/lib/chevre/service/transaction/returnOrder.js +13 -12
  87. package/lib/chevre/service/validation/validateOrder.js +1 -1
  88. package/lib/chevre/service.d.ts +0 -2
  89. package/lib/chevre/service.js +0 -2
  90. package/package.json +2 -2
  91. package/lib/chevre/factory/order.d.ts +0 -2
  92. package/lib/chevre/factory/order.js +0 -5
  93. package/lib/chevre/service/order/placeOrderWithoutTransaction.d.ts +0 -22
  94. package/lib/chevre/service/order/placeOrderWithoutTransaction.js +0 -51
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fixOrderAsNeeded = fixOrderAsNeeded;
4
4
  const factory_1 = require("../../../../factory");
5
5
  const publishConfirmationNumberIfNotExist_1 = require("../../../transaction/placeOrder/publishConfirmationNumberIfNotExist");
6
- const issueOrderNumberIfNotExist_1 = require("../../../transaction/placeOrder/issueOrderNumberIfNotExist");
7
6
  function fixOrderAsNeeded(params) {
8
7
  return async (repos) => {
9
8
  const orderDate = new Date();
@@ -17,12 +16,11 @@ function fixOrderAsNeeded(params) {
17
16
  object: { orderDate }
18
17
  })(repos);
19
18
  // }
20
- // publish orderNumber(2025-02-14~)
21
- const orderNumber = await (0, issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist)({
19
+ // 注文ドキュメントを参照(2026-06-24~)
20
+ const orderNumber = await repos.orderInTransaction.findOrderNumberByIdentifier({
21
+ identifier: params.purpose.id,
22
22
  project: { id: params.project.id },
23
- id: params.purpose.id,
24
- object: { orderDate }
25
- })(repos);
23
+ }, { onlyPlaceOrder: true });
26
24
  return { confirmationNumber, orderNumber };
27
25
  };
28
26
  }
@@ -14,6 +14,7 @@ import type { CredentialsRepo } from '../../../repo/credentials';
14
14
  import type { EventRepo } from '../../../repo/event';
15
15
  import type { EventSeriesRepo } from '../../../repo/eventSeries';
16
16
  import type { IssuerRepo } from '../../../repo/issuer';
17
+ import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
17
18
  import type { OrderNumberRepo } from '../../../repo/orderNumber';
18
19
  import type { PaymentServiceRepo } from '../../../repo/paymentService';
19
20
  import type { PaymentServiceProviderRepo } from '../../../repo/paymentServiceProvider';
@@ -43,6 +44,7 @@ interface IAuthorizeRepos {
43
44
  event: EventRepo;
44
45
  eventSeries: EventSeriesRepo;
45
46
  issuer: IssuerRepo;
47
+ orderInTransaction: OrderInTransactionRepo;
46
48
  orderNumber: OrderNumberRepo;
47
49
  paymentAccepted: SellerPaymentAcceptedRepo;
48
50
  paymentService: PaymentServiceRepo;
@@ -7,10 +7,8 @@ import type { AuthorizationRepo } from '../../../repo/authorization';
7
7
  import type { EventRepo } from '../../../repo/event';
8
8
  import type { EventSeriesRepo } from '../../../repo/eventSeries';
9
9
  import type { IssuerRepo } from '../../../repo/issuer';
10
- import type { OrderNumberRepo } from '../../../repo/orderNumber';
11
10
  import type { PaymentServiceRepo } from '../../../repo/paymentService';
12
11
  import type { PaymentServiceProviderRepo } from '../../../repo/paymentServiceProvider';
13
- import type { ProjectRepo } from '../../../repo/project';
14
12
  import type { SellerPaymentAcceptedRepo } from '../../../repo/sellerPaymentAccepted';
15
13
  import type { TicketRepo } from '../../../repo/ticket';
16
14
  import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
@@ -24,11 +22,9 @@ interface IPublishPaymentUrlRepos {
24
22
  event: EventRepo;
25
23
  eventSeries: EventSeriesRepo;
26
24
  issuer: IssuerRepo;
27
- orderNumber: OrderNumberRepo;
28
25
  paymentAccepted: SellerPaymentAcceptedRepo;
29
26
  paymentService: PaymentServiceRepo;
30
27
  paymentServiceProvider: PaymentServiceProviderRepo;
31
- project: ProjectRepo;
32
28
  ticket: TicketRepo;
33
29
  placeOrder: PlaceOrderRepo;
34
30
  transactionNumber: TransactionNumberRepo;
@@ -35,9 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.publishPaymentUrl = publishPaymentUrl;
37
37
  const factory_1 = require("../../../factory");
38
- // import type { TransactionProcessRepo } from '../../repo/transactionProcess';
39
38
  const PayTransactionService = __importStar(require("../../assetTransaction/pay"));
40
- const issueOrderNumberIfNotExist_1 = require("../../transaction/placeOrder/issueOrderNumberIfNotExist");
41
39
  const fixTransactionNumberOnPublishPaymentUrl_1 = require("./publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl");
42
40
  const factory_2 = require("./factory");
43
41
  /**
@@ -54,12 +52,11 @@ function publishPaymentUrl(params) {
54
52
  if (project.id !== transaction.project.id) {
55
53
  throw new factory_1.factory.errors.NotFound(factory_1.factory.transactionType.PlaceOrder);
56
54
  }
57
- // issueOrderNumber(2025-03-11~)
58
- await (0, issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist)({
59
- project: { id: transaction.project.id },
60
- id: transaction.id,
61
- object: { orderDate: new Date() }
62
- })(repos);
55
+ // // 注文ドキュメントを参照(2026-06-24~)
56
+ // const orderNumber = await repos.orderInTransaction.findOrderNumberByIdentifier({
57
+ // identifier: transaction.id,
58
+ // project: { id: transaction.project.id },
59
+ // });
63
60
  // 取引番号生成
64
61
  const { transactionNumber, ticketToken } = await (0, fixTransactionNumberOnPublishPaymentUrl_1.fixTransactionNumberOnPublishPaymentUrl)({
65
62
  object: params.object,
@@ -39,7 +39,7 @@ function findByCode(params) {
39
39
  // typeOf?: { $in?: factory.order.IItemOffered['typeOf'][] };
40
40
  }
41
41
  }
42
- }, { noName: true })).shift();
42
+ })).shift();
43
43
  if (acceptedOffer === undefined) {
44
44
  throw new factory_1.factory.errors.NotFound('acceptedOffer');
45
45
  }
@@ -16,7 +16,7 @@ function searchByOrder(params) {
16
16
  // typeOf: { $in: [reservationType] }
17
17
  }
18
18
  }
19
- }, { noName: true });
19
+ });
20
20
  const reservationIds = acceptedOffers.map((offer) => {
21
21
  if (offer.itemOffered.typeOf === reservationType) {
22
22
  return offer.itemOffered.id;
@@ -3,16 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.call = call;
4
4
  const coa_service_1 = require("@motionpicture/coa-service");
5
5
  const factory_1 = require("../../factory");
6
- // import { ActionRepo } from '../../repo/action';
7
6
  const acceptCOAOffer_1 = require("../../repo/action/acceptCOAOffer");
8
7
  const authorizeOffer_1 = require("../../repo/action/authorizeOffer");
9
8
  const credentials_1 = require("../../repo/credentials");
10
9
  const event_1 = require("../../repo/event");
11
- const orderNumber_1 = require("../../repo/orderNumber");
12
- const project_1 = require("../../repo/project");
10
+ // import { OrderInTransactionRepo } from '../../repo/orderInTransaction';
11
+ // import { OrderNumberRepo } from '../../repo/orderNumber';
12
+ // import { ProjectRepo } from '../../repo/project';
13
13
  const reserveInterface_1 = require("../../repo/reserveInterface");
14
14
  const integration_1 = require("../../repo/setting/integration");
15
- // import { TransactionRepo } from '../../repo/transaction';
16
15
  const placeOrder_1 = require("../../repo/transaction/placeOrder");
17
16
  const acceptOffer_1 = require("../offer/eventServiceByCOA/acceptOffer");
18
17
  let coaAuthClient;
@@ -87,10 +86,9 @@ function call(params) {
87
86
  action: actionRepo,
88
87
  authorizeOfferAction: new authorizeOffer_1.AuthorizeOfferActionRepo(connection),
89
88
  event: new event_1.EventRepo(connection),
90
- orderNumber: new orderNumber_1.OrderNumberRepo({ connection }),
91
- project: new project_1.ProjectRepo(connection),
89
+ // orderNumber: new OrderNumberRepo({ connection }),
90
+ // project: new ProjectRepo(connection),
92
91
  placeOrder: new placeOrder_1.PlaceOrderRepo(connection),
93
- // transaction: new TransactionRepo(connection),
94
92
  reserveService,
95
93
  masterService
96
94
  });
@@ -106,10 +104,10 @@ function call(params) {
106
104
  })({
107
105
  action: actionRepo,
108
106
  event: new event_1.EventRepo(connection),
109
- orderNumber: new orderNumber_1.OrderNumberRepo({ connection }),
110
- project: new project_1.ProjectRepo(connection),
107
+ // orderInTransaction: new OrderInTransactionRepo(connection),
108
+ // orderNumber: new OrderNumberRepo({ connection }),
109
+ // project: new ProjectRepo(connection),
111
110
  placeOrder: new placeOrder_1.PlaceOrderRepo(connection),
112
- // transaction: new TransactionRepo(connection),
113
111
  reserveService,
114
112
  masterService
115
113
  });
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.call = call;
4
4
  const factory_1 = require("../../factory");
5
5
  const accountingReport_1 = require("../../repo/accountingReport");
6
- // import { ActionRepo } from '../../repo/action';
7
6
  const pay_1 = require("../../repo/action/pay");
8
7
  const refund_1 = require("../../repo/action/refund");
9
8
  const checkMovieTicket_1 = require("../../repo/action/checkMovieTicket");
@@ -17,6 +16,7 @@ const credentials_1 = require("../../repo/credentials");
17
16
  const event_1 = require("../../repo/event");
18
17
  const eventSeries_1 = require("../../repo/eventSeries");
19
18
  const issuer_1 = require("../../repo/issuer");
19
+ const orderInTransaction_1 = require("../../repo/orderInTransaction");
20
20
  const orderNumber_1 = require("../../repo/orderNumber");
21
21
  const paymentService_1 = require("../../repo/paymentService");
22
22
  const paymentServiceProvider_1 = require("../../repo/paymentServiceProvider");
@@ -27,10 +27,8 @@ const sellerPaymentAccepted_1 = require("../../repo/sellerPaymentAccepted");
27
27
  const integration_1 = require("../../repo/setting/integration");
28
28
  const task_1 = require("../../repo/task");
29
29
  const ticket_1 = require("../../repo/ticket");
30
- // import { TransactionRepo } from '../../repo/transaction';
31
30
  const placeOrder_1 = require("../../repo/transaction/placeOrder");
32
31
  const transactionNumber_1 = require("../../repo/transactionNumber");
33
- // import { TransactionProcessRepo } from '../../repo/transactionProcess';
34
32
  const any_1 = require("../payment/any");
35
33
  /**
36
34
  * タスク実行関数
@@ -60,7 +58,6 @@ function call(params) {
60
58
  sameAs: { id: params.id } // タスクIDを関連付け(2024-04-20~)
61
59
  })({
62
60
  accountingReport: new accountingReport_1.AccountingReportRepo(connection),
63
- // action: new ActionRepo(connection),
64
61
  actions: {
65
62
  pay: new pay_1.PayActionRepo(connection),
66
63
  refund: new refund_1.RefundActionRepo(connection),
@@ -79,6 +76,7 @@ function call(params) {
79
76
  event: new event_1.EventRepo(connection),
80
77
  eventSeries: new eventSeries_1.EventSeriesRepo(connection),
81
78
  issuer: new issuer_1.IssuerRepo(connection),
79
+ orderInTransaction: new orderInTransaction_1.OrderInTransactionRepo(connection),
82
80
  orderNumber: new orderNumber_1.OrderNumberRepo({ connection }),
83
81
  paymentAccepted: new sellerPaymentAccepted_1.SellerPaymentAcceptedRepo(connection),
84
82
  paymentService: new paymentService_1.PaymentServiceRepo(connection),
@@ -89,9 +87,7 @@ function call(params) {
89
87
  task: new task_1.TaskRepo(connection),
90
88
  ticket: new ticket_1.TicketRepo(connection),
91
89
  placeOrder: new placeOrder_1.PlaceOrderRepo(connection),
92
- // transaction: new TransactionRepo(connection),
93
90
  transactionNumber: new transactionNumber_1.TransactionNumberRepo({ connection })
94
- // transactionProcess: transactionProcessRepo
95
91
  }, settings);
96
92
  }
97
93
  catch (error) {
@@ -139,7 +139,7 @@ function fixOrderAsPurpose(params) {
139
139
  const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
140
140
  orderNumber: { $eq: order.orderNumber },
141
141
  project: { id: { $eq: params.project.id } }
142
- }, { noName: true });
142
+ });
143
143
  return {
144
144
  ...order,
145
145
  acceptedOffers
@@ -76,7 +76,7 @@ function fixOrderAsPurpose(params, transaction) {
76
76
  // reservedTicket: { ticketedSeat: { seatNumber: { $in: seatNumbers } } } // 座席番号による絞りは廃止(2026-06-01~)
77
77
  }
78
78
  }
79
- }, { noName: true });
79
+ });
80
80
  }
81
81
  return {
82
82
  ...orderWithoutAcceptedOffers,
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.call = call;
4
4
  const factory_1 = require("../../factory");
5
- // import { ActionRepo } from '../../repo/action';
6
5
  const acceptPay_1 = require("../../repo/action/acceptPay");
7
6
  const authorizeInvoice_1 = require("../../repo/action/authorizeInvoice");
8
7
  const assetTransaction_1 = require("../../repo/assetTransaction");
@@ -10,17 +9,16 @@ const authorization_1 = require("../../repo/authorization");
10
9
  const event_1 = require("../../repo/event");
11
10
  const eventSeries_1 = require("../../repo/eventSeries");
12
11
  const issuer_1 = require("../../repo/issuer");
13
- const orderNumber_1 = require("../../repo/orderNumber");
12
+ // import { OrderInTransactionRepo } from '../../repo/orderInTransaction';
13
+ // import { OrderNumberRepo } from '../../repo/orderNumber';
14
14
  const paymentService_1 = require("../../repo/paymentService");
15
15
  const paymentServiceProvider_1 = require("../../repo/paymentServiceProvider");
16
- const project_1 = require("../../repo/project");
16
+ // import { ProjectRepo } from '../../repo/project';
17
17
  const sellerPaymentAccepted_1 = require("../../repo/sellerPaymentAccepted");
18
18
  const integration_1 = require("../../repo/setting/integration");
19
19
  const ticket_1 = require("../../repo/ticket");
20
- // import { TransactionRepo } from '../../repo/transaction';
21
20
  const placeOrder_1 = require("../../repo/transaction/placeOrder");
22
21
  const transactionNumber_1 = require("../../repo/transactionNumber");
23
- // import { TransactionProcessRepo } from '../../repo/transactionProcess';
24
22
  const any_1 = require("../payment/any");
25
23
  /**
26
24
  * タスク実行関数
@@ -43,7 +41,6 @@ function call(params) {
43
41
  instrument: (Array.isArray(params.data.instrument)) ? params.data.instrument : [],
44
42
  sameAs: { id: params.id }
45
43
  })({
46
- // action: new ActionRepo(connection),
47
44
  acceptPayAction: actionRepo,
48
45
  authorizeInvoiceAction: new authorizeInvoice_1.AuthorizeInvoiceActionRepo(connection),
49
46
  assetTransaction: new assetTransaction_1.AssetTransactionRepo(connection),
@@ -51,14 +48,14 @@ function call(params) {
51
48
  event: new event_1.EventRepo(connection),
52
49
  eventSeries: new eventSeries_1.EventSeriesRepo(connection),
53
50
  issuer: new issuer_1.IssuerRepo(connection),
54
- orderNumber: new orderNumber_1.OrderNumberRepo({ connection }),
51
+ // orderInTransaction: new OrderInTransactionRepo(connection),
52
+ // orderNumber: new OrderNumberRepo({ connection }),
55
53
  paymentAccepted: new sellerPaymentAccepted_1.SellerPaymentAcceptedRepo(connection),
56
54
  paymentService: new paymentService_1.PaymentServiceRepo(connection),
57
55
  paymentServiceProvider: new paymentServiceProvider_1.PaymentServiceProviderRepo(connection),
58
- project: new project_1.ProjectRepo(connection),
56
+ // project: new ProjectRepo(connection),
59
57
  ticket: new ticket_1.TicketRepo(connection),
60
58
  placeOrder: new placeOrder_1.PlaceOrderRepo(connection),
61
- // transaction: new TransactionRepo(connection),
62
59
  transactionNumber: new transactionNumber_1.TransactionNumberRepo({ connection })
63
60
  }, settings);
64
61
  }
@@ -1,4 +1,9 @@
1
1
  import { factory } from '../../../../../factory';
2
+ type IOrderAsResult = Pick<factory.order.IOrder, 'confirmationNumber' | 'orderDate' | 'orderNumber' | 'price' | 'priceCurrency' | 'typeOf'> & {
3
+ orderStatus: factory.orderStatus.OrderPaymentDue;
4
+ identifier?: never;
5
+ url?: never;
6
+ };
2
7
  /**
3
8
  * 注文取引結果としての注文を生成する
4
9
  */
@@ -6,5 +11,5 @@ declare function createOrderAsResult(params: {
6
11
  orderNumber: string;
7
12
  orderDate: Date;
8
13
  price: number;
9
- }): factory.transaction.placeOrder.IOrderAsResult;
10
- export { createOrderAsResult };
14
+ }): IOrderAsResult;
15
+ export { createOrderAsResult, IOrderAsResult };
@@ -1,7 +1,8 @@
1
1
  import { factory } from '../../../../../factory';
2
2
  import type { ISetting } from '../../../../../repo/setting';
3
+ import type { IOrderAsResult } from '../factory/result';
3
4
  export declare function createSendEmailMessageActions(params: {
4
- order: factory.transaction.placeOrder.IOrderAsResult & {
5
+ order: IOrderAsResult & {
5
6
  confirmationNumber: string;
6
7
  orderStatus: factory.orderStatus;
7
8
  price: number;
@@ -9,10 +10,9 @@ export declare function createSendEmailMessageActions(params: {
9
10
  typeOf: factory.order.OrderType;
10
11
  };
11
12
  customer: factory.order.ICustomer;
12
- seller: factory.order.ISeller;
13
+ seller: Pick<factory.order.ISeller, 'name' | 'typeOf'>;
13
14
  paymentMethods: factory.order.IReferencedInvoice[];
14
15
  potentialActions?: factory.transaction.placeOrder.IPotentialActionsParams;
15
- emailMessage?: factory.creativeWork.message.email.ICreativeWork;
16
16
  }, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<{
17
17
  emailMessages: factory.action.transfer.send.message.email.IObjectAsEmailMessage[];
18
18
  sendEmailMessageActions: factory.transaction.placeOrder.IPotentialSendEmailMessageAction[];
@@ -3,34 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSendEmailMessageActions = createSendEmailMessageActions;
4
4
  const emailMessageBuilder_1 = require("../../../../../emailMessageBuilder");
5
5
  const factory_1 = require("../../../../../factory");
6
- async function createSendEmailMessageActions(params,
7
- // settings: Settings
8
- setting) {
6
+ async function createSendEmailMessageActions(params, setting) {
9
7
  // 注文配送メール送信設定
10
8
  const emailMessages = [];
11
- // const sendEmailMessageActions: factory.action.transfer.send.message.email.IAttributes[] = [];
12
9
  const sendEmailMessageActions = [];
13
- // const sendActionPurpose: factory.action.transfer.send.message.email.IPurpose = {
14
- // typeOf: params.order.typeOf,
15
- // orderNumber: params.order.orderNumber,
16
- // price: params.order.price,
17
- // priceCurrency: params.order.priceCurrency,
18
- // orderDate: params.order.orderDate
19
- // };
20
10
  const sendEmailMessageOnOrderSentParams = params.potentialActions?.order?.potentialActions?.sendOrder?.potentialActions?.sendEmailMessage;
21
11
  if (Array.isArray(sendEmailMessageOnOrderSentParams)) {
12
+ // pugテンプレートに渡す変数を最小化(2026-06-19~)
22
13
  const orderAsCreateEmailParams = {
23
- ...params.order,
14
+ // ...params.order,
15
+ // paymentMethods: params.paymentMethods
24
16
  customer: params.customer,
25
17
  seller: params.seller,
26
- paymentMethods: params.paymentMethods
18
+ orderNumber: params.order.orderNumber,
19
+ confirmationNumber: params.order.confirmationNumber,
20
+ price: params.order.price
27
21
  };
28
22
  await Promise.all(sendEmailMessageOnOrderSentParams.map(async (s, index) => {
29
23
  const emailMessage = await (0, emailMessageBuilder_1.createSendOrderMessage)({
30
24
  order: orderAsCreateEmailParams,
31
25
  index,
32
26
  ...(s.object !== undefined) ? { email: s.object } : undefined,
33
- ...(params.emailMessage !== undefined) ? { emailMessage: params.emailMessage } : undefined
27
+ // ...(params.emailMessage !== undefined) ? { emailMessage: params.emailMessage } : undefined
34
28
  }, setting);
35
29
  emailMessages.push(emailMessage);
36
30
  // 送信アクション最適化に対応(2024-04-29~)
@@ -40,16 +34,7 @@ setting) {
40
34
  };
41
35
  // optimize(2024-05-07~)
42
36
  sendEmailMessageActions.push({
43
- // project: params.order.project,
44
- // typeOf: factory.actionType.SendAction,
45
37
  object: sendEmailMessageActionObject
46
- // agent: params.order.project,
47
- // recipient: {
48
- // typeOf: params.order.customer.typeOf,
49
- // id: params.order.customer.id
50
- // },
51
- // potentialActions: {},
52
- // purpose: sendActionPurpose
53
38
  });
54
39
  }));
55
40
  }
@@ -1,10 +1,11 @@
1
1
  import { factory } from '../../../../factory';
2
2
  import type { ISetting } from '../../../../repo/setting';
3
+ import { IOrderAsResult } from './factory/result';
3
4
  /**
4
5
  * 取引のポストアクションを作成する
5
6
  */
6
7
  export declare function createPotentialActions(params: {
7
- order: factory.transaction.placeOrder.IOrderAsResult & {
8
+ order: IOrderAsResult & {
8
9
  confirmationNumber: string;
9
10
  orderStatus: factory.orderStatus.OrderPaymentDue;
10
11
  price: number;
@@ -12,10 +13,9 @@ export declare function createPotentialActions(params: {
12
13
  typeOf: factory.order.OrderType;
13
14
  };
14
15
  customer: factory.order.ICustomer;
15
- seller: factory.order.ISeller;
16
+ seller: Pick<factory.order.ISeller, 'name' | 'typeOf'>;
16
17
  paymentMethods: factory.order.IReferencedInvoice[];
17
18
  potentialActions?: factory.transaction.placeOrder.IPotentialActionsParams;
18
- emailMessage?: factory.creativeWork.message.email.ICreativeWork;
19
19
  }, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<{
20
20
  potentialActions: factory.transaction.placeOrder.IPotentialActions;
21
21
  emailMessages: factory.creativeWork.message.email.ICreativeWork[];
@@ -5,14 +5,9 @@ const sendEmailMessage_1 = require("./potentialActions/sendEmailMessage");
5
5
  /**
6
6
  * 取引のポストアクションを作成する
7
7
  */
8
- async function createPotentialActions(params,
9
- // settings: Settings
10
- setting) {
8
+ async function createPotentialActions(params, setting) {
11
9
  // 注文処理開始メール送信設定
12
10
  const { emailMessages, sendEmailMessageActions } = await (0, sendEmailMessage_1.createSendEmailMessageActions)(params, setting);
13
- // const sendOrderActionAttributes: factory.transaction.placeOrder.IPotentialSendOrderAction = {
14
- // potentialActions: { sendEmailMessage: sendEmailMessageActions }
15
- // };
16
11
  return {
17
12
  emailMessages,
18
13
  potentialActions: {
@@ -4,7 +4,6 @@ import type { AuthorizeOfferActionRepo } from '../../../repo/action/authorizeOff
4
4
  import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
5
5
  import type { AuthorizationRepo } from '../../../repo/authorization';
6
6
  import type { ConfirmationNumberRepo } from '../../../repo/confirmationNumber';
7
- import type { EmailMessageRepo } from '../../../repo/emailMessage';
8
7
  import type { MessageRepo } from '../../../repo/message';
9
8
  import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
10
9
  import type { ProjectRepo } from '../../../repo/project';
@@ -12,13 +11,13 @@ import type { SettingRepo } from '../../../repo/setting';
12
11
  import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
13
12
  import { factory } from '../../../factory';
14
13
  import { PlaceOrderFactory } from '../../../factory/transaction';
14
+ import { IOrderAsResult } from './confirm/factory/result';
15
15
  interface IConfirmOperationRepos {
16
16
  acceptPayAction: AcceptPayActionRepo;
17
17
  authorizePaymentMethodAction: AuthorizePaymentMethodActionRepo;
18
18
  authorizeOfferAction: AuthorizeOfferActionRepo;
19
19
  assetTransaction: AssetTransactionRepo;
20
20
  authorization: AuthorizationRepo;
21
- emailMessage?: EmailMessageRepo;
22
21
  message: MessageRepo;
23
22
  project: ProjectRepo;
24
23
  placeOrder: PlaceOrderRepo;
@@ -40,14 +39,10 @@ interface IConfirmOptions {
40
39
  * 注文における最大CreditCardIF決済方法数
41
40
  */
42
41
  maxNumCreditCardPaymentMethod: number;
43
- /**
44
- * 取引ドキュメントのresult.order,result,numAcceptedOffersを保管しないオプション(2026-06-15~)
45
- */
46
- disableResultOrder: boolean;
47
42
  }
48
43
  type IConfirmParams = PlaceOrderFactory.IConfirmParams;
49
44
  interface IConfirmResult {
50
- order: Pick<factory.transaction.placeOrder.IOrderAsResult, 'confirmationNumber' | 'orderNumber'>;
45
+ order: Pick<IOrderAsResult, 'confirmationNumber' | 'orderNumber'>;
51
46
  customer: factory.order.ICustomer;
52
47
  code?: string;
53
48
  /**
@@ -19,16 +19,17 @@ const debug = (0, debug_1.default)('chevre-domain:service:transaction');
19
19
  /**
20
20
  * 進行中でない取引を処理する
21
21
  */
22
- function processTransactionNotInProgress(transaction) {
22
+ function processTransactionNotInProgress(params) {
23
23
  return async (repos) => {
24
+ const { transaction, orderNumber } = params;
24
25
  if (transaction.status === factory_1.factory.transactionStatusType.Confirmed) {
25
- const resultCustomer = await repos.orderInTransaction.findCustomerByOrderNumber({
26
- orderNumber: { $eq: String(transaction.object.orderNumber) }
26
+ const resultCustomer = await repos.orderInTransaction.findCustomerByOrderIdentifier({
27
+ identifier: transaction.id
27
28
  });
28
29
  // if (resultCustomer === undefined) {
29
30
  // throw new factory.errors.Internal('resultCustomer undefined'); // impossible process
30
31
  // }
31
- const { confirmationNumber, orderNumber } = transaction.object;
32
+ const { confirmationNumber } = transaction.object;
32
33
  // Confirmedの取引であればobjectには必ず存在するはず
33
34
  if (typeof confirmationNumber !== 'string' || typeof orderNumber !== 'string'
34
35
  || confirmationNumber === '' || orderNumber === '') {
@@ -62,30 +63,30 @@ function confirm(params, options) {
62
63
  object: { orderDate: params.result.order.orderDate }
63
64
  })(repos);
64
65
  const transaction = await repos.placeOrder.findPlaceOrderById({ typeOf: factory_1.factory.transactionType.PlaceOrder, id: params.id }, ['typeOf', 'project', 'status', 'agent', 'seller', 'object', 'result']);
65
- const confirmResult = await processTransactionNotInProgress(transaction)(repos);
66
+ // 注文ドキュメントから注文番号を参照(取引開始時に発行済の前提)(2026-06-26~)
67
+ const orderNumber = await repos.orderInTransaction.findOrderNumberByIdentifier({
68
+ identifier: params.id,
69
+ project: { id: transaction.project.id }
70
+ }, { onlyPlaceOrder: false } // すでに取引確定済かもしれないのでfalse
71
+ );
72
+ const confirmResult = await processTransactionNotInProgress({ transaction, orderNumber })(repos);
66
73
  if (confirmResult !== undefined) {
67
74
  return confirmResult;
68
75
  }
69
76
  if (typeof params.agent?.id === 'string' && transaction.agent.id !== params.agent.id) {
70
77
  throw new factory_1.factory.errors.Forbidden('Transaction not yours');
71
78
  }
72
- // 注文番号は興行オファー承認時に発行済のはず(2026-06-16~)
73
- const orderNumber = transaction.object.orderNumber;
74
- if (typeof orderNumber !== 'string' || orderNumber === '') {
75
- throw new factory_1.factory.errors.Argument('transactionId', 'orderNumber not issued');
76
- }
79
+ // // 注文番号は興行オファー承認時に発行済のはず(2026-06-16~)
80
+ // const orderNumber = transaction.object.orderNumber;
81
+ // if (typeof orderNumber !== 'string' || orderNumber === '') {
82
+ // throw new factory.errors.Argument('transactionId', 'orderNumber not issued');
83
+ // }
77
84
  // 取引に対する全ての承認アクションをマージ
78
85
  const completedAuthorizeActions = await searchAuthorizeActions(params)(repos);
79
86
  let acceptPayActions = [];
80
87
  if (typeof transaction.object.paymentMethods?.paymentMethodId === 'string') {
81
88
  acceptPayActions = await searchAcceptPayActions(params)(repos);
82
89
  }
83
- // 注文番号は興行オファー承認時に発行済のはずなので、ここは不要(承認オファーなしの注文は存在しえない)(2026-06-16~)
84
- // const orderNumber = await issueOrderNumberIfNotExist({
85
- // project: { id: transaction.project.id },
86
- // id: transaction.id,
87
- // object: { orderDate: params.result.order.orderDate }
88
- // })(repos);
89
90
  // 必要あらば注文コード発行(2024-02-05~)
90
91
  let code;
91
92
  const publishCodeExpiresInSeconds = options.publishCodeExpiresInSeconds;
@@ -107,8 +108,9 @@ function confirm(params, options) {
107
108
  // authorizeProductOfferActions,
108
109
  serialNumbers } = dissolveAuthorizeActions(completedAuthorizeActions);
109
110
  // orderInTransactionから検索する(2024-03-04~)
110
- const acceptedOffers = (await repos.orderInTransaction.findAcceptedOffersWithPriceByOrderNumber({
111
- orderNumber,
111
+ const acceptedOffers = (await repos.orderInTransaction.findAcceptedOffersWithPriceByIdentifier({
112
+ // orderNumber,
113
+ identifier: transaction.id,
112
114
  project: { id: transaction.project.id }
113
115
  }))
114
116
  .filter(({ serialNumber }) => typeof serialNumber === 'string' && serialNumbers.includes(serialNumber));
@@ -125,7 +127,7 @@ function confirm(params, options) {
125
127
  }
126
128
  // retrieve customer from orderInTransaction(2024-06-24~)
127
129
  // let customer: factory.order.ICustomer = createCustomer({ transaction });
128
- const customer = await repos.orderInTransaction.findCustomerByOrderNumber({ orderNumber: { $eq: orderNumber } });
130
+ const customer = await repos.orderInTransaction.findCustomerByOrderIdentifier({ identifier: transaction.id });
129
131
  const seller = (0, factory_2.createSeller)({ transaction });
130
132
  const { paymentMethods, placingOrder, result, eventId, reservationIds } = createResult({
131
133
  ...params,
@@ -136,17 +138,18 @@ function confirm(params, options) {
136
138
  acceptedOffers, payTransactions, customer,
137
139
  ...(typeof code === 'string') ? { code } : undefined
138
140
  }, options);
139
- // デフォルトEメールメッセージを検索
140
- let emailMessageOnOrderSent;
141
- if (repos.emailMessage !== undefined) {
142
- const searchEmailMessagesResult = await repos.emailMessage.search({
143
- limit: 1,
144
- page: 1,
145
- project: { id: { $eq: transaction.project.id } },
146
- about: { identifier: { $eq: factory_1.factory.creativeWork.message.email.AboutIdentifier.OnOrderSent } }
147
- });
148
- emailMessageOnOrderSent = searchEmailMessagesResult.shift();
149
- }
141
+ // discontinue emailMessageRepo
142
+ // // デフォルトEメールメッセージを検索
143
+ // let emailMessageOnOrderSent: factory.creativeWork.message.email.ICreativeWork | undefined;
144
+ // if (repos.emailMessage !== undefined) {
145
+ // const searchEmailMessagesResult = await repos.emailMessage.search({
146
+ // limit: 1,
147
+ // page: 1,
148
+ // project: { id: { $eq: transaction.project.id } },
149
+ // about: { identifier: { $eq: factory.creativeWork.message.email.AboutIdentifier.OnOrderSent } }
150
+ // });
151
+ // emailMessageOnOrderSent = searchEmailMessagesResult.shift();
152
+ // }
150
153
  // ポストアクションを作成
151
154
  const setting = await repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['defaultSenderEmail']);
152
155
  if (typeof setting?.defaultSenderEmail !== 'string') {
@@ -160,7 +163,7 @@ function confirm(params, options) {
160
163
  // order: orderWithAcceptedOffers, // 現時点でcreateEmailMessageでorder.acceptedOffersを使用している(2024-02-06~)
161
164
  // transaction: transaction,
162
165
  ...(params.potentialActions !== undefined) ? { potentialActions: params.potentialActions } : undefined,
163
- ...(emailMessageOnOrderSent !== undefined) ? { emailMessage: emailMessageOnOrderSent } : undefined
166
+ // ...(emailMessageOnOrderSent !== undefined) ? { emailMessage: emailMessageOnOrderSent } : undefined
164
167
  },
165
168
  // settings
166
169
  setting);
@@ -373,10 +376,10 @@ function createResult(params, options) {
373
376
  result: {
374
377
  authorizeActions, // 追加(2024-01-17~)
375
378
  ...(typeof params.code === 'string') ? { code: params.code } : undefined,
376
- ...((!options.disableResultOrder) && { order: orderAsResult }), // support disableResultOrder(2026-06-15~)
377
- ...((!options.disableResultOrder) && {
378
- numAcceptedOffers: params.acceptedOffers.length, // 追加(2024-01-17~)
379
- }) // support disableResultOrder(2026-06-17~)
379
+ // ...((!options.disableResultOrder) && { order: orderAsResult }), // 完全廃止(2026-06-26~)
380
+ // ...((!options.disableResultOrder) && {
381
+ // numAcceptedOffers: params.acceptedOffers.length,
382
+ // }) // 完全廃止(2026-06-26~)
380
383
  },
381
384
  ...(typeof eventId === 'string') ? { eventId } : undefined,
382
385
  ...(Array.isArray(reservationIds)) ? { reservationIds } : undefined
@@ -1,3 +1,4 @@
1
+ import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
1
2
  import type { OrderNumberRepo } from '../../../repo/orderNumber';
2
3
  import type { ProjectRepo } from '../../../repo/project';
3
4
  import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
@@ -18,6 +19,7 @@ declare function issueOrderNumberIfNotExist(params: {
18
19
  }): (repos: {
19
20
  project: ProjectRepo;
20
21
  placeOrder: PlaceOrderRepo;
22
+ orderInTransaction: OrderInTransactionRepo;
21
23
  orderNumber: OrderNumberRepo;
22
24
  }) => Promise<string>;
23
25
  export { issueOrderNumberIfNotExist };