@chevre/domain 25.0.0-alpha.1 → 25.0.0-alpha.11

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 (63) 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 +10 -109
  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 +15 -16
  19. package/lib/chevre/repo/orderInTransaction.js +38 -23
  20. package/lib/chevre/repo/orderNumber.d.ts +4 -0
  21. package/lib/chevre/repo/orderNumber.js +32 -60
  22. package/lib/chevre/repo/transaction.d.ts +5 -1
  23. package/lib/chevre/repo/transaction.js +4 -0
  24. package/lib/chevre/service/offer/any.d.ts +3 -6
  25. package/lib/chevre/service/offer/any.js +3 -1
  26. package/lib/chevre/service/offer/event/authorize.js +3 -1
  27. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +1 -0
  28. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +1 -0
  29. package/lib/chevre/service/order/deleteOrder.js +1 -1
  30. package/lib/chevre/service/order/placeOrder/factory.js +4 -2
  31. package/lib/chevre/service/order.d.ts +1 -2
  32. package/lib/chevre/service/order.js +1 -5
  33. package/lib/chevre/service/reserve/findByCode.js +1 -1
  34. package/lib/chevre/service/reserve/searchByOrder.js +1 -1
  35. package/lib/chevre/service/task/confirmReserveTransaction.js +1 -1
  36. package/lib/chevre/service/task/payment/payByTask.js +1 -1
  37. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.d.ts +0 -1
  38. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +8 -23
  39. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.d.ts +0 -1
  40. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +1 -6
  41. package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +1 -3
  42. package/lib/chevre/service/transaction/placeOrder/confirm.js +17 -14
  43. package/lib/chevre/service/transaction/placeOrder/start/factory.d.ts +0 -1
  44. package/lib/chevre/service/transaction/placeOrder/start/factory.js +3 -5
  45. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +1 -0
  46. package/lib/chevre/service/transaction/placeOrder.d.ts +2 -2
  47. package/lib/chevre/service/transaction/placeOrder.js +3 -3
  48. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +2 -37
  49. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.d.ts +2 -2
  50. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +3 -18
  51. package/lib/chevre/service/transaction/returnOrder/potentialActions.d.ts +0 -1
  52. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +0 -4
  53. package/lib/chevre/service/transaction/returnOrder/preStart.js +1 -1
  54. package/lib/chevre/service/transaction/returnOrder.d.ts +0 -2
  55. package/lib/chevre/service/transaction/returnOrder.js +13 -12
  56. package/lib/chevre/service/validation/validateOrder.js +1 -1
  57. package/lib/chevre/service.d.ts +0 -2
  58. package/lib/chevre/service.js +0 -2
  59. package/package.json +2 -2
  60. package/lib/chevre/factory/order.d.ts +0 -2
  61. package/lib/chevre/factory/order.js +0 -5
  62. package/lib/chevre/service/order/placeOrderWithoutTransaction.d.ts +0 -22
  63. package/lib/chevre/service/order/placeOrderWithoutTransaction.js +0 -51
@@ -17,36 +17,25 @@ const ORDER_NUMBER_SEPARATOR = '-';
17
17
  class OrderNumberRepo {
18
18
  counterRepo;
19
19
  settingModel;
20
+ // static にすることで、クラスが何回 new されてもメモリ上で1つだけ保持される
21
+ static cachedSettings;
22
+ static cacheExpiry = 0;
23
+ static CACHE_TTL_MS = 10 * 60 * 1000; // 10分
20
24
  constructor(params) {
21
25
  this.counterRepo = new transactionNumberCounter_1.TransactionNumberCounterRepo(params);
22
26
  this.settingModel = params.connection.model(setting_1.modelName, (0, setting_1.createSchema)());
23
27
  }
24
- // public static GENERATE_VERSION0(timestamp: string, seq: number): string {
25
- // let orderNumber = `${timestamp}${seq}`;
26
- // // checkdigit
27
- // const cd = cdigit.luhn.compute(orderNumber);
28
- // orderNumber = fpe({ password: cd })
29
- // .encrypt(orderNumber);
30
- // orderNumber = `${cd}${orderNumber}`;
31
- // return orderNumber;
32
- // }
33
28
  /**
34
29
  * 注文日時から新しい注文番号を発行する
35
30
  * グローバルユニークである前提
36
31
  */
37
32
  async issueOrderNumber(params) {
38
- const { fpeSecret, version, validFrom
39
- // versioningForceProjects
40
- // versioningExceptionProjects
41
- } = await this.findSetting();
33
+ const { fpeSecret, version } = await this.findSetting();
42
34
  const timestamp = (0, moment_timezone_1.default)(params.orderDate)
43
35
  .valueOf()
44
36
  .toString();
45
- // const projectPrefix = params.project.alternateName
46
- // .toUpperCase();
47
37
  const projectPrefix = params.project.alternateName
48
38
  .toUpperCase().at(0);
49
- // const dataFeedIdentifier = `${projectPrefix}:${timestamp}`;
50
39
  const dataFeedIdentifier = timestamp; // reconsider increment scope(2026-02-21~)
51
40
  const dataFeedExpires = (0, moment_timezone_1.default)(params.orderDate)
52
41
  .add(1, 'minute') // ミリ秒でカウントしていくので、注文日時後1分で十分
@@ -57,32 +46,16 @@ class OrderNumberRepo {
57
46
  expires: dataFeedExpires
58
47
  });
59
48
  let orderNumber;
60
- const useVersioning = (validFrom instanceof Date && (0, moment_timezone_1.default)(validFrom)
61
- .isSameOrBefore(params.orderDate));
62
- if (typeof fpeSecret === 'string' && typeof version === 'string' && useVersioning) {
63
- const transactionFactory = new transactionNumber_1.TransactionNumberFactory({ fpeSecret, version });
64
- orderNumber = transactionFactory.generate(timestamp, incrReply);
65
- orderNumber = `${projectPrefix}${orderNumber}`; // 桁数をversion0に合わせるためにエイリアスの1文字目のみを採用
66
- orderNumber = `${[
67
- orderNumber.slice(0, 4),
68
- orderNumber.slice(4, 11),
69
- orderNumber.slice(11)
70
- ].join(ORDER_NUMBER_SEPARATOR)}`;
71
- }
72
- else {
73
- // discontinue version0(2026-02-13~)
74
- throw new factory_1.factory.errors.NotImplemented('orderNumber with no version discontinued');
75
- // orderNumber = OrderNumberRepo.GENERATE_VERSION0(timestamp, incrReply);
76
- // orderNumber = `${projectPrefix}${orderNumber}`;
77
- // orderNumber = `${[
78
- // // tslint:disable-next-line:no-magic-numbers
79
- // orderNumber.slice(0, 4),
80
- // // tslint:disable-next-line:no-magic-numbers
81
- // orderNumber.slice(4, 11),
82
- // // tslint:disable-next-line:no-magic-numbers
83
- // orderNumber.slice(11)
84
- // ].join(ORDER_NUMBER_SEPARATOR)}`;
85
- }
49
+ // const useVersioning: boolean = (validFrom instanceof Date && moment(validFrom)
50
+ // .isSameOrBefore(params.orderDate));
51
+ const transactionFactory = new transactionNumber_1.TransactionNumberFactory({ fpeSecret, version });
52
+ orderNumber = transactionFactory.generate(timestamp, incrReply);
53
+ orderNumber = `${projectPrefix}${orderNumber}`; // 桁数をversion0に合わせるためにエイリアスの1文字目のみを採用
54
+ orderNumber = `${[
55
+ orderNumber.slice(0, 4),
56
+ orderNumber.slice(4, 11),
57
+ orderNumber.slice(11)
58
+ ].join(ORDER_NUMBER_SEPARATOR)}`;
86
59
  return orderNumber;
87
60
  }
88
61
  async decrypt(id) {
@@ -97,41 +70,40 @@ class OrderNumberRepo {
97
70
  throw new factory_1.factory.errors.NotImplemented('no version not implemented');
98
71
  }
99
72
  }
73
+ clearSettingCache() {
74
+ OrderNumberRepo.cacheExpiry = 0;
75
+ OrderNumberRepo.cachedSettings = undefined;
76
+ }
100
77
  /**
101
78
  * 注文番号生成設定を検索する
102
79
  */
103
80
  async findSetting() {
81
+ const now = Date.now();
82
+ // キャッシュ参照(2026-06-22~)
83
+ if (OrderNumberRepo.cachedSettings !== undefined && now < OrderNumberRepo.cacheExpiry) {
84
+ return OrderNumberRepo.cachedSettings;
85
+ }
104
86
  const filterQuery = { 'project.id': { $eq: '*' } };
105
- const projection = {
87
+ const setting = await this.settingModel.findOne(filterQuery, {
106
88
  _id: 0,
107
89
  orderNumber: 1
108
- };
109
- const setting = await this.settingModel.findOne(filterQuery, projection)
90
+ })
110
91
  .lean()
111
92
  .exec();
112
93
  if (setting === null || setting.orderNumber === undefined) {
113
- return {
114
- // versioningForceProjects: []
115
- // versioningExceptionProjects: []
116
- };
94
+ throw new factory_1.factory.errors.NotFound('setting.orderNumber');
117
95
  }
118
- const { fpeSecret, version, validFrom } = setting.orderNumber;
96
+ const { fpeSecret, version } = setting.orderNumber;
119
97
  if (typeof fpeSecret !== 'string' || fpeSecret === '') {
120
98
  throw new factory_1.factory.errors.NotFound('setting.orderNumber.secret');
121
99
  }
122
100
  if (typeof version !== 'string' || version === '') {
123
101
  throw new factory_1.factory.errors.NotFound('setting.orderNumber.version');
124
102
  }
125
- if (!(validFrom instanceof Date)) {
126
- throw new factory_1.factory.errors.NotFound('setting.orderNumber.validFrom must be Date');
127
- }
128
- return {
129
- fpeSecret, version, validFrom
130
- // versioningForceProjects: [
131
- // ...(Array.isArray(versioningForceProjects)) ? versioningForceProjects : []
132
- // ]
133
- // versioningExceptionProjects: (Array.isArray(versioningExceptionProjects)) ? versioningExceptionProjects : []
134
- };
103
+ // キャッシュを更新
104
+ OrderNumberRepo.cachedSettings = { fpeSecret, version };
105
+ OrderNumberRepo.cacheExpiry = now + OrderNumberRepo.CACHE_TTL_MS;
106
+ return OrderNumberRepo.cachedSettings;
135
107
  }
136
108
  }
137
109
  exports.OrderNumberRepo = OrderNumberRepo;
@@ -1,4 +1,4 @@
1
- import type { Connection } from 'mongoose';
1
+ import type { Connection, UpdateQuery } from 'mongoose';
2
2
  import { factory } from '../factory';
3
3
  import { IDocType } from './mongoose/schemas/transaction';
4
4
  interface IAggregationByStatus {
@@ -116,6 +116,10 @@ export declare class TransactionRepo {
116
116
  filter: any;
117
117
  $unset: any;
118
118
  }): Promise<import("mongoose").UpdateWriteOpResult>;
119
+ updateById4migration(params: {
120
+ id: string;
121
+ update: UpdateQuery<IDocType>;
122
+ }): Promise<import("mongoose").UpdateWriteOpResult>;
119
123
  /**
120
124
  * 終了日時を一定期間過ぎたアクションを削除する
121
125
  */
@@ -297,6 +297,10 @@ class TransactionRepo {
297
297
  return this.transactionModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
298
298
  .exec();
299
299
  }
300
+ async updateById4migration(params) {
301
+ return this.transactionModel.updateOne({ _id: { $eq: params.id } }, params.update)
302
+ .exec();
303
+ }
300
304
  /**
301
305
  * 終了日時を一定期間過ぎたアクションを削除する
302
306
  */
@@ -10,12 +10,9 @@ export declare function acceptOffer(params: {
10
10
  project: {
11
11
  id: string;
12
12
  };
13
- acceptedOffers: IMinimizedAcceptedOffer[] | (Omit<factory.order.IAcceptedOffer, 'priceSpecification'> & {
14
- /**
15
- * COA以外では注文ドキュメントにpriceSpecificationが存在しないのでIFを補完
16
- */
17
- priceSpecification?: factory.order.ITicketPriceSpecification;
18
- })[];
13
+ placeOrderId: string;
14
+ acceptedOffers: IMinimizedAcceptedOffer[] | factory.order.ICOAAcceptedOffer[];
15
+ broker?: factory.order.IBroker;
19
16
  }): IAcceptOfferOperation<void>;
20
17
  export declare function voidAcceptedOffer(params: {
21
18
  /**
@@ -13,7 +13,9 @@ function acceptOffer(params) {
13
13
  await repos.orderInTransaction.acceptOffer({
14
14
  orderNumber: params.orderNumber,
15
15
  project: { id: params.project.id, typeOf: factory_1.factory.organizationType.Project },
16
- acceptedOffers: params.acceptedOffers
16
+ identifier: params.placeOrderId,
17
+ acceptedOffers: params.acceptedOffers,
18
+ ...((params.broker !== undefined) && { broker: params.broker })
17
19
  });
18
20
  };
19
21
  }
@@ -66,7 +66,9 @@ function authorize(params, options) {
66
66
  await (0, any_1.acceptOffer)({
67
67
  orderNumber,
68
68
  project: transaction.project,
69
- acceptedOffers: minimizedAcceptedOffers
69
+ placeOrderId: transaction.id,
70
+ acceptedOffers: minimizedAcceptedOffers,
71
+ ...((typeof params.object.broker?.typeOf === 'string') && { broker: params.object.broker })
70
72
  })(repos);
71
73
  }
72
74
  }
@@ -119,6 +119,7 @@ function authorize(params) {
119
119
  await (0, any_1.acceptOffer)({
120
120
  orderNumber,
121
121
  project: transaction.project,
122
+ placeOrderId: params.transaction.id,
122
123
  acceptedOffers: acceptedOffers4result
123
124
  })(repos);
124
125
  // }
@@ -154,6 +154,7 @@ function changeOffers(params) {
154
154
  await (0, any_1.acceptOffer)({
155
155
  orderNumber,
156
156
  project: transaction.project,
157
+ placeOrderId: params.transaction.id,
157
158
  acceptedOffers: acceptedOffers4result
158
159
  })(repos);
159
160
  // }
@@ -93,7 +93,7 @@ function deleteReservationsByOrder(order) {
93
93
  const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
94
94
  orderNumber: { $eq: order.orderNumber },
95
95
  project: { id: { $eq: order.project.id } },
96
- }, { noName: true });
96
+ });
97
97
  const reservationIds = acceptedOffers.map((o) => String(o.itemOffered.id));
98
98
  if (reservationIds.length > 0) {
99
99
  await repos.reservation.deleteByIds({ project: { id: order.project.id }, ids: reservationIds });
@@ -95,7 +95,9 @@ function createPlacingOrder(params) {
95
95
  // discontinue(2026-06-11~)
96
96
  // const name: string | undefined =
97
97
  // (typeof transaction.object.name === 'string') ? transaction.object.name : undefined;
98
- const broker = (typeof transaction.object.broker?.typeOf === 'string') ? transaction.object.broker : undefined;
98
+ // discontinue(2026-06-22~)
99
+ // const broker: factory.order.IBroker | undefined =
100
+ // (typeof transaction.object.broker?.typeOf === 'string') ? transaction.object.broker : undefined;
99
101
  const { paymentMethods, price } = createPaymentMethods({ authorizePaymentActions });
100
102
  const eventReservationAcceptedOffers = [];
101
103
  params.acceptedOffers.forEach((acceptedOffer) => {
@@ -125,6 +127,6 @@ function createPlacingOrder(params) {
125
127
  .toDate(),
126
128
  orderedItem, // 2024-06-18~
127
129
  // ...(typeof name === 'string') ? { name } : undefined, // discontinue(2026-06-11~)
128
- ...(typeof broker?.typeOf === 'string') ? { broker } : undefined // 2024-06-17~
130
+ // ...(typeof broker?.typeOf === 'string') ? { broker } : undefined // discontinue(2026-06-22~)
129
131
  };
130
132
  }
@@ -6,5 +6,4 @@ import { paymentDue2Processing } from './order/onAssetTransactionStatusChanged';
6
6
  import { processOrder } from './order/onOrderStatusChanged';
7
7
  import { onOrderUpdated } from './order/onOrderUpdated';
8
8
  import { placeOrder } from './order/placeOrder';
9
- import { placeOrderWithoutTransaction } from './order/placeOrderWithoutTransaction';
10
- export { confirmPayTransaction, onOrderUpdated, paymentDue2Processing, placeOrder, placeOrderWithoutTransaction, processOrder, };
9
+ export { confirmPayTransaction, onOrderUpdated, paymentDue2Processing, placeOrder, processOrder, };
@@ -1,20 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processOrder = exports.placeOrderWithoutTransaction = exports.placeOrder = exports.paymentDue2Processing = exports.onOrderUpdated = exports.confirmPayTransaction = void 0;
3
+ exports.processOrder = exports.placeOrder = exports.paymentDue2Processing = exports.onOrderUpdated = exports.confirmPayTransaction = void 0;
4
4
  /**
5
5
  * 注文サービス
6
6
  */
7
7
  const confirmPayTransaction_1 = require("./order/confirmPayTransaction");
8
8
  Object.defineProperty(exports, "confirmPayTransaction", { enumerable: true, get: function () { return confirmPayTransaction_1.confirmPayTransaction; } });
9
- // import { deleteOrder } from './order/deleteOrder';
10
9
  const onAssetTransactionStatusChanged_1 = require("./order/onAssetTransactionStatusChanged");
11
10
  Object.defineProperty(exports, "paymentDue2Processing", { enumerable: true, get: function () { return onAssetTransactionStatusChanged_1.paymentDue2Processing; } });
12
11
  const onOrderStatusChanged_1 = require("./order/onOrderStatusChanged");
13
12
  Object.defineProperty(exports, "processOrder", { enumerable: true, get: function () { return onOrderStatusChanged_1.processOrder; } });
14
13
  const onOrderUpdated_1 = require("./order/onOrderUpdated");
15
14
  Object.defineProperty(exports, "onOrderUpdated", { enumerable: true, get: function () { return onOrderUpdated_1.onOrderUpdated; } });
16
- // import { payOrder } from './order/payOrder';
17
15
  const placeOrder_1 = require("./order/placeOrder");
18
16
  Object.defineProperty(exports, "placeOrder", { enumerable: true, get: function () { return placeOrder_1.placeOrder; } });
19
- const placeOrderWithoutTransaction_1 = require("./order/placeOrderWithoutTransaction");
20
- Object.defineProperty(exports, "placeOrderWithoutTransaction", { enumerable: true, get: function () { return placeOrderWithoutTransaction_1.placeOrderWithoutTransaction; } });
@@ -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;
@@ -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,
@@ -12,7 +12,6 @@ export declare function createSendEmailMessageActions(params: {
12
12
  seller: factory.order.ISeller;
13
13
  paymentMethods: factory.order.IReferencedInvoice[];
14
14
  potentialActions?: factory.transaction.placeOrder.IPotentialActionsParams;
15
- emailMessage?: factory.creativeWork.message.email.ICreativeWork;
16
15
  }, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<{
17
16
  emailMessages: factory.action.transfer.send.message.email.IObjectAsEmailMessage[];
18
17
  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
  }
@@ -15,7 +15,6 @@ export declare function createPotentialActions(params: {
15
15
  seller: factory.order.ISeller;
16
16
  paymentMethods: factory.order.IReferencedInvoice[];
17
17
  potentialActions?: factory.transaction.placeOrder.IPotentialActionsParams;
18
- emailMessage?: factory.creativeWork.message.email.ICreativeWork;
19
18
  }, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<{
20
19
  potentialActions: factory.transaction.placeOrder.IPotentialActions;
21
20
  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';
@@ -18,7 +17,6 @@ interface IConfirmOperationRepos {
18
17
  authorizeOfferAction: AuthorizeOfferActionRepo;
19
18
  assetTransaction: AssetTransactionRepo;
20
19
  authorization: AuthorizationRepo;
21
- emailMessage?: EmailMessageRepo;
22
20
  message: MessageRepo;
23
21
  project: ProjectRepo;
24
22
  placeOrder: PlaceOrderRepo;
@@ -41,7 +39,7 @@ interface IConfirmOptions {
41
39
  */
42
40
  maxNumCreditCardPaymentMethod: number;
43
41
  /**
44
- * 取引ドキュメントのresult.orderを保管しないオプション(2026-06-15~)
42
+ * 取引ドキュメントのresult.order,result,numAcceptedOffersを保管しないオプション(2026-06-15~)
45
43
  */
46
44
  disableResultOrder: boolean;
47
45
  }
@@ -136,17 +136,18 @@ function confirm(params, options) {
136
136
  acceptedOffers, payTransactions, customer,
137
137
  ...(typeof code === 'string') ? { code } : undefined
138
138
  }, 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
- }
139
+ // discontinue emailMessageRepo
140
+ // // デフォルトEメールメッセージを検索
141
+ // let emailMessageOnOrderSent: factory.creativeWork.message.email.ICreativeWork | undefined;
142
+ // if (repos.emailMessage !== undefined) {
143
+ // const searchEmailMessagesResult = await repos.emailMessage.search({
144
+ // limit: 1,
145
+ // page: 1,
146
+ // project: { id: { $eq: transaction.project.id } },
147
+ // about: { identifier: { $eq: factory.creativeWork.message.email.AboutIdentifier.OnOrderSent } }
148
+ // });
149
+ // emailMessageOnOrderSent = searchEmailMessagesResult.shift();
150
+ // }
150
151
  // ポストアクションを作成
151
152
  const setting = await repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['defaultSenderEmail']);
152
153
  if (typeof setting?.defaultSenderEmail !== 'string') {
@@ -160,7 +161,7 @@ function confirm(params, options) {
160
161
  // order: orderWithAcceptedOffers, // 現時点でcreateEmailMessageでorder.acceptedOffersを使用している(2024-02-06~)
161
162
  // transaction: transaction,
162
163
  ...(params.potentialActions !== undefined) ? { potentialActions: params.potentialActions } : undefined,
163
- ...(emailMessageOnOrderSent !== undefined) ? { emailMessage: emailMessageOnOrderSent } : undefined
164
+ // ...(emailMessageOnOrderSent !== undefined) ? { emailMessage: emailMessageOnOrderSent } : undefined
164
165
  },
165
166
  // settings
166
167
  setting);
@@ -372,9 +373,11 @@ function createResult(params, options) {
372
373
  placingOrder,
373
374
  result: {
374
375
  authorizeActions, // 追加(2024-01-17~)
375
- numAcceptedOffers: params.acceptedOffers.length, // 追加(2024-01-17~)
376
376
  ...(typeof params.code === 'string') ? { code: params.code } : undefined,
377
- ...((!options.disableResultOrder) && { order: orderAsResult }) // support disableResultOrder(2026-06-15~)
377
+ ...((!options.disableResultOrder) && { order: orderAsResult }), // support disableResultOrder(2026-06-15~)
378
+ ...((!options.disableResultOrder) && {
379
+ numAcceptedOffers: params.acceptedOffers.length, // 追加(2024-01-17~)
380
+ }) // support disableResultOrder(2026-06-17~)
378
381
  },
379
382
  ...(typeof eventId === 'string') ? { eventId } : undefined,
380
383
  ...(Array.isArray(reservationIds)) ? { reservationIds } : undefined
@@ -13,7 +13,6 @@ type IStartPlaceOrderParams = factory.transaction.placeOrder.IStartParamsWithout
13
13
  */
14
14
  clientUser: factory.transaction.placeOrder.IClientUserBeforeStart;
15
15
  };
16
- broker?: factory.order.IBroker;
17
16
  };
18
17
  declare function createStartParams(params: IStartPlaceOrderParams, expiresInSeconds: number, passport: IVerifiedPassport | undefined, seller: Pick<factory.seller.ISeller, 'id' | 'name' | 'typeOf' | 'project' | 'additionalProperty'>, customerType?: string): factory.transaction.placeOrder.IStartParams;
19
18
  export { AGENT_IDENTIFIER_NAME_PASSPORT, createStartParams, IStartPlaceOrderParams };
@@ -5,10 +5,8 @@ exports.createStartParams = createStartParams;
5
5
  const factory_1 = require("../../../../factory");
6
6
  const AGENT_IDENTIFIER_NAME_PASSPORT = 'passport';
7
7
  exports.AGENT_IDENTIFIER_NAME_PASSPORT = AGENT_IDENTIFIER_NAME_PASSPORT;
8
- function createStartParams(params, expiresInSeconds, passport, seller,
9
- // broker?: factory.order.IBroker,
10
- customerType) {
11
- const { broker } = params;
8
+ function createStartParams(params, expiresInSeconds, passport, seller, customerType) {
9
+ // const { broker } = params;
12
10
  // let clientUser: Omit<factory.clientUser.IClientUser, 'scope' | 'scopes'> | undefined;
13
11
  let instrument;
14
12
  if (typeof params.object.clientUser?.client_id === 'string') {
@@ -21,7 +19,7 @@ customerType) {
21
19
  // ...(typeof passport?.scope === 'string') ? { passport } : undefined, // discontinue(2026-06-10~)
22
20
  // ...(typeof clientUser?.client_id === 'string') ? { clientUser } : undefined, // discontinue(2026-06-10~)
23
21
  // ...(typeof params.object?.name === 'string') ? { name: params.object?.name } : undefined, // discontinue(2026-06-11~)
24
- ...(typeof broker?.typeOf === 'string') ? { broker: broker } : undefined,
22
+ // ...(typeof broker?.typeOf === 'string') ? { broker: broker } : undefined, // discontinue(2026-06-22~)
25
23
  ...(typeof params.object.customer?.typeOf === 'string') ? { customer: params.object.customer } : undefined,
26
24
  ...(typeof customerType === 'string') ? { customerType } : undefined
27
25
  };
@@ -94,6 +94,7 @@ function updateAgent(params) {
94
94
  await repos.orderInTransaction.setCustomer({
95
95
  orderNumber,
96
96
  project: transaction.project,
97
+ identifier: params.id,
97
98
  customer: customerInOrder
98
99
  });
99
100
  }
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * 注文取引サービス
3
3
  */
4
- import { POINT_AWARD_IDENTIFIER_NAME } from '../../factory/order';
5
4
  import { confirm } from './placeOrder/confirm';
6
5
  import { exportTasksById } from './placeOrder/exportTasksById';
7
6
  import { start, IStartPlaceOrderParams } from './placeOrder/start';
8
7
  import { updateAgent } from './placeOrder/updateAgent';
9
- export { confirm, POINT_AWARD_IDENTIFIER_NAME, start, IStartPlaceOrderParams, exportTasksById, updateAgent };
8
+ import { issueOrderNumberIfNotExist } from './placeOrder/issueOrderNumberIfNotExist';
9
+ export { confirm, start, IStartPlaceOrderParams, exportTasksById, updateAgent, issueOrderNumberIfNotExist };
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateAgent = exports.exportTasksById = exports.start = exports.POINT_AWARD_IDENTIFIER_NAME = exports.confirm = void 0;
3
+ exports.issueOrderNumberIfNotExist = exports.updateAgent = exports.exportTasksById = exports.start = exports.confirm = void 0;
4
4
  /**
5
5
  * 注文取引サービス
6
6
  */
7
- const order_1 = require("../../factory/order");
8
- Object.defineProperty(exports, "POINT_AWARD_IDENTIFIER_NAME", { enumerable: true, get: function () { return order_1.POINT_AWARD_IDENTIFIER_NAME; } });
9
7
  const confirm_1 = require("./placeOrder/confirm");
10
8
  Object.defineProperty(exports, "confirm", { enumerable: true, get: function () { return confirm_1.confirm; } });
11
9
  const exportTasksById_1 = require("./placeOrder/exportTasksById");
@@ -14,3 +12,5 @@ const start_1 = require("./placeOrder/start");
14
12
  Object.defineProperty(exports, "start", { enumerable: true, get: function () { return start_1.start; } });
15
13
  const updateAgent_1 = require("./placeOrder/updateAgent");
16
14
  Object.defineProperty(exports, "updateAgent", { enumerable: true, get: function () { return updateAgent_1.updateAgent; } });
15
+ const issueOrderNumberIfNotExist_1 = require("./placeOrder/issueOrderNumberIfNotExist");
16
+ Object.defineProperty(exports, "issueOrderNumberIfNotExist", { enumerable: true, get: function () { return issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist; } });