@chevre/domain 25.0.0-alpha.9 → 25.0.0

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 (93) hide show
  1. package/lib/chevre/repo/message.d.ts +7 -15
  2. package/lib/chevre/repo/message.js +37 -74
  3. package/lib/chevre/repo/mongoose/schemas/message.d.ts +1 -1
  4. package/lib/chevre/repo/mongoose/schemas/order.js +2 -110
  5. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +7 -9
  6. package/lib/chevre/repo/mongoose/schemas/setting.js +1 -1
  7. package/lib/chevre/repo/mongoose/schemas/transaction.js +51 -50
  8. package/lib/chevre/repo/order.d.ts +1 -7
  9. package/lib/chevre/repo/order.js +56 -26
  10. package/lib/chevre/repo/orderInTransaction.d.ts +41 -22
  11. package/lib/chevre/repo/orderInTransaction.js +108 -79
  12. package/lib/chevre/repo/passport.d.ts +5 -2
  13. package/lib/chevre/repo/setting/waiter.d.ts +17 -0
  14. package/lib/chevre/repo/setting/waiter.js +39 -0
  15. package/lib/chevre/repo/setting.d.ts +12 -11
  16. package/lib/chevre/repo/setting.js +6 -18
  17. package/lib/chevre/repo/task.d.ts +1 -1
  18. package/lib/chevre/repo/transaction/placeOrder.d.ts +1 -6
  19. package/lib/chevre/repo/transaction/placeOrder.js +37 -26
  20. package/lib/chevre/repo/transaction.d.ts +1 -1
  21. package/lib/chevre/repo/transaction.js +2 -2
  22. package/lib/chevre/repository.d.ts +5 -0
  23. package/lib/chevre/repository.js +11 -0
  24. package/lib/chevre/service/assetTransaction/reserve/start.d.ts +0 -2
  25. package/lib/chevre/service/offer/any.d.ts +1 -3
  26. package/lib/chevre/service/offer/any.js +7 -8
  27. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +0 -2
  28. package/lib/chevre/service/offer/event/authorize.d.ts +0 -4
  29. package/lib/chevre/service/offer/event/authorize.js +5 -8
  30. package/lib/chevre/service/offer/event/voidTransaction.js +29 -17
  31. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +16 -12
  32. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.d.ts +0 -6
  33. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +10 -12
  34. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.d.ts +1 -1
  35. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +6 -7
  36. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +20 -17
  37. package/lib/chevre/service/order/deleteOrder.d.ts +6 -10
  38. package/lib/chevre/service/order/deleteOrder.js +7 -48
  39. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  40. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
  41. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.d.ts +4 -1
  42. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +1 -26
  43. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  44. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +3 -2
  45. package/lib/chevre/service/order/placeOrder/factory.d.ts +1 -1
  46. package/lib/chevre/service/order/placeOrder/factory.js +6 -6
  47. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.d.ts +1 -3
  48. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +3 -15
  49. package/lib/chevre/service/order/placeOrder.js +6 -6
  50. package/lib/chevre/service/order.d.ts +1 -2
  51. package/lib/chevre/service/order.js +1 -5
  52. package/lib/chevre/service/payment/any/authorize/fixOrderAsNeeded.d.ts +2 -4
  53. package/lib/chevre/service/payment/any/authorize/fixOrderAsNeeded.js +4 -6
  54. package/lib/chevre/service/payment/any/authorize.d.ts +2 -0
  55. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +0 -4
  56. package/lib/chevre/service/payment/any/publishPaymentUrl.js +5 -8
  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/deleteTransaction.js +2 -10
  60. package/lib/chevre/service/task/publishPaymentUrl.js +6 -9
  61. package/lib/chevre/service/taskHandler.js +0 -1
  62. package/lib/chevre/service/transaction/deleteTransaction.d.ts +8 -16
  63. package/lib/chevre/service/transaction/deleteTransaction.js +46 -145
  64. package/lib/chevre/service/transaction/placeOrder/confirm/factory/result.d.ts +7 -2
  65. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.d.ts +3 -2
  66. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.d.ts +3 -2
  67. package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +2 -5
  68. package/lib/chevre/service/transaction/placeOrder/confirm.js +29 -24
  69. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.d.ts +2 -3
  70. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +45 -54
  71. package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +0 -4
  72. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +2 -3
  73. package/lib/chevre/service/transaction/placeOrder/issueOrderNumberIfNotExist.d.ts +5 -0
  74. package/lib/chevre/service/transaction/placeOrder/issueOrderNumberIfNotExist.js +37 -23
  75. package/lib/chevre/service/transaction/placeOrder/start/factory.d.ts +20 -4
  76. package/lib/chevre/service/transaction/placeOrder/start/factory.js +20 -7
  77. package/lib/chevre/service/transaction/placeOrder/start.d.ts +9 -4
  78. package/lib/chevre/service/transaction/placeOrder/start.js +18 -1
  79. package/lib/chevre/service/transaction/placeOrder/updateAgent.d.ts +0 -4
  80. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +19 -22
  81. package/lib/chevre/service/transaction/placeOrder.d.ts +1 -2
  82. package/lib/chevre/service/transaction/placeOrder.js +1 -3
  83. package/lib/chevre/service/transaction.d.ts +0 -4
  84. package/lib/chevre/service/transaction.js +1 -1
  85. package/lib/chevre/service.d.ts +0 -2
  86. package/lib/chevre/service.js +0 -2
  87. package/package.json +2 -2
  88. package/lib/chevre/factory/order.d.ts +0 -2
  89. package/lib/chevre/factory/order.js +0 -5
  90. package/lib/chevre/service/order/placeOrderWithoutTransaction.d.ts +0 -22
  91. package/lib/chevre/service/order/placeOrderWithoutTransaction.js +0 -51
  92. package/lib/chevre/service/task/deletePerson.d.ts +0 -6
  93. package/lib/chevre/service/task/deletePerson.js +0 -465
@@ -46,9 +46,6 @@ export declare class MessageRepo {
46
46
  projectFields(params: ISearchConditions, inclusion: IKeyOfProjection[]): Promise<(IEmailMessage & {
47
47
  id: string;
48
48
  })[]>;
49
- /**
50
- * コードをキーにしてなければ作成する(複数対応)
51
- */
52
49
  /**
53
50
  * コードをキーにしてひとつ更新(なければ作成する)
54
51
  */
@@ -62,18 +59,13 @@ export declare class MessageRepo {
62
59
  id: string;
63
60
  };
64
61
  }): Promise<IFindByIdentifierResult>;
65
- deleteByMainEntityOrderNumber(params: {
66
- project: {
67
- id: string;
68
- };
69
- mainEntity: {
70
- orderNumber: string;
71
- };
72
- }): Promise<{
73
- n?: number;
74
- ok?: number;
75
- deletedCount?: number;
76
- } | null>;
62
+ /**
63
+ * 発行日時を基準に複数削除
64
+ * 2026-06-28~
65
+ */
66
+ deleteDatePublishedPassedCertainPeriod(params: {
67
+ $lt: Date;
68
+ }): Promise<void>;
77
69
  unsetUnnecessaryFields(params: {
78
70
  filter: any;
79
71
  $unset: any;
@@ -80,65 +80,6 @@ class MessageRepo {
80
80
  .lean() // 2024-09-19~
81
81
  .exec();
82
82
  }
83
- // 重複エラーをハンドルするためにupsertOneByIdentifierへ移行(2025-05-11~)
84
- /**
85
- * コードをキーにしてなければ作成する(複数対応)
86
- */
87
- // public async upsertByIdentifier(
88
- // params: Pick<
89
- // IEmailMessage,
90
- // 'about' | 'identifier' | 'mainEntity' | 'name' | 'project' | 'sender' | 'text' | 'toRecipient' | 'provider'
91
- // >[]
92
- // ): Promise<BulkWriteResult | void> {
93
- // const now = new Date();
94
- // const bulkWriteOps: AnyBulkWriteOperation<IEmailMessage>[] = [];
95
- // if (Array.isArray(params)) {
96
- // params.forEach((creatingNoteParams) => {
97
- // const { about, identifier, project, text, mainEntity, name, sender, toRecipient, provider } = creatingNoteParams;
98
- // if (typeof identifier !== 'string' || identifier.length === 0) {
99
- // throw new factory.errors.ArgumentNull('identifier');
100
- // }
101
- // if (typeof text !== 'string') {
102
- // throw new factory.errors.ArgumentNull('text');
103
- // }
104
- // // リソースのユニークネスを保証するfilter
105
- // const filter: RootFilterQuery<IEmailMessage> = {
106
- // // typeOf: { $eq: factory.creativeWorkType.EmailMessage },
107
- // 'project.id': { $eq: project.id },
108
- // identifier: { $eq: identifier }
109
- // };
110
- // const setOnInsert: MatchKeysAndValues<IEmailMessage> = {
111
- // identifier,
112
- // project,
113
- // datePublished: now,
114
- // typeOf: factory.creativeWorkType.EmailMessage
115
- // };
116
- // // 変更可能な属性のみ上書き
117
- // const setFields: MatchKeysAndValues<IEmailMessage> = {
118
- // provider,
119
- // mainEntity,
120
- // about,
121
- // sender,
122
- // text,
123
- // toRecipient,
124
- // ...(typeof name === 'string') ? { name } : undefined
125
- // };
126
- // const updateFilter: UpdateFilter<IEmailMessage> = {
127
- // $setOnInsert: setOnInsert,
128
- // $set: setFields
129
- // };
130
- // const updateOne: UpdateOneModel<IEmailMessage> = {
131
- // filter,
132
- // update: updateFilter,
133
- // upsert: true
134
- // };
135
- // bulkWriteOps.push({ updateOne });
136
- // });
137
- // }
138
- // if (bulkWriteOps.length > 0) {
139
- // return this.messageModel.bulkWrite(bulkWriteOps, { ordered: false });
140
- // }
141
- // }
142
83
  /**
143
84
  * コードをキーにしてひとつ更新(なければ作成する)
144
85
  */
@@ -219,22 +160,44 @@ class MessageRepo {
219
160
  }
220
161
  return doc;
221
162
  }
222
- async deleteByMainEntityOrderNumber(params) {
223
- return this.messageModel.deleteMany({
224
- 'project.id': { $eq: params.project.id },
225
- 'mainEntity.orderNumber': { $exists: true, $eq: params.mainEntity.orderNumber }
226
- })
227
- .exec()
228
- .then((result) => {
229
- return {
230
- // n: result?.n,
231
- // opTime: result.opTime,
232
- // ok: result?.ok,
233
- // operationTime,
234
- deletedCount: result?.deletedCount
235
- };
236
- });
163
+ /**
164
+ * 発行日時を基準に複数削除
165
+ * 2026-06-28~
166
+ */
167
+ async deleteDatePublishedPassedCertainPeriod(params) {
168
+ const { $lt } = params;
169
+ if ($lt instanceof Date) {
170
+ await this.messageModel.deleteMany({
171
+ datePublished: { $lt }
172
+ })
173
+ .exec();
174
+ }
237
175
  }
176
+ // public async deleteByMainEntityOrderNumber(params: {
177
+ // project: { id: string };
178
+ // mainEntity: { orderNumber: string };
179
+ // }): Promise<{
180
+ // n?: number;
181
+ // // opTime: result.opTime,
182
+ // ok?: number;
183
+ // // operationTime,
184
+ // deletedCount?: number;
185
+ // } | null> {
186
+ // return this.messageModel.deleteMany({
187
+ // 'project.id': { $eq: params.project.id },
188
+ // 'mainEntity.orderNumber': { $exists: true, $eq: params.mainEntity.orderNumber }
189
+ // })
190
+ // .exec()
191
+ // .then((result) => {
192
+ // return {
193
+ // // n: result?.n,
194
+ // // opTime: result.opTime,
195
+ // // ok: result?.ok,
196
+ // // operationTime,
197
+ // deletedCount: result?.deletedCount
198
+ // };
199
+ // });
200
+ // }
238
201
  async unsetUnnecessaryFields(params) {
239
202
  return this.messageModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
240
203
  .exec();
@@ -16,7 +16,7 @@ export type IEmailMessage = factory.creativeWork.message.email.ICreativeWork & {
16
16
  typeOf: factory.organizationType.Corporation;
17
17
  };
18
18
  };
19
- type IDocType = Omit<IEmailMessage, 'id'>;
19
+ type IDocType = Pick<IEmailMessage, 'about' | 'identifier' | 'name' | 'project' | 'sender' | 'text' | 'toRecipient' | 'typeOf' | 'datePublished' | 'mainEntity' | 'provider'>;
20
20
  type IModel = Model<IDocType, Record<string, never>, Record<string, never>, IVirtuals>;
21
21
  type ISchemaDefinition = SchemaDefinition<IDocType>;
22
22
  type ISchema = Schema<IDocType, IModel, Record<string, never>, Record<string, never>, IVirtuals, Record<string, never>, ISchemaDefinition, IDocType>;
@@ -12,7 +12,7 @@ const schemaDefinition = {
12
12
  project: { type: mongoose_1.SchemaTypes.Mixed, required: true },
13
13
  typeOf: { type: String, required: true },
14
14
  name: String,
15
- seller: mongoose_1.SchemaTypes.Mixed,
15
+ seller: { type: mongoose_1.SchemaTypes.Mixed, required: true },
16
16
  customer: mongoose_1.SchemaTypes.Mixed,
17
17
  returner: mongoose_1.SchemaTypes.Mixed,
18
18
  confirmationNumber: String,
@@ -26,7 +26,7 @@ const schemaDefinition = {
26
26
  orderDate: { type: Date, required: true },
27
27
  dateReturned: Date,
28
28
  orderedItem: [mongoose_1.SchemaTypes.Mixed],
29
- identifier: String, // 注文取引IDとして再定義(2026-06-22~)
29
+ identifier: { type: String, required: true }, // 注文取引IDとして再定義(2026-06-22~)
30
30
  // 以下廃止(2026-06-13~)
31
31
  // identifier: SchemaTypes.Mixed, // 廃止するためにMixed化(2026-06-12~)
32
32
  // isGift: Boolean,
@@ -61,15 +61,6 @@ const indexes = [
61
61
  { 'project.id': 1, orderDate: -1 },
62
62
  { name: 'searchByProjectId-v20220721' }
63
63
  ],
64
- // [
65
- // { identifier: 1, orderDate: -1 },
66
- // {
67
- // name: 'searchByIdentifier',
68
- // partialFilterExpression: {
69
- // identifier: { $exists: true }
70
- // }
71
- // }
72
- // ],
73
64
  [
74
65
  // 注文取引IDはユニークなはず
75
66
  { identifier: 1 },
@@ -86,15 +77,6 @@ const indexes = [
86
77
  name: 'uniqueOrderNumber'
87
78
  }
88
79
  ],
89
- // [
90
- // { 'seller.typeOf': 1, orderDate: -1 },
91
- // {
92
- // name: 'searchBySellerTypeOf',
93
- // partialFilterExpression: {
94
- // 'seller.typeOf': { $exists: true }
95
- // }
96
- // }
97
- // ],
98
80
  [
99
81
  { 'seller.id': 1, orderDate: -1 },
100
82
  {
@@ -161,24 +143,6 @@ const indexes = [
161
143
  }
162
144
  }
163
145
  ],
164
- // [
165
- // { 'customer.additionalProperty': 1, orderDate: -1 },
166
- // {
167
- // name: 'searchByCustomerAdditionalProperty',
168
- // partialFilterExpression: {
169
- // 'customer.additionalProperty': { $exists: true }
170
- // }
171
- // }
172
- // ],
173
- // [
174
- // { 'customer.memberOf.membershipNumber': 1, orderDate: -1 },
175
- // {
176
- // name: 'searchByCustomerMemberhipNumberAndOrderDate',
177
- // partialFilterExpression: {
178
- // 'customer.memberOf.membershipNumber': { $exists: true }
179
- // }
180
- // }
181
- // ],
182
146
  [
183
147
  { 'customer.givenName': 1, orderDate: -1 },
184
148
  {
@@ -242,15 +206,6 @@ const indexes = [
242
206
  }
243
207
  }
244
208
  ],
245
- // [
246
- // { 'paymentMethods.typeOf': 1, orderDate: -1 },
247
- // {
248
- // name: 'searchByPaymentMethodTypeAndOrderDate',
249
- // partialFilterExpression: {
250
- // 'paymentMethods.typeOf': { $exists: true }
251
- // }
252
- // }
253
- // ],
254
209
  [
255
210
  { 'paymentMethods.paymentMethod.identifier': 1, orderDate: -1 },
256
211
  {
@@ -278,15 +233,6 @@ const indexes = [
278
233
  }
279
234
  }
280
235
  ],
281
- // [
282
- // { 'acceptedOffers.itemOffered.identifier': 1, orderDate: -1 },
283
- // {
284
- // name: 'searchByItemOfferedIdentifier',
285
- // partialFilterExpression: {
286
- // 'acceptedOffers.itemOffered.identifier': { $exists: true }
287
- // }
288
- // }
289
- // ],
290
236
  [
291
237
  { 'acceptedOffers.itemOffered.id': 1, orderDate: -1 },
292
238
  {
@@ -296,42 +242,6 @@ const indexes = [
296
242
  }
297
243
  }
298
244
  ],
299
- // [
300
- // { 'acceptedOffers.itemOffered.issuedThrough.typeOf': 1, orderDate: -1 },
301
- // {
302
- // name: 'searchByItemOfferedIssuedThroughTypeOf',
303
- // partialFilterExpression: {
304
- // 'acceptedOffers.itemOffered.issuedThrough.typeOf': { $exists: true }
305
- // }
306
- // }
307
- // ],
308
- // [
309
- // { 'acceptedOffers.itemOffered.issuedThrough.id': 1, orderDate: -1 },
310
- // {
311
- // name: 'searchByItemOfferedIssuedThroughId',
312
- // partialFilterExpression: {
313
- // 'acceptedOffers.itemOffered.issuedThrough.id': { $exists: true }
314
- // }
315
- // }
316
- // ],
317
- // [
318
- // { 'acceptedOffers.itemOffered.programMembershipUsed.identifier': 1, orderDate: -1 },
319
- // {
320
- // name: 'searchByItemOfferedProgramMembershipUsedIdentifier',
321
- // partialFilterExpression: {
322
- // 'acceptedOffers.itemOffered.programMembershipUsed.identifier': { $exists: true }
323
- // }
324
- // }
325
- // ],
326
- // [
327
- // { 'acceptedOffers.itemOffered.programMembershipUsed.issuedThrough.serviceType.codeValue': 1, orderDate: -1 },
328
- // {
329
- // name: 'searchByItemOfferedMembershipUsedServiceType',
330
- // partialFilterExpression: {
331
- // 'acceptedOffers.itemOffered.programMembershipUsed.issuedThrough.serviceType.codeValue': { $exists: true }
332
- // }
333
- // }
334
- // ],
335
245
  [
336
246
  { 'acceptedOffers.itemOffered.reservationNumber': 1, orderDate: -1 },
337
247
  {
@@ -350,24 +260,6 @@ const indexes = [
350
260
  }
351
261
  }
352
262
  ],
353
- // [
354
- // { 'acceptedOffers.itemOffered.reservationFor.identifier': 1, orderDate: -1 },
355
- // {
356
- // name: 'searchByItemOfferedReservationForIdentifierAndOrderDate',
357
- // partialFilterExpression: {
358
- // 'acceptedOffers.itemOffered.reservationFor.identifier': { $exists: true }
359
- // }
360
- // }
361
- // ],
362
- // [
363
- // { 'acceptedOffers.itemOffered.reservationFor.name': 1, orderDate: -1 },
364
- // {
365
- // name: 'searchByItemOfferedReservationForNameAndOrderDate',
366
- // partialFilterExpression: {
367
- // 'acceptedOffers.itemOffered.reservationFor.name': { $exists: true }
368
- // }
369
- // }
370
- // ],
371
263
  [
372
264
  { 'acceptedOffers.itemOffered.reservationFor.endDate': 1, orderDate: -1 },
373
265
  {
@@ -31,13 +31,7 @@ interface IOnTaskStatusChanged {
31
31
  interface IOnEventChanged {
32
32
  informEvent2agg?: factory.project.IInformParams[];
33
33
  }
34
- interface IOnTransactionStatusChanged {
35
- /**
36
- * AggService通知先
37
- */
38
- informTransaction?: factory.project.IInformParams[];
39
- }
40
- interface IStorageSettings {
34
+ export interface IStorageSettings {
41
35
  /**
42
36
  * 取引保管期間(Confirmed)
43
37
  * default:365
@@ -53,6 +47,11 @@ interface IStorageSettings {
53
47
  assetTransactionInDays?: number;
54
48
  taskInDays?: number;
55
49
  eventInDays?: number;
50
+ /**
51
+ * メッセージ保管日数
52
+ * 2026-06-28~
53
+ */
54
+ messageInDays?: number;
56
55
  /**
57
56
  * イベント終了日時からn日後まで座席をロックする
58
57
  */
@@ -80,7 +79,7 @@ interface ITriggerWebhookSettings {
80
79
  retryCountMax?: number;
81
80
  retryIntervalInMS?: number;
82
81
  }
83
- interface IWaiterSettings {
82
+ export interface IWaiterSettings {
84
83
  disabled?: boolean;
85
84
  passportUnavailable?: boolean;
86
85
  passportIssuers: string[];
@@ -230,7 +229,6 @@ export interface ISetting {
230
229
  onResourceUpdated?: {
231
230
  informResource?: factory.project.IInformParams[];
232
231
  };
233
- onTransactionStatusChanged?: IOnTransactionStatusChanged;
234
232
  orderNumber?: IOrderNumberSetting;
235
233
  project: {
236
234
  id: string;
@@ -16,7 +16,7 @@ const schemaDefinition = {
16
16
  onReservationStatusChanged: mongoose_1.SchemaTypes.Mixed,
17
17
  onTaskStatusChanged: mongoose_1.SchemaTypes.Mixed,
18
18
  onResourceUpdated: mongoose_1.SchemaTypes.Mixed,
19
- onTransactionStatusChanged: mongoose_1.SchemaTypes.Mixed,
19
+ // onTransactionStatusChanged: SchemaTypes.Mixed, // discontinue(2026-06-29~)
20
20
  orderNumber: mongoose_1.SchemaTypes.Mixed,
21
21
  quota: mongoose_1.SchemaTypes.Mixed,
22
22
  serviceOutputIdentifier: mongoose_1.SchemaTypes.Mixed,
@@ -22,8 +22,6 @@ const schemaDefinition = {
22
22
  startDate: Date,
23
23
  endDate: Date,
24
24
  tasksExportAction: mongoose_1.SchemaTypes.Mixed,
25
- // tasksExportedAt: Date, // discontinue(2024-06-19~)
26
- // tasksExportationStatus: String, // discontinue(2024-06-19~)
27
25
  potentialActions: mongoose_1.SchemaTypes.Mixed,
28
26
  instrument: mongoose_1.SchemaTypes.Mixed
29
27
  };
@@ -81,24 +79,6 @@ const indexes = [
81
79
  { expires: 1, startDate: -1 },
82
80
  { name: 'searchByExpiresAndStartDate' }
83
81
  ],
84
- [
85
- { 'result.order.confirmationNumber': 1, startDate: -1 },
86
- {
87
- name: 'searchByResultOrderConfirmationNumber',
88
- partialFilterExpression: {
89
- 'result.order.confirmationNumber': { $exists: true }
90
- }
91
- }
92
- ],
93
- [
94
- { 'result.order.orderNumber': 1, startDate: -1 },
95
- {
96
- name: 'searchByResultOrderNumberAndStartDate',
97
- partialFilterExpression: {
98
- 'result.order.orderNumber': { $exists: true }
99
- }
100
- }
101
- ],
102
82
  [
103
83
  { 'object.confirmationNumber': 1, startDate: -1 },
104
84
  {
@@ -126,36 +106,6 @@ const indexes = [
126
106
  }
127
107
  }
128
108
  ],
129
- [
130
- // 結果の注文番号はユニークなはず
131
- {
132
- typeOf: 1,
133
- 'result.order.orderNumber': 1
134
- },
135
- {
136
- name: 'searchPlaceOrderByOrderNumber',
137
- unique: true,
138
- partialFilterExpression: {
139
- 'result.order.orderNumber': { $exists: true }
140
- }
141
- }
142
- ],
143
- [
144
- // 注文取引のobject.orderNumberも発行されている場合ユニークなはず(2026-02-21~)
145
- {
146
- typeOf: 1,
147
- 'object.orderNumber': 1
148
- },
149
- {
150
- name: 'uniquePlacingOrderNumber20260221',
151
- unique: true,
152
- partialFilterExpression: {
153
- typeOf: factory_1.factory.transactionType.PlaceOrder,
154
- 'object.orderNumber': { $exists: true },
155
- startDate: { $gte: new Date('2026-02-21T11:00:00Z') }
156
- }
157
- }
158
- ],
159
109
  [
160
110
  // 注文取引のobject.orderNumberも発行されている場合ユニークなはず(2026-02-21~)
161
111
  {
@@ -261,6 +211,57 @@ const indexes = [
261
211
  }
262
212
  }
263
213
  ]
214
+ // result.order廃止につきインデックス廃止(2026-06-28~)
215
+ // [
216
+ // { 'result.order.confirmationNumber': 1, startDate: -1 },
217
+ // {
218
+ // name: 'searchByResultOrderConfirmationNumber',
219
+ // partialFilterExpression: {
220
+ // 'result.order.confirmationNumber': { $exists: true }
221
+ // }
222
+ // }
223
+ // ],
224
+ // [
225
+ // { 'result.order.orderNumber': 1, startDate: -1 },
226
+ // {
227
+ // name: 'searchByResultOrderNumberAndStartDate',
228
+ // partialFilterExpression: {
229
+ // 'result.order.orderNumber': { $exists: true }
230
+ // }
231
+ // }
232
+ // ],
233
+ // result.order廃止につきインデックス廃止(2026-06-28~)
234
+ // [
235
+ // // 結果の注文番号はユニークなはず
236
+ // {
237
+ // typeOf: 1,
238
+ // 'result.order.orderNumber': 1
239
+ // },
240
+ // {
241
+ // name: 'searchPlaceOrderByOrderNumber',
242
+ // unique: true,
243
+ // partialFilterExpression: {
244
+ // 'result.order.orderNumber': { $exists: true }
245
+ // }
246
+ // }
247
+ // ],
248
+ // uniquePlacingOrderNumberと重複しているので廃止(2026-06-28~)
249
+ // [
250
+ // // 注文取引のobject.orderNumberも発行されている場合ユニークなはず(2026-02-21~)
251
+ // {
252
+ // typeOf: 1,
253
+ // 'object.orderNumber': 1
254
+ // },
255
+ // {
256
+ // name: 'uniquePlacingOrderNumber20260221',
257
+ // unique: true,
258
+ // partialFilterExpression: {
259
+ // typeOf: factory.transactionType.PlaceOrder,
260
+ // 'object.orderNumber': { $exists: true },
261
+ // startDate: { $gte: new Date('2026-02-21T11:00:00Z') }
262
+ // }
263
+ // }
264
+ // ],
264
265
  ];
265
266
  exports.indexes = indexes;
266
267
  /**
@@ -26,7 +26,7 @@ interface IAggregateOrder {
26
26
  export type IOrderOnStatusChanged = Pick<IOrderWithoutAcceptedOffers & {
27
27
  id: string;
28
28
  }, 'id' | 'orderNumber' | 'broker' | 'confirmationNumber' | 'customer' | 'dateReturned' | 'name' | 'orderDate' | 'orderStatus' | 'orderedItem' | 'paymentMethods' | 'previousOrderStatus' | 'price' | 'priceCurrency' | 'project' | 'returner' | 'seller' | 'typeOf'>;
29
- type ISearchConditions = Pick<factory.order.ISearchConditions, 'acceptedOffers' | 'broker' | 'confirmationNumbers' | 'customer' | 'name' | 'orderDate' | 'orderNumbers' | 'orderStatuses' | 'paymentMethods' | 'project' | 'provider' | 'seller'>;
29
+ type ISearchConditions = Pick<factory.order.ISearchConditions, 'acceptedOffers' | 'broker' | 'confirmationNumbers' | 'customer' | 'name' | 'orderDate' | 'orderNumbers' | 'orderStatuses' | 'paymentMethods' | 'project' | 'provider' | 'seller' | 'identifier'>;
30
30
  /**
31
31
  * 注文リポジトリ
32
32
  */
@@ -34,12 +34,6 @@ export declare class OrderRepo {
34
34
  private readonly orderModel;
35
35
  constructor(connection: Connection);
36
36
  static CREATE_MONGO_CONDITIONS(params: ISearchConditions): FilterQuery<factory.order.IOrder>[];
37
- /**
38
- * なければ作成する
39
- */
40
- createIfNotExist(order: IOrderWithoutAcceptedOffers & {
41
- acceptedOffers: factory.order.IAcceptedOffer[];
42
- }): Promise<void>;
43
37
  /**
44
38
  * 注文ステータスを変更する
45
39
  */
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OrderRepo = void 0;
4
4
  const factory_1 = require("../factory");
5
5
  const order_1 = require("./mongoose/schemas/order");
6
- const errorHandler_1 = require("../errorHandler");
6
+ // import { isMongoDuplicateError } from '../errorHandler';
7
7
  const settings_1 = require("../settings");
8
8
  /**
9
9
  * ドキュメント検索時に指定可能なprojectionフィールドを厳密に定義する
@@ -239,6 +239,10 @@ class OrderRepo {
239
239
  }
240
240
  });
241
241
  }
242
+ const identifierEq = params.identifier?.$eq;
243
+ if (typeof identifierEq === 'string') {
244
+ andConditions.push({ identifier: { $eq: identifierEq } });
245
+ }
242
246
  if (Array.isArray(params.orderNumbers)) {
243
247
  if (params.orderNumbers.length === 1) {
244
248
  // use $eq(2025-04-01~)
@@ -483,31 +487,37 @@ class OrderRepo {
483
487
  }
484
488
  return andConditions;
485
489
  }
486
- /**
487
- * なければ作成する
488
- */
489
- async createIfNotExist(order) {
490
- try {
491
- // 存在しなければ上書き
492
- // updateOneに変更(2024-01-14~)
493
- // await this.orderModel.findOneAndUpdate(
494
- await this.orderModel.updateOne({ orderNumber: order.orderNumber }, { $setOnInsert: order }, {
495
- // new: true,
496
- upsert: true
497
- })
498
- .exec();
499
- }
500
- catch (error) {
501
- let throwsError = true;
502
- if (await (0, errorHandler_1.isMongoDuplicateError)(error)) {
503
- // すでにorderNumberが存在する場合ok
504
- throwsError = false;
505
- }
506
- if (throwsError) {
507
- throw error;
508
- }
509
- }
510
- }
490
+ // OrderInTransactionリポジトリにて注文ドキュメントが生成されるように変更したのでもう不要
491
+ // /**
492
+ // * なければ作成する
493
+ // */
494
+ // public async createIfNotExist(order: IOrderWithoutAcceptedOffers & {
495
+ // acceptedOffers: factory.order.IAcceptedOffer[];
496
+ // }): Promise<void> {
497
+ // try {
498
+ // // 存在しなければ上書き
499
+ // // updateOneに変更(2024-01-14~)
500
+ // // await this.orderModel.findOneAndUpdate(
501
+ // await this.orderModel.updateOne(
502
+ // { orderNumber: order.orderNumber },
503
+ // { $setOnInsert: order },
504
+ // {
505
+ // // new: true,
506
+ // upsert: true
507
+ // }
508
+ // )
509
+ // .exec();
510
+ // } catch (error) {
511
+ // let throwsError = true;
512
+ // if (await isMongoDuplicateError(error)) {
513
+ // // すでにorderNumberが存在する場合ok
514
+ // throwsError = false;
515
+ // }
516
+ // if (throwsError) {
517
+ // throw error;
518
+ // }
519
+ // }
520
+ // }
511
521
  /**
512
522
  * 注文ステータスを変更する
513
523
  */
@@ -838,6 +848,26 @@ class OrderRepo {
838
848
  })
839
849
  .exec();
840
850
  }
851
+ // public async updateIdentifier4migration(params: {
852
+ // project: { id: string };
853
+ // orderNumber: string;
854
+ // identifier: string;
855
+ // }) {
856
+ // const { orderNumber, project, identifier } = params;
857
+ // return this.orderModel.updateOne(
858
+ // {
859
+ // orderNumber: { $eq: orderNumber },
860
+ // 'project.id': { $eq: project.id },
861
+ // typeOf: { $eq: factory.order.OrderType.Order }
862
+ // },
863
+ // {
864
+ // $set: {
865
+ // ...(typeof identifier === 'string') ? { identifier } : undefined
866
+ // }
867
+ // }
868
+ // )
869
+ // .exec();
870
+ // }
841
871
  async aggregateOrder(params) {
842
872
  const matchConditions = {
843
873
  orderDate: {