@chevre/domain 23.2.0-alpha.53 → 23.2.0-alpha.55

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 (21) hide show
  1. package/lib/chevre/repo/acceptedPaymentMethod.d.ts +24 -2
  2. package/lib/chevre/repo/acceptedPaymentMethod.js +24 -0
  3. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.d.ts +13 -0
  4. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +53 -0
  5. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.d.ts +13 -0
  6. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +56 -0
  7. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.d.ts +15 -0
  8. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +58 -0
  9. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.d.ts +17 -0
  10. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +75 -0
  11. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.d.ts +19 -0
  12. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +60 -0
  13. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.d.ts +20 -0
  14. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +51 -0
  15. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.d.ts +27 -0
  16. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +100 -0
  17. package/lib/chevre/service/task/onResourceDeleted.js +110 -2
  18. package/lib/chevre/service/task/onResourceUpdated.js +0 -1
  19. package/package.json +3 -3
  20. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.d.ts +0 -41
  21. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.js +0 -459
@@ -1,4 +1,4 @@
1
- import type { BulkWriteResult } from 'mongodb';
1
+ import type { BulkWriteResult, DeleteResult } from 'mongodb';
2
2
  import { Connection, FilterQuery } from 'mongoose';
3
3
  import * as factory from '../factory';
4
4
  import { IDocType } from './mongoose/schemas/acceptedPaymentMethod';
@@ -47,6 +47,28 @@ export declare class AcceptedPaymentMethodRepo {
47
47
  validThrough: {
48
48
  $lte: Date;
49
49
  };
50
- }): Promise<import("mongodb").DeleteResult>;
50
+ }): Promise<DeleteResult>;
51
+ /**
52
+ * 提供リソースから対応決済方法を削除する
53
+ */
54
+ deleteAcceptedPaymentMethodsByItemOffered(params: {
55
+ project: {
56
+ id: string;
57
+ };
58
+ itemOffered: {
59
+ id: string;
60
+ };
61
+ }): Promise<DeleteResult>;
62
+ /**
63
+ * 販売者の提供するオファーを削除する
64
+ */
65
+ deleteAcceptedPaymentMethodsBySeller(params: {
66
+ project: {
67
+ id: string;
68
+ };
69
+ seller: {
70
+ id: string;
71
+ };
72
+ }): Promise<DeleteResult>;
51
73
  }
52
74
  export {};
@@ -201,5 +201,29 @@ class AcceptedPaymentMethodRepo {
201
201
  .exec();
202
202
  });
203
203
  }
204
+ /**
205
+ * 提供リソースから対応決済方法を削除する
206
+ */
207
+ deleteAcceptedPaymentMethodsByItemOffered(params) {
208
+ return __awaiter(this, void 0, void 0, function* () {
209
+ return this.acceptedPaymentMethodModel.deleteMany({
210
+ 'project.id': { $eq: params.project.id },
211
+ 'itemOffered.id': { $eq: params.itemOffered.id }
212
+ })
213
+ .exec();
214
+ });
215
+ }
216
+ /**
217
+ * 販売者の提供するオファーを削除する
218
+ */
219
+ deleteAcceptedPaymentMethodsBySeller(params) {
220
+ return __awaiter(this, void 0, void 0, function* () {
221
+ return this.acceptedPaymentMethodModel.deleteMany({
222
+ 'project.id': { $eq: params.project.id },
223
+ 'seller.id': { $eq: params.seller.id }
224
+ })
225
+ .exec();
226
+ });
227
+ }
204
228
  }
205
229
  exports.AcceptedPaymentMethodRepo = AcceptedPaymentMethodRepo;
@@ -0,0 +1,13 @@
1
+ import type { ActionRepo } from '../../../repo/action';
2
+ import type { OfferCatalogRepo } from '../../../repo/offerCatalog';
3
+ import type { OfferCatalogItemRepo } from '../../../repo/offerCatalogItem';
4
+ export declare function deleteResourcesByAggregateOffer(params: {
5
+ project: {
6
+ id: string;
7
+ };
8
+ ids: string[];
9
+ }): (repos: {
10
+ action: ActionRepo;
11
+ offerCatalog: OfferCatalogRepo;
12
+ offerCatalogItem: OfferCatalogItemRepo;
13
+ }) => Promise<void>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deleteResourcesByAggregateOffer = deleteResourcesByAggregateOffer;
13
+ const factory = require("../../../factory");
14
+ function deleteResourcesByAggregateOffer(params) {
15
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
16
+ if (params.ids.length !== 1) {
17
+ throw new factory.errors.Argument('id', 'id.length must be 1');
18
+ }
19
+ for (const offerId of params.ids) {
20
+ const deleteActionAttributes = {
21
+ agent: { id: params.project.id, typeOf: factory.organizationType.Project },
22
+ object: { id: offerId, typeOf: factory.offerType.AggregateOffer },
23
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
24
+ typeOf: factory.actionType.DeleteAction
25
+ };
26
+ let deleteResult;
27
+ const action = yield repos.action.start(deleteActionAttributes);
28
+ try {
29
+ // カタログからpullItemListElement
30
+ const updateCatalogResult = yield repos.offerCatalog.pullItemListElement({
31
+ project: { id: params.project.id },
32
+ $pull: { itemListElement: { $elemMatch: { id: { $in: [offerId] } } } }
33
+ });
34
+ // サブカタログ対応
35
+ const updateCatalogItemResult = yield repos.offerCatalogItem.pullItemListElement({
36
+ project: { id: params.project.id },
37
+ $pull: { itemListElement: { $elemMatch: { id: { $in: [offerId] } } } }
38
+ });
39
+ deleteResult = { updateCatalogResult, updateCatalogItemResult };
40
+ }
41
+ catch (error) {
42
+ try {
43
+ yield repos.action.giveUp({ typeOf: deleteActionAttributes.typeOf, id: action.id, error });
44
+ }
45
+ catch (_) {
46
+ // no op
47
+ }
48
+ throw error;
49
+ }
50
+ yield repos.action.completeWithVoid({ typeOf: deleteActionAttributes.typeOf, id: action.id, result: deleteResult });
51
+ }
52
+ });
53
+ }
@@ -0,0 +1,13 @@
1
+ import type { AcceptedPaymentMethodRepo } from '../../../repo/acceptedPaymentMethod';
2
+ import type { ActionRepo } from '../../../repo/action';
3
+ import type { EventRepo } from '../../../repo/event';
4
+ export declare function deleteResourcesByEventSeries(params: {
5
+ project: {
6
+ id: string;
7
+ };
8
+ ids: string[];
9
+ }): (repos: {
10
+ acceptedPaymentMethod: AcceptedPaymentMethodRepo;
11
+ action: ActionRepo;
12
+ event: EventRepo;
13
+ }) => Promise<void>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deleteResourcesByEventSeries = deleteResourcesByEventSeries;
13
+ const factory = require("../../../factory");
14
+ function deleteResourcesByEventSeries(params) {
15
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
16
+ if (params.ids.length !== 1) {
17
+ throw new factory.errors.Argument('id', 'id.length must be 1');
18
+ }
19
+ for (const eventSeriesId of params.ids) {
20
+ const deleteActionAttributes = {
21
+ agent: { id: params.project.id, typeOf: factory.organizationType.Project },
22
+ object: { id: eventSeriesId, typeOf: factory.eventType.ScreeningEventSeries },
23
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
24
+ typeOf: factory.actionType.DeleteAction
25
+ };
26
+ let deleteResult;
27
+ const action = yield repos.action.start(deleteActionAttributes);
28
+ try {
29
+ // 対応決済方法削除(2026-02-07~)
30
+ const deleteAcceptedPaymentMethodsResult = yield repos.acceptedPaymentMethod.deleteAcceptedPaymentMethodsByItemOffered({
31
+ project: { id: params.project.id },
32
+ itemOffered: { id: eventSeriesId }
33
+ });
34
+ // イベント削除
35
+ const deleteScreeningEventResult = yield repos.event.deleteManyBySuperEventId({
36
+ project: { id: params.project.id },
37
+ superEvent: { id: eventSeriesId }
38
+ });
39
+ deleteResult = {
40
+ deleteAcceptedPaymentMethodsResult,
41
+ deleteScreeningEventResult
42
+ };
43
+ }
44
+ catch (error) {
45
+ try {
46
+ yield repos.action.giveUp({ typeOf: deleteActionAttributes.typeOf, id: action.id, error });
47
+ }
48
+ catch (_) {
49
+ // no op
50
+ }
51
+ throw error;
52
+ }
53
+ yield repos.action.completeWithVoid({ typeOf: deleteActionAttributes.typeOf, id: action.id, result: deleteResult });
54
+ }
55
+ });
56
+ }
@@ -0,0 +1,15 @@
1
+ import type { ActionRepo } from '../../../repo/action';
2
+ import type { EventRepo } from '../../../repo/event';
3
+ import type { EventSeriesRepo } from '../../../repo/eventSeries';
4
+ import type { ScreeningRoomRepo } from '../../../repo/place/screeningRoom';
5
+ export declare function deleteResourcesByMovieTheater(params: {
6
+ project: {
7
+ id: string;
8
+ };
9
+ ids: string[];
10
+ }): (repos: {
11
+ action: ActionRepo;
12
+ event: EventRepo;
13
+ eventSeries: EventSeriesRepo;
14
+ screeningRoom: ScreeningRoomRepo;
15
+ }) => Promise<void>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deleteResourcesByMovieTheater = deleteResourcesByMovieTheater;
13
+ const factory = require("../../../factory");
14
+ function deleteResourcesByMovieTheater(params) {
15
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
16
+ if (params.ids.length !== 1) {
17
+ throw new factory.errors.Argument('id', 'id.length must be 1');
18
+ }
19
+ for (const placeId of params.ids) {
20
+ const deleteActionAttributes = {
21
+ agent: { id: params.project.id, typeOf: factory.organizationType.Project },
22
+ object: { id: placeId, typeOf: factory.placeType.MovieTheater },
23
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
24
+ typeOf: factory.actionType.DeleteAction
25
+ };
26
+ let deleteResult;
27
+ const action = yield repos.action.start(deleteActionAttributes);
28
+ try {
29
+ // イベント削除
30
+ const deleteScreeningEventResult = yield repos.event.deleteManyBySuperEventLocationId({
31
+ project: { id: params.project.id },
32
+ superEvent: { location: { id: placeId } }
33
+ });
34
+ // 施設コンテンツ削除
35
+ const deleteScreeningEventSeriesResult = yield repos.eventSeries.deleteManyByLocationId({
36
+ project: { id: params.project.id },
37
+ location: { id: placeId }
38
+ });
39
+ // ルーム削除
40
+ const deletePlaceResult = yield repos.screeningRoom.deleteScreeningRoomsByMovieTheaterId({
41
+ project: { id: params.project.id },
42
+ containedInPlace: { id: placeId }
43
+ });
44
+ deleteResult = { deleteScreeningEventResult, deleteScreeningEventSeriesResult, deletePlaceResult };
45
+ }
46
+ catch (error) {
47
+ try {
48
+ yield repos.action.giveUp({ typeOf: deleteActionAttributes.typeOf, id: action.id, error });
49
+ }
50
+ catch (_) {
51
+ // no op
52
+ }
53
+ throw error;
54
+ }
55
+ yield repos.action.completeWithVoid({ typeOf: deleteActionAttributes.typeOf, id: action.id, result: deleteResult });
56
+ }
57
+ });
58
+ }
@@ -0,0 +1,17 @@
1
+ import type { ActionRepo } from '../../../repo/action';
2
+ import type { AggregateOfferRepo } from '../../../repo/aggregateOffer';
3
+ import type { EventRepo } from '../../../repo/event';
4
+ import type { OfferCatalogRepo } from '../../../repo/offerCatalog';
5
+ import type { ProductRepo } from '../../../repo/product';
6
+ export declare function deleteResourcesByOfferCatalog(params: {
7
+ project: {
8
+ id: string;
9
+ };
10
+ ids: string[];
11
+ }): (repos: {
12
+ action: ActionRepo;
13
+ aggregateOffer: AggregateOfferRepo;
14
+ event: EventRepo;
15
+ offerCatalog: OfferCatalogRepo;
16
+ product: ProductRepo;
17
+ }) => Promise<void>;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deleteResourcesByOfferCatalog = deleteResourcesByOfferCatalog;
13
+ const factory = require("../../../factory");
14
+ function deleteResourcesByOfferCatalog(params) {
15
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
16
+ if (params.ids.length !== 1) {
17
+ throw new factory.errors.Argument('id', 'id.length must be 1');
18
+ }
19
+ for (const catalogId of params.ids) {
20
+ const deleteActionAttributes = {
21
+ agent: { id: params.project.id, typeOf: factory.organizationType.Project },
22
+ object: { id: catalogId, typeOf: 'OfferCatalog' },
23
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
24
+ typeOf: factory.actionType.DeleteAction
25
+ };
26
+ let deleteResult;
27
+ const action = yield repos.action.start(deleteActionAttributes);
28
+ try {
29
+ // カタログからプロダクト検索
30
+ const productsWithCatalog = yield repos.product.projectFields({
31
+ project: { id: { $eq: params.project.id } },
32
+ hasOfferCatalog: { id: { $eq: catalogId } }
33
+ }, ['id']
34
+ // []
35
+ );
36
+ let deleteEventResult;
37
+ let updateOfferResult;
38
+ if (productsWithCatalog.length > 0) {
39
+ const deletingProductIds = productsWithCatalog.map((product) => product.id);
40
+ // 興行を設定されたイベント削除
41
+ deleteEventResult = yield repos.event.deleteManyEventsByItemOfferedId({
42
+ project: { id: params.project.id },
43
+ offers: { itemOffered: { id: { $in: deletingProductIds } } }
44
+ });
45
+ // アドオンから除外
46
+ updateOfferResult = yield repos.aggregateOffer.pullAddOns({
47
+ project: { id: params.project.id },
48
+ addOn: { itemOffered: { id: { $in: deletingProductIds } } }
49
+ });
50
+ }
51
+ // プロダクト削除
52
+ const deleteProductResult = yield repos.product.deleteByHasOfferCatalog({
53
+ project: { id: params.project.id },
54
+ hasOfferCatalog: { id: catalogId }
55
+ });
56
+ // カタログからpullItemListElement(サブカタログ対応)
57
+ const updateCatalogResult = yield repos.offerCatalog.pullItemListElement({
58
+ project: { id: params.project.id },
59
+ $pull: { itemListElement: { $elemMatch: { id: { $in: [catalogId] } } } }
60
+ });
61
+ deleteResult = { deleteEventResult, deleteProductResult, updateOfferResult, updateCatalogResult };
62
+ }
63
+ catch (error) {
64
+ try {
65
+ yield repos.action.giveUp({ typeOf: deleteActionAttributes.typeOf, id: action.id, error });
66
+ }
67
+ catch (_) {
68
+ // no op
69
+ }
70
+ throw error;
71
+ }
72
+ yield repos.action.completeWithVoid({ typeOf: deleteActionAttributes.typeOf, id: action.id, result: deleteResult });
73
+ }
74
+ });
75
+ }
@@ -0,0 +1,19 @@
1
+ import * as factory from '../../../factory';
2
+ import type { ActionRepo } from '../../../repo/action';
3
+ import type { AggregateOfferRepo } from '../../../repo/aggregateOffer';
4
+ import type { EventRepo } from '../../../repo/event';
5
+ import type { NoteRepo } from '../../../repo/note';
6
+ import type { ProductRepo } from '../../../repo/product';
7
+ export declare function deleteResourcesByProduct(params: {
8
+ project: {
9
+ id: string;
10
+ };
11
+ ids: string[];
12
+ typeOf: factory.product.ProductType;
13
+ }): (repos: {
14
+ action: ActionRepo;
15
+ aggregateOffer: AggregateOfferRepo;
16
+ event: EventRepo;
17
+ note: NoteRepo;
18
+ product: ProductRepo;
19
+ }) => Promise<void>;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deleteResourcesByProduct = deleteResourcesByProduct;
13
+ const factory = require("../../../factory");
14
+ function deleteResourcesByProduct(params) {
15
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
16
+ if (params.ids.length !== 1) {
17
+ throw new factory.errors.Argument('id', 'id.length must be 1');
18
+ }
19
+ for (const productId of params.ids) {
20
+ const deleteActionAttributes = {
21
+ agent: { id: params.project.id, typeOf: factory.organizationType.Project },
22
+ object: { id: productId, typeOf: params.typeOf },
23
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
24
+ typeOf: factory.actionType.DeleteAction
25
+ };
26
+ let deleteResult;
27
+ const action = yield repos.action.start(deleteActionAttributes);
28
+ try {
29
+ let deleteEventResult;
30
+ let updateOfferResult;
31
+ let deleteNoteResult;
32
+ // 興行を設定されたイベント削除
33
+ deleteEventResult = yield repos.event.deleteManyEventsByItemOfferedId({
34
+ project: { id: params.project.id },
35
+ offers: { itemOffered: { id: { $in: [productId] } } }
36
+ });
37
+ // アドオンから除外
38
+ updateOfferResult = yield repos.aggregateOffer.pullAddOns({
39
+ project: { id: params.project.id },
40
+ addOn: { itemOffered: { id: { $in: [productId] } } }
41
+ });
42
+ // メモを削除(2025-09-18~)
43
+ deleteNoteResult = yield repos.note.deleteNotesByAbout({
44
+ about: { id: productId, typeOf: params.typeOf }
45
+ });
46
+ deleteResult = { deleteEventResult, updateOfferResult, deleteNoteResult };
47
+ }
48
+ catch (error) {
49
+ try {
50
+ yield repos.action.giveUp({ typeOf: deleteActionAttributes.typeOf, id: action.id, error });
51
+ }
52
+ catch (_) {
53
+ // no op
54
+ }
55
+ throw error;
56
+ }
57
+ yield repos.action.completeWithVoid({ typeOf: deleteActionAttributes.typeOf, id: action.id, result: deleteResult });
58
+ }
59
+ });
60
+ }
@@ -0,0 +1,20 @@
1
+ import type { ActionRepo } from '../../../repo/action';
2
+ import type { EventRepo } from '../../../repo/event';
3
+ export declare function deleteResourcesByRoom(params: {
4
+ project: {
5
+ id: string;
6
+ };
7
+ /**
8
+ * ルームコード
9
+ */
10
+ branchCode: string[];
11
+ containedInPlace: {
12
+ /**
13
+ * 施設ID
14
+ */
15
+ id: string;
16
+ };
17
+ }): (repos: {
18
+ action: ActionRepo;
19
+ event: EventRepo;
20
+ }) => Promise<void>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deleteResourcesByRoom = deleteResourcesByRoom;
13
+ const factory = require("../../../factory");
14
+ function deleteResourcesByRoom(params) {
15
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
16
+ // 現時点で、複数ルーム削除タスクは作成されない
17
+ const firstBranchCode = params.branchCode.at(0);
18
+ if (typeof firstBranchCode !== 'string') {
19
+ throw new factory.errors.ArgumentNull('branchCode');
20
+ }
21
+ const deleteActionAttributes = {
22
+ agent: { id: params.project.id, typeOf: factory.organizationType.Project },
23
+ object: { branchCode: firstBranchCode, containedInPlace: params.containedInPlace, typeOf: factory.placeType.ScreeningRoom },
24
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
25
+ typeOf: factory.actionType.DeleteAction
26
+ };
27
+ let deleteResult;
28
+ const action = yield repos.action.start(deleteActionAttributes);
29
+ try {
30
+ // イベント削除
31
+ const deleteScreeningEventResult = yield repos.event.deleteManyEventsByScreeningRoom({
32
+ project: { id: params.project.id },
33
+ location: {
34
+ branchCode: firstBranchCode,
35
+ containedInPlace: { id: params.containedInPlace.id }
36
+ }
37
+ });
38
+ deleteResult = { deleteScreeningEventResult };
39
+ }
40
+ catch (error) {
41
+ try {
42
+ yield repos.action.giveUp({ typeOf: deleteActionAttributes.typeOf, id: action.id, error });
43
+ }
44
+ catch (_) {
45
+ // no op
46
+ }
47
+ throw error;
48
+ }
49
+ yield repos.action.completeWithVoid({ typeOf: deleteActionAttributes.typeOf, id: action.id, result: deleteResult });
50
+ });
51
+ }
@@ -0,0 +1,27 @@
1
+ import type { AcceptedPaymentMethodRepo } from '../../../repo/acceptedPaymentMethod';
2
+ import type { ActionRepo } from '../../../repo/action';
3
+ import type { EventRepo } from '../../../repo/event';
4
+ import type { EventOfferRepo } from '../../../repo/eventOffer';
5
+ import type { EventSeriesRepo } from '../../../repo/eventSeries';
6
+ import type { MemberRepo } from '../../../repo/member';
7
+ import type { PaymentServiceProviderRepo } from '../../../repo/paymentServiceProvider';
8
+ import type { MovieTheaterRepo } from '../../../repo/place/movieTheater';
9
+ import type { ScreeningRoomRepo } from '../../../repo/place/screeningRoom';
10
+ import type { ProductOfferRepo } from '../../../repo/productOffer';
11
+ export declare function deleteResourcesBySeller(params: {
12
+ project: {
13
+ id: string;
14
+ };
15
+ ids: string[];
16
+ }): (repos: {
17
+ acceptedPaymentMethod: AcceptedPaymentMethodRepo;
18
+ action: ActionRepo;
19
+ event: EventRepo;
20
+ eventOffer: EventOfferRepo;
21
+ eventSeries: EventSeriesRepo;
22
+ member: MemberRepo;
23
+ movieTheater: MovieTheaterRepo;
24
+ screeningRoom: ScreeningRoomRepo;
25
+ paymentServiceProvider: PaymentServiceProviderRepo;
26
+ productOffer: ProductOfferRepo;
27
+ }) => Promise<void>;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deleteResourcesBySeller = deleteResourcesBySeller;
13
+ const factory = require("../../../factory");
14
+ // tslint:disable-next-line:max-func-body-length
15
+ function deleteResourcesBySeller(params) {
16
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
17
+ if (params.ids.length !== 1) {
18
+ throw new factory.errors.Argument('id', 'id.length must be 1');
19
+ }
20
+ for (const sellerId of params.ids) {
21
+ const deleteActionAttributes = {
22
+ agent: { id: params.project.id, typeOf: factory.organizationType.Project },
23
+ object: { id: sellerId, typeOf: factory.organizationType.Corporation },
24
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
25
+ typeOf: factory.actionType.DeleteAction
26
+ };
27
+ let deleteResult;
28
+ const action = yield repos.action.start(deleteActionAttributes);
29
+ try {
30
+ // メンバー削除
31
+ const deleteMemberResult = yield repos.member.deleteManyByMemberOfId({
32
+ project: { id: params.project.id },
33
+ member: {
34
+ memberOf: {
35
+ id: { $eq: sellerId },
36
+ typeOf: { $eq: factory.organizationType.Corporation }
37
+ }
38
+ }
39
+ });
40
+ // 提供決済サービス削除
41
+ const deletePaymentServiceProviderResult = yield repos.paymentServiceProvider.deleteManyByProviderId({
42
+ project: { id: params.project.id },
43
+ id: sellerId
44
+ });
45
+ // イベントオファー削除(2026-01-16~)
46
+ const deleteEventOfferResult = yield repos.eventOffer.deleteEventOffersBySeller({
47
+ project: { id: params.project.id },
48
+ seller: { id: sellerId }
49
+ });
50
+ // 対応決済方法削除(2026-02-07~)
51
+ const deleteAcceptedPaymentMethodsResult = yield repos.acceptedPaymentMethod.deleteAcceptedPaymentMethodsBySeller({
52
+ project: { id: params.project.id },
53
+ seller: { id: sellerId }
54
+ });
55
+ // イベント削除
56
+ const deleteEventResult = yield repos.event.deleteManyEventByOrganizerId({
57
+ project: { id: params.project.id },
58
+ organizer: { id: sellerId }
59
+ });
60
+ // 施設コンテンツ削除
61
+ const deleteEventSeriesResult = yield repos.eventSeries.deleteManyByOrganizerId({
62
+ project: { id: params.project.id },
63
+ organizer: { id: sellerId }
64
+ });
65
+ // ルーム削除
66
+ const deleteScreeningRoomResult = yield repos.screeningRoom.deleteScreeningRoomsByParentOrganizationId({
67
+ project: { id: params.project.id },
68
+ parentOrganization: { id: sellerId }
69
+ });
70
+ // 施設削除
71
+ const deleteMovieTheaterResult = yield repos.movieTheater.deleteMovieTheatersByParentOrganizationId({
72
+ project: { id: params.project.id },
73
+ parentOrganization: { id: sellerId }
74
+ });
75
+ // プロダクトオファー削除(2025-10-02~)
76
+ const deleteProductOfferResult = yield repos.productOffer.deleteProductOffersBySeller({
77
+ project: { id: params.project.id },
78
+ offeredBy: { id: sellerId }
79
+ });
80
+ deleteResult = {
81
+ deleteMemberResult, deletePaymentServiceProviderResult,
82
+ deleteAcceptedPaymentMethodsResult,
83
+ deleteEventOfferResult,
84
+ deleteProductOfferResult,
85
+ deleteEventResult, deleteEventSeriesResult, deleteScreeningRoomResult, deleteMovieTheaterResult
86
+ };
87
+ }
88
+ catch (error) {
89
+ try {
90
+ yield repos.action.giveUp({ typeOf: deleteActionAttributes.typeOf, id: action.id, error });
91
+ }
92
+ catch (_) {
93
+ // no op
94
+ }
95
+ throw error;
96
+ }
97
+ yield repos.action.completeWithVoid({ typeOf: deleteActionAttributes.typeOf, id: action.id, result: deleteResult });
98
+ }
99
+ });
100
+ }