@chevre/domain 26.0.0-alpha.24 → 26.0.0-alpha.26

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 (38) hide show
  1. package/lib/chevre/repo/acceptedOffer.d.ts +0 -7
  2. package/lib/chevre/repo/acceptedOffer.js +27 -27
  3. package/lib/chevre/repo/adminAssetTransaction.d.ts +132 -0
  4. package/lib/chevre/repo/adminAssetTransaction.js +504 -0
  5. package/lib/chevre/repo/aggregateAssetTransaction.d.ts +43 -0
  6. package/lib/chevre/repo/aggregateAssetTransaction.js +166 -0
  7. package/lib/chevre/repo/assetTransaction.d.ts +10 -235
  8. package/lib/chevre/repo/assetTransaction.js +48 -636
  9. package/lib/chevre/repo/ownershipInfo.d.ts +1 -35
  10. package/lib/chevre/repo/ownershipInfo.js +55 -161
  11. package/lib/chevre/repository.d.ts +10 -0
  12. package/lib/chevre/repository.js +24 -2
  13. package/lib/chevre/service/aggregation/system.d.ts +5 -5
  14. package/lib/chevre/service/aggregation/system.js +2 -2
  15. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +10 -17
  16. package/lib/chevre/service/assetTransaction/refund.js +2 -2
  17. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -3
  18. package/lib/chevre/service/order/deleteOrder.js +0 -1
  19. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +1 -49
  20. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +2 -2
  21. package/lib/chevre/service/order/returnOrder.d.ts +0 -2
  22. package/lib/chevre/service/order/returnOrder.js +8 -40
  23. package/lib/chevre/service/order/sendOrder.d.ts +0 -2
  24. package/lib/chevre/service/order/sendOrder.js +41 -55
  25. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +1 -1
  26. package/lib/chevre/service/reserve/cancelReservation.js +3 -3
  27. package/lib/chevre/service/reserve/checkInReservation.js +2 -2
  28. package/lib/chevre/service/reserve/confirmReservation.js +1 -1
  29. package/lib/chevre/service/reserve/useReservation.js +1 -1
  30. package/lib/chevre/service/task/onAuthorizationCreated.js +2 -2
  31. package/lib/chevre/service/task/returnOrder.js +2 -5
  32. package/lib/chevre/service/task/returnPayTransaction.js +2 -2
  33. package/lib/chevre/service/task/sendOrder.js +2 -2
  34. package/lib/chevre/service/transaction/deleteTransaction/deletePayTransactionsByPlaceOrder.js +2 -2
  35. package/lib/chevre/service/transaction/deleteTransaction/deleteReservationsByPlaceOrder.js +2 -2
  36. package/lib/chevre/service/transaction/placeOrder/confirm.js +1 -1
  37. package/lib/chevre/service/validation/validateOrder.js +2 -2
  38. package/package.json +2 -2
@@ -12,43 +12,9 @@ export declare class OwnershipInfoRepo {
12
12
  private readonly ownershipInfoModel;
13
13
  constructor(connection: Connection);
14
14
  static CREATE_MONGO_CONDITIONS(params: Pick<IFindParams, 'ownedFromGte' | 'ownedFromLte' | 'project'>): FilterQuery<IDocType>[];
15
- /**
16
- * なければ作成する
17
- */
18
- createIfNotExistByIdentifier(ownershipInfo: Omit<IOwnershipInfoWithId, 'id'>): Promise<{
19
- id: string;
20
- }>;
21
15
  /**
22
16
  * 所有権を検索する
23
17
  */
24
- projectFields(params: IFindParams, inclusion?: (keyof IOwnershipInfoWithId)[]): Promise<IOwnershipInfoWithId[]>;
25
- /**
26
- * 識別子から所有期限を変更する
27
- * 存在しない場合undefinedを返す
28
- */
29
- findByIdentifierAndUpdateOwnedThrough(params: {
30
- project: {
31
- id: string;
32
- };
33
- identifier: string;
34
- ownedThrough: Date;
35
- }): Promise<Pick<IOwnershipInfoWithId, 'id' | 'identifier'> | undefined>;
36
- getCursor(conditions: any, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Omit<factory.ownershipInfo.IOwnershipInfo<factory.ownershipInfo.IGood>, "id"> & {
37
- _id: string;
38
- } & Required<{
39
- _id: string;
40
- }> & {
41
- __v: number;
42
- }, import("mongoose").QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Omit<factory.ownershipInfo.IOwnershipInfo<factory.ownershipInfo.IGood>, "id"> & {
43
- _id: string;
44
- } & Required<{
45
- _id: string;
46
- }> & {
47
- __v: number;
48
- }) | null>;
49
- unsetUnnecessaryFields(params: {
50
- filter: any;
51
- $unset: any;
52
- }): Promise<import("mongoose").UpdateWriteOpResult>;
18
+ findOwnershipInfos(params: IFindParams, inclusion?: (keyof IOwnershipInfoWithId)[]): Promise<IOwnershipInfoWithId[]>;
53
19
  }
54
20
  export {};
@@ -1,10 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OwnershipInfoRepo = void 0;
4
- const uuid_1 = require("uuid");
4
+ // import { v4 } from 'uuid';
5
5
  const ownershipInfo_1 = require("./mongoose/schemas/ownershipInfo");
6
- const errorHandler_1 = require("../errorHandler");
7
- const factory_1 = require("../factory");
8
6
  const settings_1 = require("../settings");
9
7
  /**
10
8
  * 所有権リポジトリ
@@ -34,57 +32,63 @@ class OwnershipInfoRepo {
34
32
  }
35
33
  return andConditions;
36
34
  }
37
- /**
38
- * なければ作成する
39
- */
40
- async createIfNotExistByIdentifier(ownershipInfo) {
41
- let doc;
42
- let duplicate = false;
43
- try {
44
- doc = await this.ownershipInfoModel.findOneAndUpdate({ identifier: { $eq: ownershipInfo.identifier } }, {
45
- // insert時以外は何もしなくてもよい
46
- $setOnInsert: {
47
- ...ownershipInfo,
48
- _id: (0, uuid_1.v4)() // 新規作成時は所有権ID発行
49
- }
50
- }, {
51
- new: true,
52
- upsert: true,
53
- projection: {
54
- _id: 0,
55
- id: { $toString: '$_id' }
56
- }
57
- })
58
- .lean()
59
- .exec();
60
- }
61
- catch (error) {
62
- if (await (0, errorHandler_1.isMongoDuplicateError)(error)) {
63
- // すでに所有権が存在する場合ok
64
- duplicate = true;
65
- }
66
- if (!duplicate) {
67
- throw error;
68
- }
69
- }
70
- if (duplicate) {
71
- // 重複の場合、再度取得
72
- doc = await this.ownershipInfoModel.findOne({ identifier: { $eq: ownershipInfo.identifier } }, {
73
- _id: 0,
74
- id: { $toString: '$_id' }
75
- })
76
- .lean()
77
- .exec();
78
- }
79
- if (doc === undefined || doc === null) {
80
- throw new factory_1.factory.errors.NotFound(this.ownershipInfoModel.modelName);
81
- }
82
- return { id: doc.id };
83
- }
35
+ // /**
36
+ // * なければ作成する
37
+ // */
38
+ // public async createIfNotExistByIdentifier(ownershipInfo: Omit<IOwnershipInfoWithId, 'id'>): Promise<{ id: string }> {
39
+ // let doc: { id: string } | undefined | null;
40
+ // let duplicate = false;
41
+ // try {
42
+ // doc = await this.ownershipInfoModel.findOneAndUpdate(
43
+ // { identifier: { $eq: ownershipInfo.identifier } },
44
+ // {
45
+ // // insert時以外は何もしなくてもよい
46
+ // $setOnInsert: {
47
+ // ...ownershipInfo,
48
+ // _id: v4() // 新規作成時は所有権ID発行
49
+ // }
50
+ // },
51
+ // {
52
+ // new: true,
53
+ // upsert: true,
54
+ // projection: {
55
+ // _id: 0,
56
+ // id: { $toString: '$_id' }
57
+ // }
58
+ // }
59
+ // )
60
+ // .lean<{ id: string }>()
61
+ // .exec();
62
+ // } catch (error) {
63
+ // if (await isMongoDuplicateError(error)) {
64
+ // // すでに所有権が存在する場合ok
65
+ // duplicate = true;
66
+ // }
67
+ // if (!duplicate) {
68
+ // throw error;
69
+ // }
70
+ // }
71
+ // if (duplicate) {
72
+ // // 重複の場合、再度取得
73
+ // doc = await this.ownershipInfoModel.findOne(
74
+ // { identifier: { $eq: ownershipInfo.identifier } },
75
+ // {
76
+ // _id: 0,
77
+ // id: { $toString: '$_id' }
78
+ // }
79
+ // )
80
+ // .lean<{ id: string }>()
81
+ // .exec();
82
+ // }
83
+ // if (doc === undefined || doc === null) {
84
+ // throw new factory.errors.NotFound(this.ownershipInfoModel.modelName);
85
+ // }
86
+ // return { id: doc.id };
87
+ // }
84
88
  /**
85
89
  * 所有権を検索する
86
90
  */
87
- async projectFields(params, inclusion) {
91
+ async findOwnershipInfos(params, inclusion) {
88
92
  const conditions = OwnershipInfoRepo.CREATE_MONGO_CONDITIONS(params);
89
93
  let projection = {
90
94
  _id: 0,
@@ -122,115 +126,5 @@ class OwnershipInfoRepo {
122
126
  .lean() // lean(2024-08-19~)
123
127
  .exec();
124
128
  }
125
- /**
126
- * 識別子から所有期限を変更する
127
- * 存在しない場合undefinedを返す
128
- */
129
- async findByIdentifierAndUpdateOwnedThrough(params) {
130
- return this.ownershipInfoModel.findOneAndUpdate({
131
- 'project.id': { $eq: params.project.id },
132
- identifier: { $eq: String(params.identifier) }
133
- }, { ownedThrough: params.ownedThrough }, {
134
- new: true,
135
- projection: {
136
- _id: 0,
137
- id: { $toString: '$_id' },
138
- identifier: 1
139
- }
140
- })
141
- .lean()
142
- .exec()
143
- .then((doc) => {
144
- // 存在しない場合も正常にハンドルする
145
- if (doc === null) {
146
- return;
147
- }
148
- else {
149
- return doc;
150
- }
151
- });
152
- }
153
- // /**
154
- // * 所有期限切れの所有権を削除する
155
- // */
156
- // public async deleteExpiredOwnershipInfos(params: {
157
- // ownedThroughLte: Date;
158
- // }) {
159
- // await this.ownershipInfoModel.deleteMany({
160
- // // 所有期限切れのもの(ownedThroughは必ず存在する)
161
- // ownedThrough: { $lte: params.ownedThroughLte }
162
- // })
163
- // .exec();
164
- // }
165
- // /**
166
- // * 所有者を追加する
167
- // */
168
- // public async addOwnerIfNotExist(params: {
169
- // /**
170
- // * 所有権ID
171
- // */
172
- // id: string;
173
- // ownedBy: factory.ownershipInfo.IOwner;
174
- // }): Promise<void> {
175
- // if (typeof params.ownedBy.id !== 'string' || params.ownedBy.id.length === 0) {
176
- // throw new factory.errors.ArgumentNull('ownedBy.id');
177
- // }
178
- // let newOwner: factory.ownershipInfo.IOwner | undefined;
179
- // if (params.ownedBy.typeOf === factory.personType.Person) {
180
- // newOwner = {
181
- // id: params.ownedBy.id,
182
- // typeOf: params.ownedBy.typeOf
183
- // };
184
- // }
185
- // if (newOwner !== undefined) {
186
- // const doc = await this.ownershipInfoModel.findOneAndUpdate(
187
- // { _id: { $eq: params.id } },
188
- // { $addToSet: { ownedBy: newOwner } },
189
- // {
190
- // new: true,
191
- // projection: { _id: 1 }
192
- // }
193
- // )
194
- // .exec();
195
- // if (doc === null) {
196
- // throw new factory.errors.NotFound(this.ownershipInfoModel.modelName);
197
- // }
198
- // }
199
- // }
200
- // /**
201
- // * 所有者を削除する
202
- // */
203
- // public async removeOwnerIfExist(params: {
204
- // /**
205
- // * 所有権ID
206
- // */
207
- // id: string;
208
- // ownedBy: { id: string };
209
- // }): Promise<void> {
210
- // if (typeof params.ownedBy.id !== 'string' || params.ownedBy.id.length === 0) {
211
- // throw new factory.errors.ArgumentNull('ownedBy.id');
212
- // }
213
- // const doc = await this.ownershipInfoModel.findOneAndUpdate(
214
- // { _id: { $eq: params.id } },
215
- // { $pull: { ownedBy: { id: params.ownedBy.id } } },
216
- // {
217
- // new: true,
218
- // projection: { _id: 1 }
219
- // }
220
- // )
221
- // .exec();
222
- // if (doc === null) {
223
- // throw new factory.errors.NotFound(this.ownershipInfoModel.modelName);
224
- // }
225
- // }
226
- getCursor(conditions, projection) {
227
- return this.ownershipInfoModel.find(conditions, projection)
228
- .sort({ ownedFrom: factory_1.factory.sortType.Ascending })
229
- .cursor();
230
- }
231
- async unsetUnnecessaryFields(params) {
232
- return this.ownershipInfoModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
233
- .exec();
234
- }
235
129
  }
236
130
  exports.OwnershipInfoRepo = OwnershipInfoRepo;
@@ -17,10 +17,12 @@ import type { PayActionRepo } from './repo/action/pay';
17
17
  import type { RefundActionRepo } from './repo/action/refund';
18
18
  import type { AsyncActionRepo } from './repo/asyncAction';
19
19
  import type { AdditionalPropertyRepo } from './repo/additionalProperty';
20
+ import type { AdminAssetTransactionRepo } from './repo/adminAssetTransaction';
20
21
  import type { AdminAsyncActionRepo } from './repo/adminAsyncAction';
21
22
  import type { AdminScheduledTaskRepo } from './repo/adminScheduledTask';
22
23
  import type { AdminTaskRepo } from './repo/adminTask';
23
24
  import type { AggregateActionRepo } from './repo/aggregateAction';
25
+ import type { AggregateAssetTransactionRepo } from './repo/aggregateAssetTransaction';
24
26
  import type { AggregateOfferRepo } from './repo/aggregateOffer';
25
27
  import type { AggregateOrderRepo } from './repo/aggregateOrder';
26
28
  import type { AggregateReservationRepo } from './repo/aggregateReservation';
@@ -166,6 +168,10 @@ export type AdditionalProperty = AdditionalPropertyRepo;
166
168
  export declare namespace AdditionalProperty {
167
169
  function createInstance(...params: ConstructorParameters<typeof AdditionalPropertyRepo>): Promise<AdditionalPropertyRepo>;
168
170
  }
171
+ export type AdminAssetTransaction = AdminAssetTransactionRepo;
172
+ export declare namespace AdminAssetTransaction {
173
+ function createInstance(...params: ConstructorParameters<typeof AdminAssetTransactionRepo>): Promise<AdminAssetTransactionRepo>;
174
+ }
169
175
  export type AdminAsyncAction = AdminAsyncActionRepo;
170
176
  export declare namespace AdminAsyncAction {
171
177
  function createInstance(...params: ConstructorParameters<typeof AdminAsyncActionRepo>): Promise<AdminAsyncActionRepo>;
@@ -190,6 +196,10 @@ export type AggregateTask = AggregateTaskRepo;
190
196
  export declare namespace AggregateTask {
191
197
  function createInstance(...params: ConstructorParameters<typeof AggregateTaskRepo>): Promise<AggregateTaskRepo>;
192
198
  }
199
+ export type AggregateAssetTransaction = AggregateAssetTransactionRepo;
200
+ export declare namespace AggregateAssetTransaction {
201
+ function createInstance(...params: ConstructorParameters<typeof AggregateAssetTransactionRepo>): Promise<AggregateAssetTransactionRepo>;
202
+ }
193
203
  export type AggregateOffer = AggregateOfferRepo;
194
204
  export declare namespace AggregateOffer {
195
205
  function createInstance(...params: ConstructorParameters<typeof AggregateOfferRepo>): Promise<AggregateOfferRepo>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PaymentService = exports.Passport = exports.OwnershipInfo = exports.OrderNumber = exports.OrderInTransaction = exports.Order = exports.Offer = exports.OfferItemCondition = exports.OfferCatalogItem = exports.OfferCatalog = exports.NoteAboutOrder = exports.Note = exports.MovieTicketType = exports.Message = exports.MerchantReturnPolicy = exports.MemberProgram = exports.Member = exports.Issuer = exports.IdentityProvider = exports.Identity = exports.EventSeries = exports.EventSellerMakesOffer = exports.EventOffer = exports.Event = exports.EmailMessage = exports.CustomerType = exports.Customer = exports.Credentials = exports.CreativeWork = exports.ConfirmationNumber = exports.Authorization = exports.CategoryCode = exports.assetTransaction = exports.AssetTransaction = exports.Aggregation = exports.AggregateReservation = exports.AggregateOrder = exports.AggregateOffer = exports.AggregateTask = exports.AggregateScheduledTask = exports.AggregateAction = exports.AdminTask = exports.AdminScheduledTask = exports.AdminAsyncAction = exports.AdditionalProperty = exports.action = exports.Action = exports.AccountTitle = exports.AccountingReport = exports.AcceptedOffer = void 0;
4
- exports.WebSite = exports.rateLimit = exports.TransactionProcess = exports.TransactionNumber = exports.transaction = exports.Transaction = exports.Ticket = exports.AsyncAction = exports.TaskDelayed = exports.Task = exports.ScheduledTask = exports.StockHolder = exports.setting = exports.Setting = exports.ServiceAvailableHour = exports.SellerReturnPolicy = exports.SellerPaymentAccepted = exports.SellerMakesOffer = exports.Seller = exports.Schedule = exports.Role = exports.ReserveInterface = exports.Reservation = exports.ProjectMakesOffer = exports.Project = exports.ProductHasOfferCatalog = exports.Product = exports.PriceSpecification = exports.PotentialAction = exports.place = exports.Person = exports.PendingReservation = exports.PaymentServiceProvider = exports.PaymentServiceChannel = void 0;
3
+ exports.OwnershipInfo = exports.OrderNumber = exports.OrderInTransaction = exports.Order = exports.Offer = exports.OfferItemCondition = exports.OfferCatalogItem = exports.OfferCatalog = exports.NoteAboutOrder = exports.Note = exports.MovieTicketType = exports.Message = exports.MerchantReturnPolicy = exports.MemberProgram = exports.Member = exports.Issuer = exports.IdentityProvider = exports.Identity = exports.EventSeries = exports.EventSellerMakesOffer = exports.EventOffer = exports.Event = exports.EmailMessage = exports.CustomerType = exports.Customer = exports.Credentials = exports.CreativeWork = exports.ConfirmationNumber = exports.Authorization = exports.CategoryCode = exports.assetTransaction = exports.AssetTransaction = exports.Aggregation = exports.AggregateReservation = exports.AggregateOrder = exports.AggregateOffer = exports.AggregateAssetTransaction = exports.AggregateTask = exports.AggregateScheduledTask = exports.AggregateAction = exports.AdminTask = exports.AdminScheduledTask = exports.AdminAsyncAction = exports.AdminAssetTransaction = exports.AdditionalProperty = exports.action = exports.Action = exports.AccountTitle = exports.AccountingReport = exports.AcceptedOffer = void 0;
4
+ exports.WebSite = exports.rateLimit = exports.TransactionProcess = exports.TransactionNumber = exports.transaction = exports.Transaction = exports.Ticket = exports.AsyncAction = exports.TaskDelayed = exports.Task = exports.ScheduledTask = exports.StockHolder = exports.setting = exports.Setting = exports.ServiceAvailableHour = exports.SellerReturnPolicy = exports.SellerPaymentAccepted = exports.SellerMakesOffer = exports.Seller = exports.Schedule = exports.Role = exports.ReserveInterface = exports.Reservation = exports.ProjectMakesOffer = exports.Project = exports.ProductHasOfferCatalog = exports.Product = exports.PriceSpecification = exports.PotentialAction = exports.place = exports.Person = exports.PendingReservation = exports.PaymentServiceProvider = exports.PaymentServiceChannel = exports.PaymentService = exports.Passport = void 0;
5
5
  var AcceptedOffer;
6
6
  (function (AcceptedOffer) {
7
7
  let repo;
@@ -170,6 +170,17 @@ var AdditionalProperty;
170
170
  }
171
171
  AdditionalProperty.createInstance = createInstance;
172
172
  })(AdditionalProperty || (exports.AdditionalProperty = AdditionalProperty = {}));
173
+ var AdminAssetTransaction;
174
+ (function (AdminAssetTransaction) {
175
+ let repo;
176
+ async function createInstance(...params) {
177
+ if (repo === undefined) {
178
+ repo = (await import('./repo/adminAssetTransaction.js')).AdminAssetTransactionRepo;
179
+ }
180
+ return new repo(...params);
181
+ }
182
+ AdminAssetTransaction.createInstance = createInstance;
183
+ })(AdminAssetTransaction || (exports.AdminAssetTransaction = AdminAssetTransaction = {}));
173
184
  var AdminAsyncAction;
174
185
  (function (AdminAsyncAction) {
175
186
  let repo;
@@ -236,6 +247,17 @@ var AggregateTask;
236
247
  }
237
248
  AggregateTask.createInstance = createInstance;
238
249
  })(AggregateTask || (exports.AggregateTask = AggregateTask = {}));
250
+ var AggregateAssetTransaction;
251
+ (function (AggregateAssetTransaction) {
252
+ let repo;
253
+ async function createInstance(...params) {
254
+ if (repo === undefined) {
255
+ repo = (await import('./repo/aggregateAssetTransaction.js')).AggregateAssetTransactionRepo;
256
+ }
257
+ return new repo(...params);
258
+ }
259
+ AggregateAssetTransaction.createInstance = createInstance;
260
+ })(AggregateAssetTransaction || (exports.AggregateAssetTransaction = AggregateAssetTransaction = {}));
239
261
  var AggregateOffer;
240
262
  (function (AggregateOffer) {
241
263
  let repo;
@@ -1,10 +1,10 @@
1
1
  import type { AggregateActionRepo } from '../../repo/aggregateAction';
2
+ import type { AggregateAssetTransactionRepo } from '../../repo/aggregateAssetTransaction';
2
3
  import type { AggregateScheduledTaskRepo } from '../../repo/aggregateScheduledTask';
3
4
  import type { AggregateTaskRepo } from '../../repo/aggregateTask';
4
- import { AggregationRepo } from '../../repo/aggregation';
5
- import type { AssetTransactionRepo } from '../../repo/assetTransaction';
5
+ import type { AggregationRepo } from '../../repo/aggregation';
6
6
  import type { EventRepo } from '../../repo/event';
7
- import { OrderRepo } from '../../repo/order';
7
+ import type { OrderRepo } from '../../repo/order';
8
8
  import type { TransactionRepo } from '../../repo/transaction';
9
9
  type AggregateDurationUnit = 'days' | 'hours';
10
10
  interface IAggregateParams {
@@ -125,7 +125,7 @@ declare function aggregatePayMovieTicketAction(params: IAggregateParams): (repos
125
125
  }>;
126
126
  declare function aggregatePayTransaction(params: IAggregateParams): (repos: {
127
127
  agregation: AggregationRepo;
128
- assetTransaction: AssetTransactionRepo;
128
+ aggregateAssetTransaction: AggregateAssetTransactionRepo;
129
129
  }) => Promise<{
130
130
  aggregationCount: number;
131
131
  aggregateDuration: string;
@@ -135,7 +135,7 @@ declare function aggregatePayTransaction(params: IAggregateParams): (repos: {
135
135
  */
136
136
  declare function aggregateReserveTransaction(params: IAggregateParams): (repos: {
137
137
  agregation: AggregationRepo;
138
- assetTransaction: AssetTransactionRepo;
138
+ aggregateAssetTransaction: AggregateAssetTransactionRepo;
139
139
  }) => Promise<{
140
140
  aggregationCount: number;
141
141
  aggregateDuration: string;
@@ -587,7 +587,7 @@ function aggregatePayTransaction(params) {
587
587
  .add(-i, params.aggregateDurationUnit)
588
588
  .endOf(params.aggregateDurationUnit)
589
589
  .toDate();
590
- const aggregateResult = await repos.assetTransaction.aggregateAssetTransaction({
590
+ const aggregateResult = await repos.aggregateAssetTransaction.aggregateAssetTransaction({
591
591
  project: { id: { $ne: params.excludedProjectId } },
592
592
  startFrom,
593
593
  startThrough,
@@ -632,7 +632,7 @@ function aggregateReserveTransaction(params) {
632
632
  .add(-i, params.aggregateDurationUnit)
633
633
  .endOf(params.aggregateDurationUnit)
634
634
  .toDate();
635
- const aggregateResult = await repos.assetTransaction.aggregateAssetTransaction({
635
+ const aggregateResult = await repos.aggregateAssetTransaction.aggregateAssetTransaction({
636
636
  project: { id: { $ne: params.excludedProjectId } },
637
637
  startFrom,
638
638
  startThrough,
@@ -11,30 +11,15 @@ function validateStartParams(params) {
11
11
  const sellerId = params.seller?.id;
12
12
  // 予約番号で取引存在確認
13
13
  if (typeof params.object.reservation?.reservationNumber === 'string') {
14
- const transactions = await repos.assetTransaction.search({
14
+ const transactions = await repos.assetTransaction.findAssetTransactionsByTypeOf({
15
15
  limit: 1,
16
16
  page: 1,
17
17
  typeOf: factory_1.factory.assetTransactionType.Reserve,
18
18
  object: {
19
- reservationNumber: { $eq: params.object.reservation.reservationNumber },
20
- // 販売者検証(2023-08-01~)
21
- ...(typeof sellerId === 'string') ? { provider: { id: { $eq: sellerId } } } : undefined
19
+ reservationNumber: { $eq: params.object.reservation.reservationNumber }
22
20
  }
23
21
  });
24
22
  reserveTransaction = transactions.shift();
25
- // ここでReservationConfirmedでない予約をスルーしても、
26
- // ReservationRepo.cancel()で冪等性を保証しているのでvalidation不要か(2022-05-12~)
27
- // 予約ステータス確認
28
- // const unconfirmedReservations = await repos.reservation.search({
29
- // limit: 1,
30
- // page: 1,
31
- // typeOf: factory.reservationType.EventReservation,
32
- // reservationNumber: { $eq: params.object.reservation.reservationNumber },
33
- // reservationStatus: { $ne: factory.reservationStatusType.ReservationConfirmed }
34
- // });
35
- // if (unconfirmedReservations.length > 0) {
36
- // throw new factory.errors.Argument('object.reservation.reservationNumber', `Reservation ${unconfirmedReservations[0].id} not confirmed`);
37
- // }
38
23
  }
39
24
  // 取引指定が確認できなければ、予約指定を確認
40
25
  if (reserveTransaction === undefined) {
@@ -59,6 +44,14 @@ function validateStartParams(params) {
59
44
  reservations = [reservation];
60
45
  }
61
46
  }
47
+ else {
48
+ // 販売者検証(2023-08-01~)
49
+ if (typeof sellerId === 'string') {
50
+ if (reserveTransaction.object.provider?.id !== sellerId) {
51
+ throw new factory_1.factory.errors.NotFound(factory_1.factory.reservationType.EventReservation);
52
+ }
53
+ }
54
+ }
62
55
  if (reserveTransaction === undefined && reservations === undefined) {
63
56
  throw new factory_1.factory.errors.Argument('object', 'Transaction or reservation must be specified');
64
57
  }
@@ -135,12 +135,12 @@ function confirm(params) {
135
135
  else {
136
136
  throw new factory_1.factory.errors.ArgumentNull('Transaction ID or Transaction Number');
137
137
  }
138
- const payTransaction = (await repos.assetTransaction.search({
138
+ const payTransaction = (await repos.assetTransaction.findAssetTransactionsByTypeOf({
139
139
  limit: 1,
140
140
  page: 1,
141
141
  typeOf: factory_1.factory.assetTransactionType.Pay,
142
142
  transactionNumber: { $eq: transaction.object.paymentMethodId }
143
- }, ['recipient'], [])).shift();
143
+ }, ['recipient'])).shift();
144
144
  if (payTransaction === undefined) {
145
145
  throw new factory_1.factory.errors.NotFound(factory_1.factory.assetTransactionType.Pay);
146
146
  }
@@ -2,15 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.processVoidTransaction4chevre = processVoidTransaction4chevre;
4
4
  const factory_1 = require("../../../../factory");
5
- // import type { TransactionRepo } from '../../../../repo/transaction';
6
5
  const reserve_1 = require("../../../assetTransaction/reserve");
7
6
  function processVoidTransaction4chevre(params) {
8
7
  return async (repos, settings) => {
9
- // const transactionNumber = params.action.object.pendingTransaction?.transactionNumber;
10
8
  const transactionNumber = params.action.instrument.transactionNumber;
11
9
  if (typeof transactionNumber === 'string') {
12
10
  // 取引が存在すれば中止
13
- const assetTransactions = await repos.assetTransaction.search({
11
+ const assetTransactions = await repos.assetTransaction.findAssetTransactionsByTypeOf({
14
12
  limit: 1,
15
13
  page: 1,
16
14
  project: { id: { $eq: params.action.project.id } },
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deleteOrder = deleteOrder;
4
- // import { createOwnershipInfosFromOrder } from '../delivery/factory';
5
4
  const factory_1 = require("../../factory");
6
5
  /**
7
6
  * 注文に関わるリソースを削除する
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- // import createDebug from 'debug';
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.isDeliverable = isDeliverable;
5
4
  const factory_1 = require("../../../factory");
6
- // const debug = createDebug('chevre-domain:service:order');
7
5
  function isDeliverable(params) {
8
6
  return async (repos) => {
9
7
  let allReserveTransactionConfirmed = false;
@@ -15,7 +13,7 @@ function isDeliverable(params) {
15
13
  // 注文のreservationNumberを取得
16
14
  const reservationNumbers = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.itemOffered.reservationNumber');
17
15
  if (reservationNumbers.length > 0) {
18
- const referencedReserveTransactions = await repos.assetTransaction.search({
16
+ const referencedReserveTransactions = await repos.assetTransaction.findAssetTransactionsByTypeOf({
19
17
  project: { id: { $eq: params.project.id } },
20
18
  typeOf: factory_1.factory.assetTransactionType.Reserve,
21
19
  transactionNumber: { $in: reservationNumbers }
@@ -27,52 +25,6 @@ function isDeliverable(params) {
27
25
  else {
28
26
  allReserveTransactionConfirmed = true;
29
27
  }
30
- // } else if (params.assetTransactionType === factory.assetTransactionType.MoneyTransfer) {
31
- // allReserveTransactionConfirmed = true;
32
- // allRegisterServiceTransactionConfirmed = true;
33
- // // 注文のMoneyTransferTransaction.transactionNumberを取得
34
- // const moneyTransferTransactionNumbers = await repos.acceptedOffer.distinctValues(
35
- // { orderNumber: { $in: [params.orderNumber] } },
36
- // 'acceptedOffers.serialNumber'
37
- // );
38
- // if (moneyTransferTransactionNumbers.length > 0) {
39
- // debug('is deliverable?...', params.orderNumber, 'moneyTransferTransactionNumbers:', moneyTransferTransactionNumbers);
40
- // const referencedMoneyTransferTransactions = await repos.assetTransaction.search(
41
- // {
42
- // project: { id: { $eq: params.project.id } },
43
- // typeOf: factory.assetTransactionType.MoneyTransfer,
44
- // transactionNumber: { $in: moneyTransferTransactionNumbers }
45
- // },
46
- // ['status']
47
- // ) as Pick<factory.assetTransaction.moneyTransfer.ITransaction, 'status'>[];
48
- // allMoneyTransferTransactionConfirmed =
49
- // referencedMoneyTransferTransactions.length === moneyTransferTransactionNumbers.length
50
- // && referencedMoneyTransferTransactions.every(({ status }) => status === factory.transactionStatusType.Confirmed);
51
- // } else {
52
- // allMoneyTransferTransactionConfirmed = true;
53
- // }
54
- // } else if (params.assetTransactionType === factory.assetTransactionType.RegisterService) {
55
- // allReserveTransactionConfirmed = true;
56
- // allMoneyTransferTransactionConfirmed = true;
57
- // const registerServiceTransactionNumbers = await repos.acceptedOffer.distinctValues(
58
- // { orderNumber: { $in: [params.orderNumber] } },
59
- // 'acceptedOffers.serialNumber'
60
- // );
61
- // if (registerServiceTransactionNumbers.length > 0) {
62
- // const referencedRegisterServiceTransactions = await repos.assetTransaction.search(
63
- // {
64
- // project: { id: { $eq: params.project.id } },
65
- // typeOf: factory.assetTransactionType.RegisterService,
66
- // transactionNumber: { $in: registerServiceTransactionNumbers }
67
- // },
68
- // ['status']
69
- // ) as Pick<factory.assetTransaction.registerService.ITransaction, 'status'>[];
70
- // allRegisterServiceTransactionConfirmed =
71
- // referencedRegisterServiceTransactions.length === registerServiceTransactionNumbers.length
72
- // && referencedRegisterServiceTransactions.every(({ status }) => status === factory.transactionStatusType.Confirmed);
73
- // } else {
74
- // allRegisterServiceTransactionConfirmed = true;
75
- // }
76
28
  }
77
29
  return allReserveTransactionConfirmed && allMoneyTransferTransactionConfirmed && allRegisterServiceTransactionConfirmed;
78
30
  };
@@ -36,7 +36,7 @@ function onPayTransactionConfirmed(params) {
36
36
  }
37
37
  function fixPaymentMethodIdentifierIfPossible(params) {
38
38
  return async (repos) => {
39
- const referencedPayTransactions = await repos.assetTransaction.search({
39
+ const referencedPayTransactions = await repos.assetTransaction.findAssetTransactionsByTypeOf({
40
40
  project: { id: { $eq: params.project.id } },
41
41
  typeOf: factory_1.factory.assetTransactionType.Pay,
42
42
  statuses: [factory_1.factory.transactionStatusType.Confirmed],
@@ -73,7 +73,7 @@ function isProcessable(params) {
73
73
  const paymentMethodIds = order.paymentMethods.filter((invoice) => typeof invoice.paymentMethodId === 'string' && invoice.paymentMethodId.length > 0)
74
74
  .map((invoice) => invoice.paymentMethodId);
75
75
  if (paymentMethodIds.length > 0) {
76
- const referencedPayTransactions = await repos.assetTransaction.search({
76
+ const referencedPayTransactions = await repos.assetTransaction.findAssetTransactionsByTypeOf({
77
77
  project: { id: { $eq: params.project.id } },
78
78
  typeOf: factory_1.factory.assetTransactionType.Pay,
79
79
  transactionNumber: { $in: paymentMethodIds }
@@ -1,7 +1,6 @@
1
1
  import type { AcceptedOfferRepo } from '../../repo/acceptedOffer';
2
2
  import type { ActionRepo } from '../../repo/action';
3
3
  import type { OrderRepo } from '../../repo/order';
4
- import type { OwnershipInfoRepo } from '../../repo/ownershipInfo';
5
4
  import type { SettingRepo } from '../../repo/setting';
6
5
  import type { TaskRepo } from '../../repo/task';
7
6
  import type { ReturnOrderRepo } from '../../repo/transaction/returnOrder';
@@ -20,7 +19,6 @@ declare function returnOrder(params: {
20
19
  acceptedOffer: AcceptedOfferRepo;
21
20
  action: ActionRepo;
22
21
  order: OrderRepo;
23
- ownershipInfo: OwnershipInfoRepo;
24
22
  setting: SettingRepo;
25
23
  task: TaskRepo;
26
24
  returnOrder: ReturnOrderRepo;