@chevre/domain 22.4.0-alpha.4 → 22.4.0-alpha.5

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.
@@ -18,11 +18,12 @@ async function main() {
18
18
 
19
19
  const result = await (await chevre.service.offer.createService()).event.searchOfferCatalogItemAvailability({
20
20
  event: {
21
- id: 'cllkq475u'
21
+ id: 'bm0f0cadh'
22
22
  },
23
23
  limit: 10,
24
24
  page: 1,
25
- availableAtOrFrom: { id: '3eo6okferrsdpfd9j2ce1iv9k7' }
25
+ availableAtOrFrom: { id: '3eo6okferrsdpfd9j2ce1iv9k7' },
26
+ options: { considerUnacceptedPaymentMethod: true }
26
27
  })({
27
28
  event: eventRepo,
28
29
  offer: offerRepo,
@@ -175,6 +175,7 @@ export declare class OfferRepo {
175
175
  availableAtOrFrom: {
176
176
  id: string;
177
177
  };
178
+ unacceptedPaymentMethod: string[];
178
179
  }): Promise<{
179
180
  id: string;
180
181
  }[]>;
@@ -675,24 +675,22 @@ class OfferRepo {
675
675
  */
676
676
  searchAvailableCatalogs(params) {
677
677
  return __awaiter(this, void 0, void 0, function* () {
678
+ const { unacceptedPaymentMethod } = params;
678
679
  const aggregate = this.aggregateOfferModel.aggregate([
679
680
  { $unwind: { path: '$offers' } },
680
- // { $unwind: { path: '$offers.includedInDataCatalog' } },
681
681
  { $unwind: { path: '$includedInDataCatalog' } },
682
682
  {
683
- $match: {
684
- 'project.id': { $eq: params.project.id },
685
- // 'offers.includedInDataCatalog.id': { $exists: true, $in: params.includedInDataCatalog.id },
686
- 'includedInDataCatalog.id': { $exists: true, $in: params.includedInDataCatalog.id },
687
- 'offers.availableAtOrFrom.id': { $exists: true, $eq: params.availableAtOrFrom.id }
688
- }
683
+ $match: Object.assign({ 'project.id': { $eq: params.project.id }, 'includedInDataCatalog.id': { $exists: true, $in: params.includedInDataCatalog.id }, 'offers.availableAtOrFrom.id': { $exists: true, $eq: params.availableAtOrFrom.id } }, (Array.isArray(unacceptedPaymentMethod) && unacceptedPaymentMethod.length > 0)
684
+ ? {
685
+ 'offers.priceSpecification.appliesToMovieTicket.serviceOutput.typeOf': {
686
+ $nin: unacceptedPaymentMethod
687
+ }
688
+ }
689
+ : undefined)
689
690
  },
690
691
  {
691
692
  $group: {
692
- // _id: '$offers.includedInDataCatalog.id',
693
- // includedInDataCatalog: { $first: '$offers.includedInDataCatalog' }
694
693
  _id: '$includedInDataCatalog.id'
695
- // includedInDataCatalog: { $first: '$includedInDataCatalog' }
696
694
  }
697
695
  },
698
696
  {
@@ -129,6 +129,12 @@ declare function searchOfferCatalogItemAvailability(params: {
129
129
  };
130
130
  limit: number;
131
131
  page: number;
132
+ options: {
133
+ /**
134
+ * イベントの利用不可決済方法区分を考慮するかどうか(2024-09-26~)
135
+ */
136
+ considerUnacceptedPaymentMethod: boolean;
137
+ };
132
138
  }): (repos: {
133
139
  event: EventRepo;
134
140
  offer: OfferRepo;
@@ -205,9 +205,9 @@ function searchEventTicketOffersByEvent(params) {
205
205
  });
206
206
  }
207
207
  function getUnacceptedPaymentMethodByEvent(params) {
208
+ var _a;
208
209
  let unacceptedPaymentMethod = [];
209
- const eventOffers = params.event.offers;
210
- const unacceptedPaymentMethodByEvent = eventOffers === null || eventOffers === void 0 ? void 0 : eventOffers.unacceptedPaymentMethod;
210
+ const unacceptedPaymentMethodByEvent = (_a = params.event.offers) === null || _a === void 0 ? void 0 : _a.unacceptedPaymentMethod;
211
211
  // 施設コンテンツを参照する必要はない(2022-10-31~)
212
212
  if (Array.isArray(unacceptedPaymentMethodByEvent)) {
213
213
  unacceptedPaymentMethod = unacceptedPaymentMethodByEvent;
@@ -489,6 +489,7 @@ exports.searchOfferCatalogItems = searchOfferCatalogItems;
489
489
  function searchOfferCatalogItemAvailability(params) {
490
490
  return (repos) => __awaiter(this, void 0, void 0, function* () {
491
491
  var _a, _b;
492
+ const { considerUnacceptedPaymentMethod } = params.options;
492
493
  if (typeof params.limit !== 'number') {
493
494
  throw new factory.errors.Argument('limit', 'must be number');
494
495
  }
@@ -497,7 +498,7 @@ function searchOfferCatalogItemAvailability(params) {
497
498
  }
498
499
  let availabilities = [];
499
500
  // optimize(2024-07-18~)
500
- const event = yield repos.event.projectEventFieldsById({ id: params.event.id }, ['project', 'offers.itemOffered.id']);
501
+ const event = yield repos.event.projectEventFieldsById({ id: params.event.id }, ['project', 'offers.itemOffered.id', 'offers.unacceptedPaymentMethod']);
501
502
  // 興行設定があれば興行のカタログを参照する
502
503
  const eventOffers = event.offers;
503
504
  let catalogId;
@@ -524,12 +525,14 @@ function searchOfferCatalogItemAvailability(params) {
524
525
  limit: params.limit,
525
526
  page: params.page
526
527
  });
528
+ const unacceptedPaymentMethod = getUnacceptedPaymentMethodByEvent({ event });
527
529
  if (catalogItemListElements.length > 0) {
528
530
  // 単価オファーから利用可能なサブカタログを検索
529
531
  const availableCatalogs = yield repos.offer.searchAvailableCatalogs({
530
532
  project: { id: event.project.id },
531
533
  includedInDataCatalog: { id: catalogItemListElements.map((element) => element.id) },
532
- availableAtOrFrom: { id: params.availableAtOrFrom.id }
534
+ availableAtOrFrom: { id: params.availableAtOrFrom.id },
535
+ unacceptedPaymentMethod: (considerUnacceptedPaymentMethod) ? unacceptedPaymentMethod : []
533
536
  });
534
537
  availabilities = catalogItemListElements.map((element) => {
535
538
  return {
package/package.json CHANGED
@@ -110,5 +110,5 @@
110
110
  "postversion": "git push origin --tags",
111
111
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
112
112
  },
113
- "version": "22.4.0-alpha.4"
113
+ "version": "22.4.0-alpha.5"
114
114
  }