@chevre/domain 23.2.0-alpha.3 → 23.2.0-alpha.31

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 (80) hide show
  1. package/example/src/chevre/event/importEventsFromCOAByTitle.ts +1 -1
  2. package/example/src/chevre/eventSeries/migrateEventSeriesOffers.ts +75 -0
  3. package/example/src/chevre/eventSeries/migrateEventSeriesVideoFormat.ts +80 -0
  4. package/example/src/chevre/place/adminEntranceGates.ts +69 -0
  5. package/example/src/chevre/place/checkEntranceGatesCount.ts +82 -0
  6. package/example/src/chevre/place/findRooms.ts +24 -0
  7. package/example/src/chevre/place/findSections.ts +28 -0
  8. package/example/src/chevre/place/migrateSectionIdentifier.ts +92 -0
  9. package/example/src/chevre/place/seatsJson2csv.ts +63 -0
  10. package/example/src/chevre/place/upsertMovieTheatersByBranchCode.ts +41 -0
  11. package/example/src/chevre/place/upsertRoomsByBranchCode.ts +40 -0
  12. package/example/src/chevre/place/upsertSeatSectionsByBranchCode.ts +56 -0
  13. package/example/src/chevre/reIndex.ts +1 -1
  14. package/example/src/chevre/roles/addAdminEventSeriesReadPermissionIfNotExists.ts +49 -0
  15. package/example/src/chevre/roles/addAdminMovieReadPermissionIfNotExists.ts +49 -0
  16. package/example/src/chevre/roles/addAdminMovieTheaterReadPermissionIfNotExists.ts +34 -0
  17. package/example/src/chevre/roles/addAdminMovieTheaterWritePermissionIfNotExists.ts +34 -0
  18. package/example/src/chevre/roles/addAdminRoomReadPermissionIfNotExists.ts +34 -0
  19. package/example/src/chevre/roles/addAdminRoomWritePermissionIfNotExists.ts +34 -0
  20. package/example/src/chevre/unsetUnnecessaryFields.ts +8 -4
  21. package/lib/chevre/factory/event.js +5 -5
  22. package/lib/chevre/repo/aggregateOrder.js +0 -93
  23. package/lib/chevre/repo/aggregateReservation.d.ts +0 -1
  24. package/lib/chevre/repo/aggregateReservation.js +0 -2
  25. package/lib/chevre/repo/creativeWork.js +9 -5
  26. package/lib/chevre/repo/eventOffer.d.ts +8 -0
  27. package/lib/chevre/repo/eventOffer.js +11 -0
  28. package/lib/chevre/repo/eventSeries.js +16 -12
  29. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +0 -1
  30. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +10 -9
  31. package/lib/chevre/repo/mongoose/schemas/eventSeries.js +10 -0
  32. package/lib/chevre/repo/mongoose/schemas/place.d.ts +6 -2
  33. package/lib/chevre/repo/place/entranceGate.d.ts +48 -0
  34. package/lib/chevre/repo/place/entranceGate.js +166 -0
  35. package/lib/chevre/repo/place/movieTheater.d.ts +40 -3
  36. package/lib/chevre/repo/place/movieTheater.js +77 -6
  37. package/lib/chevre/repo/place/screeningRoom.d.ts +60 -31
  38. package/lib/chevre/repo/place/screeningRoom.js +227 -135
  39. package/lib/chevre/repo/place/seat.d.ts +47 -45
  40. package/lib/chevre/repo/place/seat.js +175 -45
  41. package/lib/chevre/repo/place/section.d.ts +60 -30
  42. package/lib/chevre/repo/place/section.js +337 -127
  43. package/lib/chevre/repo/task.d.ts +1 -1
  44. package/lib/chevre/repository.d.ts +8 -0
  45. package/lib/chevre/repository.js +16 -0
  46. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +6 -3
  47. package/lib/chevre/service/event/processUpdateMovieTheater.d.ts +1 -1
  48. package/lib/chevre/service/event/processUpdateMovieTheater.js +13 -11
  49. package/lib/chevre/service/event/saveScreeningEvents.d.ts +1 -1
  50. package/lib/chevre/service/event/saveScreeningEvents.js +6 -5
  51. package/lib/chevre/service/offer/event/authorize/factory.js +4 -1
  52. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +7 -4
  53. package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +9 -6
  54. package/lib/chevre/service/offer/event/searchOffersByIds.js +7 -4
  55. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +4 -13
  56. package/lib/chevre/service/offer/onEventChanged.js +7 -5
  57. package/lib/chevre/service/offer.d.ts +5 -0
  58. package/lib/chevre/service/offer.js +34 -9
  59. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  60. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
  61. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  62. package/lib/chevre/service/payment/any/factory.d.ts +4 -0
  63. package/lib/chevre/service/payment/any/factory.js +2 -1
  64. package/lib/chevre/service/payment/any.d.ts +4 -0
  65. package/lib/chevre/service/payment/any.js +2 -1
  66. package/lib/chevre/service/task/authorizePayment.js +1 -1
  67. package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.d.ts +1 -1
  68. package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.js +5 -3
  69. package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.js +1 -1
  70. package/lib/chevre/service/task/onResourceDeleted.d.ts +6 -0
  71. package/lib/chevre/service/task/onResourceDeleted.js +60 -0
  72. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.d.ts +3 -7
  73. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.js +19 -7
  74. package/lib/chevre/service/task/onResourceUpdated.js +93 -15
  75. package/lib/chevre/service/task/syncResourcesFromCOA.js +1 -1
  76. package/lib/chevre/service/taskHandler.js +1 -0
  77. package/package.json +4 -3
  78. package/example/src/chevre/event/upsertManyScreeningEventByIdentifier.ts +0 -191
  79. package/lib/chevre/service/eventOld.d.ts +0 -60
  80. package/lib/chevre/service/eventOld.js +0 -864
@@ -0,0 +1,49 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
8
+
9
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
10
+
11
+ const roleNames = [
12
+ // chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
+ // chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
+ // chevre.factory.role.organizationRole.RoleName.SellersInventoryManager,
15
+ chevre.factory.role.organizationRole.RoleName.TicketClerk
16
+ ];
17
+ const permissions = [
18
+ 'admin.sellers.eventSeries.read'
19
+ ];
20
+ for (const roleName of roleNames) {
21
+ for (const permission of permissions) {
22
+ const result = await roleRepo.addPermissionIfNotExists({
23
+ roleName: { $eq: roleName },
24
+ permission
25
+ });
26
+ console.log('permission added.', result, roleName);
27
+ }
28
+ }
29
+
30
+ // roleNames = [
31
+ // chevre.factory.role.organizationRole.RoleName.TicketClerk
32
+ // ];
33
+ // permissions = [
34
+ // 'admin.sellers.productOffers.read'
35
+ // ];
36
+ // for (const roleName of roleNames) {
37
+ // for (const permission of permissions) {
38
+ // const result = await roleRepo.addPermissionIfNotExists({
39
+ // roleName: { $eq: roleName },
40
+ // permission
41
+ // });
42
+ // console.log('permission added.', result, roleName);
43
+ // }
44
+ // }
45
+ }
46
+
47
+ main()
48
+ .then()
49
+ .catch(console.error);
@@ -0,0 +1,49 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
8
+
9
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
10
+
11
+ const roleNames = [
12
+ // chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
+ chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
+ chevre.factory.role.organizationRole.RoleName.SellersInventoryManager,
15
+ chevre.factory.role.organizationRole.RoleName.TicketClerk
16
+ ];
17
+ const permissions = [
18
+ 'admin.creativeWorks.read'
19
+ ];
20
+ for (const roleName of roleNames) {
21
+ for (const permission of permissions) {
22
+ const result = await roleRepo.addPermissionIfNotExists({
23
+ roleName: { $eq: roleName },
24
+ permission
25
+ });
26
+ console.log('permission added.', result, roleName);
27
+ }
28
+ }
29
+
30
+ // roleNames = [
31
+ // chevre.factory.role.organizationRole.RoleName.TicketClerk
32
+ // ];
33
+ // permissions = [
34
+ // 'admin.sellers.productOffers.read'
35
+ // ];
36
+ // for (const roleName of roleNames) {
37
+ // for (const permission of permissions) {
38
+ // const result = await roleRepo.addPermissionIfNotExists({
39
+ // roleName: { $eq: roleName },
40
+ // permission
41
+ // });
42
+ // console.log('permission added.', result, roleName);
43
+ // }
44
+ // }
45
+ }
46
+
47
+ main()
48
+ .then()
49
+ .catch(console.error);
@@ -0,0 +1,34 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
8
+
9
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
10
+
11
+ const roleNames = [
12
+ // chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
+ // chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
+ // chevre.factory.role.organizationRole.RoleName.SellersInventoryManager,
15
+ chevre.factory.role.organizationRole.RoleName.TicketClerk
16
+ ];
17
+ const permissions = [
18
+ 'admin.sellers.entranceGates.read',
19
+ 'admin.sellers.movieTheaters.read'
20
+ ];
21
+ for (const roleName of roleNames) {
22
+ for (const permission of permissions) {
23
+ const result = await roleRepo.addPermissionIfNotExists({
24
+ roleName: { $eq: roleName },
25
+ permission
26
+ });
27
+ console.log('permission added.', result, roleName);
28
+ }
29
+ }
30
+ }
31
+
32
+ main()
33
+ .then()
34
+ .catch(console.error);
@@ -0,0 +1,34 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
8
+
9
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
10
+
11
+ const roleNames = [
12
+ chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
+ chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
+ chevre.factory.role.organizationRole.RoleName.SellersInventoryManager
15
+ // chevre.factory.role.organizationRole.RoleName.TicketClerk
16
+ ];
17
+ const permissions = [
18
+ 'admin.sellers.entranceGates.*',
19
+ 'admin.sellers.movieTheaters.*'
20
+ ];
21
+ for (const roleName of roleNames) {
22
+ for (const permission of permissions) {
23
+ const result = await roleRepo.addPermissionIfNotExists({
24
+ roleName: { $eq: roleName },
25
+ permission
26
+ });
27
+ console.log('permission added.', result, roleName);
28
+ }
29
+ }
30
+ }
31
+
32
+ main()
33
+ .then()
34
+ .catch(console.error);
@@ -0,0 +1,34 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
8
+
9
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
10
+
11
+ const roleNames = [
12
+ // chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
+ // chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
+ // chevre.factory.role.organizationRole.RoleName.SellersInventoryManager,
15
+ chevre.factory.role.organizationRole.RoleName.TicketClerk
16
+ ];
17
+ const permissions = [
18
+ 'admin.sellers.rooms.read',
19
+ 'admin.sellers.seatSections.read'
20
+ ];
21
+ for (const roleName of roleNames) {
22
+ for (const permission of permissions) {
23
+ const result = await roleRepo.addPermissionIfNotExists({
24
+ roleName: { $eq: roleName },
25
+ permission
26
+ });
27
+ console.log('permission added.', result, roleName);
28
+ }
29
+ }
30
+ }
31
+
32
+ main()
33
+ .then()
34
+ .catch(console.error);
@@ -0,0 +1,34 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
8
+
9
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
10
+
11
+ const roleNames = [
12
+ chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
+ chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
+ chevre.factory.role.organizationRole.RoleName.SellersInventoryManager
15
+ // chevre.factory.role.organizationRole.RoleName.TicketClerk
16
+ ];
17
+ const permissions = [
18
+ 'admin.sellers.rooms.*',
19
+ 'admin.sellers.seatSections.*'
20
+ ];
21
+ for (const roleName of roleNames) {
22
+ for (const permission of permissions) {
23
+ const result = await roleRepo.addPermissionIfNotExists({
24
+ roleName: { $eq: roleName },
25
+ permission
26
+ });
27
+ console.log('permission added.', result, roleName);
28
+ }
29
+ }
30
+ }
31
+
32
+ main()
33
+ .then()
34
+ .catch(console.error);
@@ -9,16 +9,20 @@ import { chevre } from '../../../lib/index';
9
9
  async function main() {
10
10
  await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
11
11
 
12
- const noteRepo = await chevre.repository.NoteAboutOrder.createInstance(mongoose.connection);
12
+ const movieTheaterRepo = await chevre.repository.place.MovieTheater.createInstance(mongoose.connection);
13
13
 
14
14
  let updateResult: any;
15
15
 
16
- updateResult = await noteRepo.unsetUnnecessaryFields({
16
+ updateResult = await movieTheaterRepo.unsetUnnecessaryFields({
17
17
  filter: {
18
- 'about.identifier': { $exists: true }
18
+ $or: [
19
+ { 'offers.availabilityStartsGraceTimeOnPOS': { $exists: true } },
20
+ { 'offers.availabilityEndsGraceTimeOnPOS': { $exists: true } }
21
+ ]
19
22
  },
20
23
  $unset: {
21
- 'about.identifier': 1
24
+ 'offers.availabilityStartsGraceTimeOnPOS': 1,
25
+ 'offers.availabilityEndsGraceTimeOnPOS': 1
22
26
  }
23
27
  });
24
28
  console.log(updateResult);
@@ -23,10 +23,7 @@ function minimizeSuperEvent(params) {
23
23
  // ? { kanaName: params.superEventFromDB.location.kanaName }
24
24
  // : undefined
25
25
  );
26
- return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ typeOf: factory.eventType.ScreeningEventSeries,
27
- // 不要なので廃止(2023-06-09~)
28
- // project: { typeOf: chevre.factory.organizationType.Project, id: params.project.id },
29
- id: params.superEventFromDB.id, videoFormat: params.superEventFromDB.videoFormat, soundFormat: params.superEventFromDB.soundFormat, workPerformed,
26
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ typeOf: factory.eventType.ScreeningEventSeries, id: params.superEventFromDB.id, soundFormat: params.superEventFromDB.soundFormat, workPerformed,
30
27
  location, kanaName: params.superEventFromDB.kanaName, name: Object.assign(Object.assign({}, (typeof params.superEventFromDB.name.en === 'string') ? { en: params.superEventFromDB.name.en } : undefined), (typeof params.superEventFromDB.name.ja === 'string') ? { ja: params.superEventFromDB.name.ja } : undefined) }, (Array.isArray(params.superEventFromDB.additionalProperty))
31
28
  ? { additionalProperty: params.superEventFromDB.additionalProperty }
32
29
  : undefined), (params.superEventFromDB.startDate instanceof Date)
@@ -41,5 +38,8 @@ function minimizeSuperEvent(params) {
41
38
  ? { dubLanguage: params.superEventFromDB.dubLanguage }
42
39
  : undefined), (params.superEventFromDB.subtitleLanguage !== undefined)
43
40
  ? { subtitleLanguage: params.superEventFromDB.subtitleLanguage }
44
- : undefined);
41
+ : undefined), {
42
+ // 現時点で型廃止済だがデータとしては互換性維持(2026-01-15~)
43
+ videoFormat: params.superEventFromDB.videoFormat
44
+ });
45
45
  }
@@ -20,99 +20,6 @@ class AggregateOrderRepo {
20
20
  constructor(connection) {
21
21
  this.aggregateOrderModel = connection.model(aggregateOrder_1.modelName, (0, aggregateOrder_1.createSchema)());
22
22
  }
23
- // public static CREATE_MONGO_CONDITIONS(
24
- // conditions: ISearchConditions
25
- // ): IMatchStage[] {
26
- // const matchStages: IMatchStage[] = [];
27
- // const projectIdEq = conditions.project?.id?.$eq;
28
- // if (typeof projectIdEq === 'string') {
29
- // matchStages.push({
30
- // $match: { 'project.id': { $eq: projectIdEq } }
31
- // });
32
- // }
33
- // const typeOfEq = conditions.reservationFor?.typeOf;
34
- // if (typeof typeOfEq === 'string') {
35
- // matchStages.push({
36
- // $match: { 'reservationFor.typeOf': { $eq: typeOfEq } }
37
- // });
38
- // }
39
- // const idEq = conditions.reservationFor?.id?.$eq;
40
- // if (typeof idEq === 'string') {
41
- // matchStages.push({
42
- // $match: { 'reservationFor.id': { $eq: idEq } }
43
- // });
44
- // }
45
- // const idIn = conditions.reservationFor?.id?.$in;
46
- // if (Array.isArray(idIn)) {
47
- // matchStages.push({
48
- // $match: { 'reservationFor.id': { $in: idIn } }
49
- // });
50
- // }
51
- // const reservationForStartDateGte = conditions.reservationFor?.startFrom;
52
- // if (reservationForStartDateGte instanceof Date) {
53
- // matchStages.push({
54
- // $match: { 'reservationFor.startDate': { $gte: reservationForStartDateGte } }
55
- // });
56
- // }
57
- // const reservationForStartDateLte = conditions.reservationFor?.startThrough;
58
- // if (reservationForStartDateLte instanceof Date) {
59
- // matchStages.push({
60
- // $match: { 'reservationFor.startDate': { $lte: reservationForStartDateLte } }
61
- // });
62
- // }
63
- // return matchStages;
64
- // }
65
- // /**
66
- // * 予約集計を検索する
67
- // */
68
- // public async searchWithReservationForId(
69
- // params: ISearchConditions,
70
- // inclusion: ('aggregateOffer')[]
71
- // ): Promise<ISearchWithReservationForIdResult[]> {
72
- // const matchStages = AggregateReservationRepo.CREATE_MONGO_CONDITIONS(params);
73
- // let projectStage: { [field in IKeyOfProjection]?: AnyExpression } = {
74
- // _id: 0,
75
- // id: '$reservationFor.id'
76
- // };
77
- // if (Array.isArray(inclusion) && inclusion.length > 0) {
78
- // inclusion.forEach((field) => {
79
- // projectStage[field] = { $ifNull: [`$${field}`, '$false'] };
80
- // // projectStage[field] = 1;
81
- // });
82
- // } else {
83
- // projectStage = {
84
- // _id: 0,
85
- // id: '$reservationFor.id',
86
- // // aggregateEntranceGate: 1, // discontinue(2024-12-23~)
87
- // aggregateOffer: 1
88
- // };
89
- // }
90
- // const sortByStartDate = params.sort?.['reservationFor.startDate'];
91
- // const aggregate = this.aggregateReservationModel.aggregate<ISearchWithReservationForIdResult>([
92
- // ...matchStages,
93
- // ...(typeof sortByStartDate === 'number')
94
- // ? [{ $sort: { 'reservationFor.startDate': sortByStartDate } }]
95
- // : [],
96
- // // 現時点でreservationFor.idへのunique indexがないので、重複ドキュメント対応として、$group
97
- // {
98
- // $group: {
99
- // _id: '$reservationFor.id',
100
- // reservationFor: { $first: '$reservationFor' },
101
- // aggregateEntranceGate: { $first: '$aggregateEntranceGate' },
102
- // aggregateOffer: { $first: '$aggregateOffer' }
103
- // }
104
- // },
105
- // { $project: projectStage }
106
- // ]);
107
- // if (typeof params.limit === 'number' && params.limit > 0) {
108
- // const page: number = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
109
- // aggregate.limit(params.limit * page)
110
- // .skip(params.limit * (page - 1));
111
- // }
112
- // return aggregate
113
- // .option({ maxTimeMS: MONGO_MAX_TIME_MS })
114
- // .exec();
115
- // }
116
23
  save(filter, update) {
117
24
  return __awaiter(this, void 0, void 0, function* () {
118
25
  const { $set } = update;
@@ -5,7 +5,6 @@ type IMatchStage = PipelineStage.Match;
5
5
  export interface IUpdateAggregateReservationParams {
6
6
  $set: {
7
7
  aggregateOffer?: factory.event.screeningEvent.IAggregateOffer;
8
- aggregateEntranceGate?: factory.event.screeningEvent.IAggregateEntranceGate;
9
8
  };
10
9
  }
11
10
  type ISearchWithReservationForIdResult = Pick<IAggregateReservation, 'aggregateOffer'> & {
@@ -82,7 +82,6 @@ class AggregateReservationRepo {
82
82
  projectStage = {
83
83
  _id: 0,
84
84
  id: '$reservationFor.id',
85
- // aggregateEntranceGate: 1, // discontinue(2024-12-23~)
86
85
  aggregateOffer: 1
87
86
  };
88
87
  }
@@ -97,7 +96,6 @@ class AggregateReservationRepo {
97
96
  $group: {
98
97
  _id: '$reservationFor.id',
99
98
  reservationFor: { $first: '$reservationFor' },
100
- aggregateEntranceGate: { $first: '$aggregateEntranceGate' },
101
99
  aggregateOffer: { $first: '$aggregateOffer' }
102
100
  }
103
101
  },
@@ -50,7 +50,7 @@ class CreativeWorkRepo {
50
50
  }
51
51
  // tslint:disable-next-line:max-func-body-length
52
52
  static CREATE_MONGO_CONDITIONS(params) {
53
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
53
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
54
54
  const andConditions = [
55
55
  { typeOf: { $eq: factory.creativeWorkType.Movie } }
56
56
  ];
@@ -90,12 +90,16 @@ class CreativeWorkRepo {
90
90
  if (Array.isArray(identifierIn)) {
91
91
  andConditions.push({ identifier: { $in: identifierIn } });
92
92
  }
93
+ const identifierRegex = (_k = params.identifier) === null || _k === void 0 ? void 0 : _k.$regex;
94
+ if (typeof identifierRegex === 'string' && identifierRegex !== '') {
95
+ andConditions.push({ identifier: { $regex: new RegExp(identifierRegex) } });
96
+ }
93
97
  }
94
98
  if (typeof params.name === 'string' && params.name.length > 0) {
95
99
  // 多言語名称対応(2022-07-11~)
96
100
  andConditions.push({
97
101
  $or: [
98
- { name: { $exists: true, $regex: new RegExp(params.name) } },
102
+ // { name: { $exists: true, $regex: new RegExp(params.name) } }, // string型への互換性維持を廃止(2025-12-20~)
99
103
  { 'name.ja': { $exists: true, $regex: new RegExp(params.name) } },
100
104
  { 'name.en': { $exists: true, $regex: new RegExp(params.name) } }
101
105
  ]
@@ -111,15 +115,15 @@ class CreativeWorkRepo {
111
115
  if (params.datePublishedThrough !== undefined) {
112
116
  andConditions.push({ datePublished: { $exists: true, $lte: params.datePublishedThrough } });
113
117
  }
114
- const offersAvailableFrom = (_k = params.offers) === null || _k === void 0 ? void 0 : _k.availableFrom;
118
+ const offersAvailableFrom = (_l = params.offers) === null || _l === void 0 ? void 0 : _l.availableFrom;
115
119
  if (offersAvailableFrom instanceof Date) {
116
120
  andConditions.push({ 'offers.availabilityEnds': { $exists: true, $gte: offersAvailableFrom } });
117
121
  }
118
- const offersAvailableThrough = (_l = params.offers) === null || _l === void 0 ? void 0 : _l.availableThrough;
122
+ const offersAvailableThrough = (_m = params.offers) === null || _m === void 0 ? void 0 : _m.availableThrough;
119
123
  if (offersAvailableThrough instanceof Date) {
120
124
  andConditions.push({ 'offers.availabilityStarts': { $exists: true, $lte: offersAvailableThrough } });
121
125
  }
122
- const additionalPropertyElemMatch = (_m = params.additionalProperty) === null || _m === void 0 ? void 0 : _m.$elemMatch;
126
+ const additionalPropertyElemMatch = (_o = params.additionalProperty) === null || _o === void 0 ? void 0 : _o.$elemMatch;
123
127
  if (additionalPropertyElemMatch !== undefined && additionalPropertyElemMatch !== null) {
124
128
  andConditions.push({
125
129
  additionalProperty: {
@@ -48,5 +48,13 @@ export declare class EventOfferRepo {
48
48
  id: string;
49
49
  };
50
50
  }): Promise<DeleteResult>;
51
+ /**
52
+ * 有効期間を過ぎたイベントオファーを削除する
53
+ */
54
+ deleteEventOffersExpired(params: {
55
+ validThrough: {
56
+ $lte: Date;
57
+ };
58
+ }): Promise<DeleteResult>;
51
59
  }
52
60
  export {};
@@ -187,5 +187,16 @@ class EventOfferRepo {
187
187
  .exec();
188
188
  });
189
189
  }
190
+ /**
191
+ * 有効期間を過ぎたイベントオファーを削除する
192
+ */
193
+ deleteEventOffersExpired(params) {
194
+ return __awaiter(this, void 0, void 0, function* () {
195
+ return this.eventOfferModel.deleteMany({
196
+ validThrough: { $lte: params.validThrough.$lte }
197
+ })
198
+ .exec();
199
+ });
200
+ }
190
201
  }
191
202
  exports.EventOfferRepo = EventOfferRepo;
@@ -184,21 +184,25 @@ class EventSeriesRepo {
184
184
  }
185
185
  const videoFormatTypeOfEq = (_t = (_s = conditions.videoFormat) === null || _s === void 0 ? void 0 : _s.typeOf) === null || _t === void 0 ? void 0 : _t.$eq;
186
186
  if (typeof videoFormatTypeOfEq === 'string') {
187
- andConditions.push({
188
- 'videoFormat.typeOf': {
189
- $exists: true,
190
- $eq: videoFormatTypeOfEq
191
- }
192
- });
187
+ // 新しい参照先へ変更(2025-12-31~)
188
+ // andConditions.push({
189
+ // 'videoFormat.typeOf': {
190
+ // $exists: true,
191
+ // $eq: videoFormatTypeOfEq
192
+ // }
193
+ // });
194
+ andConditions.push({ 'subEvent.videoFormat': { $exists: true, $eq: videoFormatTypeOfEq } });
193
195
  }
194
196
  const videoFormatTypeOfIn = (_v = (_u = conditions.videoFormat) === null || _u === void 0 ? void 0 : _u.typeOf) === null || _v === void 0 ? void 0 : _v.$in;
195
197
  if (Array.isArray(videoFormatTypeOfIn)) {
196
- andConditions.push({
197
- 'videoFormat.typeOf': {
198
- $exists: true,
199
- $in: videoFormatTypeOfIn
200
- }
201
- });
198
+ // 新しい参照先へ変更(2025-12-31~)
199
+ // andConditions.push({
200
+ // 'videoFormat.typeOf': {
201
+ // $exists: true,
202
+ // $in: videoFormatTypeOfIn
203
+ // }
204
+ // });
205
+ andConditions.push({ 'subEvent.videoFormat': { $exists: true, $in: videoFormatTypeOfIn } });
202
206
  }
203
207
  const soundFormatTypeOfEq = (_x = (_w = conditions.soundFormat) === null || _w === void 0 ? void 0 : _w.typeOf) === null || _x === void 0 ? void 0 : _x.$eq;
204
208
  if (typeof soundFormatTypeOfEq === 'string') {
@@ -11,7 +11,6 @@ const schemaDefinition = {
11
11
  project: { type: mongoose_1.SchemaTypes.Mixed, required: true },
12
12
  typeOf: { type: String, required: true },
13
13
  reservationFor: { type: mongoose_1.SchemaTypes.Mixed, required: true },
14
- // aggregateEntranceGate: SchemaTypes.Mixed, // discontinue(2024-12-23~)
15
14
  aggregateOffer: mongoose_1.SchemaTypes.Mixed
16
15
  };
17
16
  const schemaOptions = {
@@ -67,15 +67,16 @@ const indexes = [
67
67
  name: 'searchByProjectId-v20220721'
68
68
  }
69
69
  ],
70
- [
71
- { name: 1, identifier: 1 },
72
- {
73
- name: 'searchByName2',
74
- partialFilterExpression: {
75
- name: { $exists: true }
76
- }
77
- }
78
- ],
70
+ // string型への互換性維持を廃止(2025-12-20~
71
+ // [
72
+ // { name: 1, identifier: 1 },
73
+ // {
74
+ // name: 'searchByName2',
75
+ // partialFilterExpression: {
76
+ // name: { $exists: true }
77
+ // }
78
+ // }
79
+ // ],
79
80
  [
80
81
  { 'name.ja': 1, identifier: 1 },
81
82
  {
@@ -24,6 +24,7 @@ const schemaDefinition = {
24
24
  headline: mongoose_1.SchemaTypes.Mixed,
25
25
  location: mongoose_1.SchemaTypes.Mixed,
26
26
  startDate: { type: Date, required: true }, // required(2025-10-08~)
27
+ subEvent: mongoose_1.SchemaTypes.Mixed, // support(2025-12-31~)
27
28
  workPerformed: mongoose_1.SchemaTypes.Mixed,
28
29
  videoFormat: mongoose_1.SchemaTypes.Mixed,
29
30
  soundFormat: mongoose_1.SchemaTypes.Mixed,
@@ -146,6 +147,15 @@ const indexes = [
146
147
  }
147
148
  }
148
149
  ],
150
+ [
151
+ { 'subEvent.videoFormat': 1, startDate: 1 },
152
+ {
153
+ name: 'subEventVideoFormat',
154
+ partialFilterExpression: {
155
+ 'subEvent.videoFormat': { $exists: true }
156
+ }
157
+ }
158
+ ],
149
159
  [
150
160
  { 'soundFormat.typeOf': 1, startDate: 1 },
151
161
  {
@@ -1,9 +1,13 @@
1
1
  import { IndexDefinition, IndexOptions, Model, Schema, SchemaDefinition } from 'mongoose';
2
2
  import * as factory from '../../../factory';
3
- type IDocType = factory.place.screeningRoom.IPlace & {
3
+ type ISeatSection = Pick<factory.place.screeningRoomSection.IPlace, 'additionalProperty' | 'branchCode' | 'name' | 'typeOf'> & {
4
+ containsPlace?: factory.place.seat.IPlace[];
5
+ };
6
+ type IDocType = Omit<factory.place.screeningRoom.IPlace, 'containsPlace'> & {
4
7
  description?: any;
5
8
  openingHoursSpecification?: any;
6
9
  smokingAllowed?: boolean;
10
+ containsPlace: ISeatSection[];
7
11
  };
8
12
  type IModel = Model<IDocType>;
9
13
  type ISchemaDefinition = SchemaDefinition<IDocType>;
@@ -11,4 +15,4 @@ type ISchema = Schema<IDocType, IModel, {}, {}, {}, {}, ISchemaDefinition, IDocT
11
15
  declare const modelName = "Place";
12
16
  declare const indexes: [d: IndexDefinition, o: IndexOptions][];
13
17
  declare function createSchema(): ISchema;
14
- export { createSchema, IModel, indexes, modelName };
18
+ export { createSchema, IDocType, IModel, indexes, modelName };