@chevre/domain 21.37.0-alpha.8 → 21.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/example/src/chevre/processOrder.ts +87 -0
  2. package/example/src/chevre/transaction/processPlaceOrder.ts +17 -143
  3. package/lib/chevre/factory/reservedAgentIdentifireNames.js +2 -1
  4. package/lib/chevre/factory/transaction.d.ts +1 -4
  5. package/lib/chevre/repo/passport.d.ts +39 -0
  6. package/lib/chevre/repo/passport.js +134 -0
  7. package/lib/chevre/repo/task.d.ts +9 -0
  8. package/lib/chevre/repo/task.js +23 -2
  9. package/lib/chevre/repository.d.ts +5 -0
  10. package/lib/chevre/repository.js +15 -2
  11. package/lib/chevre/service/accountTransaction/deposit.js +0 -1
  12. package/lib/chevre/service/accountTransaction/transfer.js +0 -1
  13. package/lib/chevre/service/accountTransaction/withdraw.js +0 -1
  14. package/lib/chevre/service/assetTransaction/reserve/cancel.d.ts +22 -0
  15. package/lib/chevre/service/assetTransaction/reserve/cancel.js +41 -0
  16. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.d.ts +8 -0
  17. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.js +94 -0
  18. package/lib/chevre/service/assetTransaction/reserve/confirm.d.ts +19 -0
  19. package/lib/chevre/service/assetTransaction/reserve/confirm.js +93 -0
  20. package/lib/chevre/service/assetTransaction/reserve/exportTasksById.d.ts +15 -0
  21. package/lib/chevre/service/assetTransaction/reserve/exportTasksById.js +99 -0
  22. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.d.ts +28 -0
  23. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +405 -0
  24. package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.d.ts +15 -0
  25. package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.js +40 -0
  26. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.d.ts +54 -0
  27. package/lib/chevre/service/assetTransaction/reserve/{factory.js → start/factory/createReservation.js} +3 -222
  28. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.d.ts +22 -0
  29. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +90 -0
  30. package/lib/chevre/service/assetTransaction/reserve/{factory → start/factory}/price.d.ts +1 -1
  31. package/lib/chevre/service/assetTransaction/reserve/{factory → start/factory}/price.js +1 -1
  32. package/lib/chevre/service/assetTransaction/reserve/start.d.ts +74 -0
  33. package/lib/chevre/service/assetTransaction/reserve/start.js +570 -0
  34. package/lib/chevre/service/assetTransaction/reserve.d.ts +6 -128
  35. package/lib/chevre/service/assetTransaction/reserve.js +9 -1047
  36. package/lib/chevre/service/offer/event/{defaultOffer.d.ts → authorize/defaultOffer.d.ts} +1 -1
  37. package/lib/chevre/service/offer/event/{defaultOffer.js → authorize/defaultOffer.js} +1 -1
  38. package/lib/chevre/service/offer/event/{factory.d.ts → authorize/factory.d.ts} +13 -20
  39. package/lib/chevre/service/offer/event/{factory.js → authorize/factory.js} +72 -146
  40. package/lib/chevre/service/offer/event/{processStartReserve4chevre.d.ts → authorize/processStartReserve4chevre.d.ts} +19 -19
  41. package/lib/chevre/service/offer/event/{processStartReserve4chevre.js → authorize/processStartReserve4chevre.js} +8 -13
  42. package/lib/chevre/service/offer/event/authorize.d.ts +1 -1
  43. package/lib/chevre/service/offer/event/authorize.js +104 -128
  44. package/lib/chevre/service/offer/event/importFromCOA/factory.d.ts +9 -0
  45. package/lib/chevre/service/offer/event/importFromCOA/factory.js +67 -0
  46. package/lib/chevre/service/offer/event/importFromCOA.js +1 -1
  47. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +0 -3
  48. package/lib/chevre/service/offer/eventServiceByCOA/factory.d.ts +3 -3
  49. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +4 -4
  50. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.d.ts +16 -0
  51. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +168 -0
  52. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.d.ts +4 -5
  53. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +4 -135
  54. package/lib/chevre/service/order/onOrderStatusChanged.d.ts +2 -2
  55. package/lib/chevre/service/order/onOrderStatusChanged.js +2 -1
  56. package/lib/chevre/service/order.d.ts +2 -2
  57. package/lib/chevre/service/order.js +2 -1
  58. package/lib/chevre/service/transaction/moneyTransfer.d.ts +3 -2
  59. package/lib/chevre/service/transaction/moneyTransfer.js +1 -2
  60. package/lib/chevre/service/transaction/placeOrderInProgress/start/factory.d.ts +10 -0
  61. package/lib/chevre/service/transaction/placeOrderInProgress/start/factory.js +36 -0
  62. package/lib/chevre/service/transaction/placeOrderInProgress/start.d.ts +6 -1
  63. package/lib/chevre/service/transaction/placeOrderInProgress/start.js +26 -12
  64. package/lib/chevre/service/validation/validateOrder.js +1 -1
  65. package/lib/chevre/settings.d.ts +1 -0
  66. package/lib/chevre/settings.js +5 -1
  67. package/package.json +3 -3
  68. package/example/src/chevre/migrateAuthorizeEventServiceOfferResult.ts +0 -163
  69. package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +0 -96
  70. package/lib/chevre/service/transaction/placeOrderInProgress/factory.d.ts +0 -2
  71. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +0 -29
  72. package/lib/chevre/service/transaction/validation.d.ts +0 -14
  73. package/lib/chevre/service/transaction/validation.js +0 -101
@@ -1,4 +1,4 @@
1
- import * as factory from '../../../factory';
1
+ import * as factory from '../../../../factory';
2
2
  declare const DEFAULT_OFFER_ID = "****AUTOMATICALLY_APPLIED****";
3
3
  declare const DEFAULT_TICKET_OFFER: factory.product.ITicketOffer;
4
4
  declare const DEFAULT_AVAILABLE_OFFER: factory.unitPriceOffer.IUnitPriceOffer;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_AVAILABLE_OFFER = exports.DEFAULT_TICKET_OFFER = exports.DEFAULT_OFFER_ID = void 0;
4
- const factory = require("../../../factory");
4
+ const factory = require("../../../../factory");
5
5
  const DEFAULT_OFFER_ID = '****AUTOMATICALLY_APPLIED****';
6
6
  exports.DEFAULT_OFFER_ID = DEFAULT_OFFER_ID;
7
7
  const DEFAULT_OFFER_IDENTIFIER = '****AUTOMATICALLY_APPLIED****';
@@ -1,20 +1,19 @@
1
- import * as COA from '@motionpicture/coa-service';
2
- import * as factory from '../../../factory';
3
- import { IMinimizedIndividualEvent } from '../../../factory/event';
4
- export declare function createReserveTransactionStartParams(params: {
1
+ import * as factory from '../../../../factory';
2
+ import { IMinimizedIndividualEvent } from '../../../../factory/event';
3
+ declare function createReserveTransactionStartParams(params: {
5
4
  project: {
6
5
  id: string;
7
6
  };
8
- acceptedOffer: factory.action.authorize.offer.eventService.IAcceptedOffer4chevre[];
7
+ acceptedOffers: factory.action.authorize.offer.eventService.IAcceptedOffer4chevre[];
9
8
  event: {
10
9
  id: string;
11
10
  };
12
11
  broker?: factory.reservation.IBroker<factory.reservationType>;
13
- transaction: Pick<factory.transaction.ITransaction<factory.transactionType.PlaceOrder>, 'agent' | 'expires' | 'id' | 'project' | 'seller' | 'typeOf'>;
12
+ transaction: Pick<factory.transaction.ITransaction<factory.transactionType.PlaceOrder>, 'expires' | 'seller'>;
14
13
  transactionNumber: string;
15
14
  }): factory.assetTransaction.reserve.IStartParamsWithoutDetail;
16
- export declare function createAuthorizeSeatReservationActionAttributes(params: {
17
- event: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent>;
15
+ declare function createAuthorizeSeatReservationActionAttributes(params: {
16
+ event: Pick<IMinimizedIndividualEvent<factory.eventType.ScreeningEvent>, 'id' | 'typeOf'>;
18
17
  instrument: {
19
18
  /**
20
19
  * 予約取引番号
@@ -22,33 +21,27 @@ export declare function createAuthorizeSeatReservationActionAttributes(params: {
22
21
  transactionNumber: string;
23
22
  };
24
23
  transaction: Pick<factory.transaction.ITransaction<factory.transactionType.PlaceOrder>, 'agent' | 'id' | 'project' | 'seller' | 'typeOf'>;
25
- broker?: factory.reservation.IBroker<factory.reservationType.EventReservation>;
26
24
  }): factory.action.authorize.offer.eventService.IAttributes<factory.service.webAPI.Identifier.Chevre>;
27
- export declare function acceptedOffers2amount(params: {
25
+ declare function acceptedOffers2amount(params: {
28
26
  acceptedOffers: IResultAcceptedOffer[];
29
27
  }): number;
30
- export declare function acceptedOffers2authorizeResult(params: {
28
+ declare function acceptedOffers2authorizeResult(params: {
31
29
  acceptedOffers: factory.action.authorize.offer.eventService.IAcceptedOffer4chevre[];
32
30
  acceptedOffers4result: IResultAcceptedOffer[];
33
31
  noOfferSpecified: boolean;
32
+ ticketOffers: factory.product.ITicketOffer[];
34
33
  }): factory.action.authorize.offer.eventService.IResult;
35
34
  type IObjectSubReservation = factory.assetTransaction.reserve.IObjectSubReservation;
36
35
  type IResultAcceptedOffer = factory.action.authorize.offer.eventService.IResultAcceptedOffer;
37
- export declare function responseBody2acceptedOffers4result(params: {
36
+ declare function responseBody2acceptedOffers4result(params: {
38
37
  issuedThrough: factory.assetTransaction.reserve.IIssuedThrough;
38
+ reservationFor: factory.assetTransaction.reserve.IReservationFor;
39
39
  objectSubReservations: IObjectSubReservation[];
40
40
  transactionNumber: string;
41
- event: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent>;
42
41
  project: {
43
42
  id: string;
44
43
  typeOf: factory.organizationType.Project;
45
44
  };
46
45
  seller: factory.transaction.placeOrder.ISeller;
47
46
  }): IResultAcceptedOffer[];
48
- export declare function coaTicket2offer(params: {
49
- theaterCode: string;
50
- ticketResult: COA.factory.master.ITicketResult;
51
- defaultCurrencyType?: factory.categoryCode.ICategoryCode;
52
- defaultMembershipType?: factory.categoryCode.ICategoryCode;
53
- }): factory.aggregateOffer.ISubOffer;
54
- export {};
47
+ export { acceptedOffers2amount, acceptedOffers2authorizeResult, createAuthorizeSeatReservationActionAttributes, createReserveTransactionStartParams, responseBody2acceptedOffers4result };
@@ -1,59 +1,54 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.coaTicket2offer = exports.responseBody2acceptedOffers4result = exports.acceptedOffers2authorizeResult = exports.acceptedOffers2amount = exports.createAuthorizeSeatReservationActionAttributes = exports.createReserveTransactionStartParams = void 0;
4
- const COA = require("@motionpicture/coa-service");
3
+ exports.responseBody2acceptedOffers4result = exports.createReserveTransactionStartParams = exports.createAuthorizeSeatReservationActionAttributes = exports.acceptedOffers2authorizeResult = exports.acceptedOffers2amount = void 0;
5
4
  const moment = require("moment");
6
- const util_1 = require("util");
7
- const factory = require("../../../factory");
5
+ const factory = require("../../../../factory");
8
6
  function createReserveTransactionStartParams(params) {
9
7
  var _a;
10
- const acceptedTicketOffersWithoutDetail = (Array.isArray(params.acceptedOffer))
11
- ? params.acceptedOffer.map((o) => {
8
+ const { transaction, transactionNumber } = params;
9
+ const { seller } = transaction;
10
+ const acceptedTicketOffersWithoutDetail = (Array.isArray(params.acceptedOffers))
11
+ ? params.acceptedOffers.map((o) => {
12
12
  var _a, _b, _c, _d, _e;
13
13
  const issuedBy = {
14
- typeOf: params.transaction.seller.typeOf,
15
- name: (typeof params.transaction.seller.name === 'string')
16
- ? params.transaction.seller.name
17
- : String((_a = params.transaction.seller.name) === null || _a === void 0 ? void 0 : _a.ja)
14
+ typeOf: seller.typeOf,
15
+ name: (typeof seller.name === 'string') ? seller.name : String((_a = seller.name) === null || _a === void 0 ? void 0 : _a.ja)
18
16
  };
19
17
  // 適用決済カード情報を連携(複数対応)(2022-08-02~)
20
18
  let appliesToMovieTicket;
21
- if (Array.isArray(o.priceSpecification.appliesToMovieTicket)) {
22
- appliesToMovieTicket = o.priceSpecification.appliesToMovieTicket;
19
+ const appliesToMovieTicketFromAcceptedOffer = (_b = o.priceSpecification) === null || _b === void 0 ? void 0 : _b.appliesToMovieTicket;
20
+ if (Array.isArray(appliesToMovieTicketFromAcceptedOffer)) {
21
+ appliesToMovieTicket = appliesToMovieTicketFromAcceptedOffer;
23
22
  }
24
- else if (typeof ((_b = o.priceSpecification.appliesToMovieTicket) === null || _b === void 0 ? void 0 : _b.identifier) === 'string') {
25
- appliesToMovieTicket = { identifier: o.priceSpecification.appliesToMovieTicket.identifier };
23
+ else if (typeof (appliesToMovieTicketFromAcceptedOffer === null || appliesToMovieTicketFromAcceptedOffer === void 0 ? void 0 : appliesToMovieTicketFromAcceptedOffer.identifier) === 'string') {
24
+ appliesToMovieTicket = { identifier: appliesToMovieTicketFromAcceptedOffer.identifier };
26
25
  }
27
26
  return Object.assign(Object.assign({
28
27
  // 必要な属性のみ指定する
29
28
  id: o.id, itemOffered: Object.assign(Object.assign({}, o.itemOffered), { serviceOutput: Object.assign(Object.assign({}, (_c = o.itemOffered) === null || _c === void 0 ? void 0 : _c.serviceOutput), { reservedTicket: Object.assign(Object.assign({}, (_e = (_d = o.itemOffered) === null || _d === void 0 ? void 0 : _d.serviceOutput) === null || _e === void 0 ? void 0 : _e.reservedTicket), {
30
29
  // issuedByを明示的に指定する
31
- issuedBy, typeOf: 'Ticket' }), typeOf: factory.reservationType.EventReservation }) }) }, (Array.isArray(o.addOn)) ? { addOn: o.addOn } : undefined), (appliesToMovieTicket !== undefined)
32
- ? { priceSpecification: { appliesToMovieTicket } }
33
- : undefined);
30
+ issuedBy, typeOf: 'Ticket' }), typeOf: factory.reservationType.EventReservation }) }) }, (Array.isArray(o.addOn)) ? { addOn: o.addOn } : undefined), (appliesToMovieTicket !== undefined) ? { priceSpecification: { appliesToMovieTicket } } : undefined);
34
31
  })
35
32
  : undefined;
33
+ const agent = {
34
+ typeOf: seller.typeOf,
35
+ id: seller.id,
36
+ name: (typeof seller.name === 'string') ? seller.name : String((_a = seller.name) === null || _a === void 0 ? void 0 : _a.ja)
37
+ // identifierを廃止(2024-03-05~)
38
+ // identifier: [
39
+ // { name: 'transaction', value: params.transaction.id },
40
+ // {
41
+ // name: 'transactionExpires',
42
+ // value: moment(params.transaction.expires)
43
+ // .toISOString()
44
+ // }
45
+ // ]
46
+ };
47
+ const object = Object.assign({ acceptedOffer: acceptedTicketOffersWithoutDetail, reservationFor: { id: params.event.id } }, (params.broker !== undefined) ? { broker: params.broker } : undefined);
36
48
  return {
37
49
  project: { typeOf: factory.organizationType.Project, id: params.project.id },
38
50
  typeOf: factory.assetTransactionType.Reserve,
39
- transactionNumber: params.transactionNumber,
40
- agent: {
41
- typeOf: params.transaction.seller.typeOf,
42
- id: params.transaction.seller.id,
43
- name: (typeof params.transaction.seller.name === 'string')
44
- ? params.transaction.seller.name
45
- : String((_a = params.transaction.seller.name) === null || _a === void 0 ? void 0 : _a.ja)
46
- // identifierを廃止(2024-03-05~)
47
- // identifier: [
48
- // { name: 'transaction', value: params.transaction.id },
49
- // {
50
- // name: 'transactionExpires',
51
- // value: moment(params.transaction.expires)
52
- // .toISOString()
53
- // }
54
- // ]
55
- },
56
- object: Object.assign({ acceptedOffer: acceptedTicketOffersWithoutDetail, reservationFor: { id: params.event.id } }, (params.broker !== undefined) ? { broker: params.broker } : undefined),
51
+ transactionNumber, agent, object,
57
52
  expires: moment(params.transaction.expires)
58
53
  .add(1, 'month')
59
54
  .toDate() // 余裕を持って
@@ -63,20 +58,7 @@ exports.createReserveTransactionStartParams = createReserveTransactionStartParam
63
58
  function createAuthorizeSeatReservationActionAttributes(params) {
64
59
  var _a;
65
60
  // const acceptedOffers = params.acceptedOffers;
66
- const event = params.event;
67
- const transaction = params.transaction;
68
- const offers = event.offers;
69
- if (offers === undefined) {
70
- throw new factory.errors.NotFound('EventOffers', 'Event offers undefined');
71
- }
72
- let offeredThrough = offers.offeredThrough;
73
- if (offeredThrough === undefined) {
74
- offeredThrough = { typeOf: 'WebAPI', identifier: factory.service.webAPI.Identifier.Chevre };
75
- }
76
- if (offeredThrough.identifier === factory.service.webAPI.Identifier.COA) {
77
- throw new factory.errors.NotImplemented(`offeredThrough.identifier not implemented`);
78
- }
79
- // 最適化(2022-06-07~)
61
+ const { event, transaction } = params;
80
62
  const authorizeObjectEvent = {
81
63
  id: event.id,
82
64
  // イベント提供サービスを識別できるようにするために追加(2022-06-04~)
@@ -102,23 +84,22 @@ function createAuthorizeSeatReservationActionAttributes(params) {
102
84
  identifier: factory.service.webAPI.Identifier.Chevre,
103
85
  transactionNumber: params.instrument.transactionNumber
104
86
  };
87
+ const agent = {
88
+ id: transaction.seller.id,
89
+ typeOf: transaction.seller.typeOf,
90
+ name: (typeof transaction.seller.name === 'string')
91
+ ? transaction.seller.name
92
+ : String((_a = transaction.seller.name) === null || _a === void 0 ? void 0 : _a.ja)
93
+ };
94
+ const recipient = {
95
+ typeOf: transaction.agent.typeOf,
96
+ id: transaction.agent.id
97
+ };
105
98
  return {
106
99
  project: transaction.project,
107
100
  typeOf: factory.actionType.AuthorizeAction,
108
- object,
109
- agent: {
110
- id: transaction.seller.id,
111
- typeOf: transaction.seller.typeOf,
112
- name: (typeof transaction.seller.name === 'string')
113
- ? transaction.seller.name
114
- : String((_a = transaction.seller.name) === null || _a === void 0 ? void 0 : _a.ja)
115
- },
116
- recipient: {
117
- typeOf: transaction.agent.typeOf,
118
- id: transaction.agent.id
119
- },
120
- purpose: { typeOf: transaction.typeOf, id: transaction.id },
121
- instrument
101
+ object, agent, recipient, instrument,
102
+ purpose: { typeOf: transaction.typeOf, id: transaction.id }
122
103
  };
123
104
  }
124
105
  exports.createAuthorizeSeatReservationActionAttributes = createAuthorizeSeatReservationActionAttributes;
@@ -156,9 +137,9 @@ function acceptedOffers2amount(params) {
156
137
  }
157
138
  exports.acceptedOffers2amount = acceptedOffers2amount;
158
139
  function acceptedOffers2authorizeResult(params) {
159
- var _a, _b;
160
- const { acceptedOffers, acceptedOffers4result, noOfferSpecified } = params;
161
- const priceCurrency = (_b = (_a = acceptedOffers[0]) === null || _a === void 0 ? void 0 : _a.priceSpecification) === null || _b === void 0 ? void 0 : _b.priceCurrency;
140
+ const { acceptedOffers, acceptedOffers4result, noOfferSpecified, ticketOffers } = params;
141
+ // const priceCurrency = acceptedOffers[0]?.priceSpecification?.priceCurrency;
142
+ const priceCurrency = factory.priceCurrency.JPY; // fix(2024-07-03~)
162
143
  // redefine as typeOf: AggregateOffer(2024-06-18~)
163
144
  let offers;
164
145
  let price;
@@ -167,10 +148,14 @@ function acceptedOffers2authorizeResult(params) {
167
148
  // オファーIDごとに集計
168
149
  const offerIds = [...new Set(acceptedOffers.map((o) => o.id))];
169
150
  offers = offerIds.map((offerId) => {
170
- const acceptedOffer = acceptedOffers.find(({ id }) => id === offerId);
151
+ const acceptedOffer = ticketOffers.find(({ id }) => id === offerId);
171
152
  if (acceptedOffer === undefined) {
172
153
  throw new factory.errors.Internal(`acceptedOffer not found [id:${offerId}]`);
173
154
  }
155
+ // const acceptedOffer = acceptedOffers.find(({ id }) => id === offerId);
156
+ // if (acceptedOffer === undefined) {
157
+ // throw new factory.errors.Internal(`acceptedOffer not found [id:${offerId}]`);
158
+ // }
174
159
  const amountOfThisGood = acceptedOffers.filter(({ id }) => id === offerId).length;
175
160
  const { acceptedPaymentMethod, priceSpecification } = acceptedOffer;
176
161
  const unitPriceSpec = priceSpecification.priceComponent.find((spec) => spec.typeOf === factory.priceSpecificationType.UnitPriceSpecification
@@ -194,7 +179,8 @@ function responseBody2acceptedOffers4result(params) {
194
179
  const reservation = createReservation({
195
180
  project: params.project,
196
181
  itemOffered,
197
- event: params.event,
182
+ // event: params.event,
183
+ reservationFor: params.reservationFor,
198
184
  issuedThrough: params.issuedThrough,
199
185
  reservationNumber: params.transactionNumber
200
186
  });
@@ -244,9 +230,10 @@ exports.responseBody2acceptedOffers4result = responseBody2acceptedOffers4result;
244
230
  */
245
231
  // tslint:disable-next-line:max-func-body-length
246
232
  function createReservation(params) {
247
- var _a, _b, _c, _d;
248
- const itemOffered = params.itemOffered;
249
- const event = params.event;
233
+ var _a, _b;
234
+ // const { itemOffered, event, reservationFor } = params;
235
+ const { itemOffered } = params;
236
+ const event = params.reservationFor;
250
237
  let reservationItem;
251
238
  const reservedTicket = Object.assign(Object.assign({ typeOf: itemOffered.reservedTicket.typeOf, ticketType: {
252
239
  typeOf: itemOffered.reservedTicket.ticketType.typeOf,
@@ -288,30 +275,30 @@ function createReservation(params) {
288
275
  : undefined);
289
276
  }
290
277
  else if (itemOffered.typeOf === factory.reservationType.BusReservation
291
- && event.typeOf === factory.eventType.Event) {
292
- const tripByEvent = (_c = (_b = event.offers) === null || _b === void 0 ? void 0 : _b.itemOffered.serviceOutput) === null || _c === void 0 ? void 0 : _c.reservationFor;
293
- if (typeof (tripByEvent === null || tripByEvent === void 0 ? void 0 : tripByEvent.typeOf) !== 'string') {
294
- throw new factory.errors.NotFound('event.offers.itemOffered.serviceOutput.reservationFor');
295
- }
278
+ && event.typeOf === factory.tripType.BusTrip) {
279
+ // const tripByEvent = event.offers?.itemOffered.serviceOutput?.reservationFor;
280
+ // if (typeof tripByEvent?.typeOf !== 'string') {
281
+ // throw new factory.errors.NotFound('event.offers.itemOffered.serviceOutput.reservationFor');
282
+ // }
296
283
  const reservationFor = {
297
- typeOf: tripByEvent.typeOf,
284
+ typeOf: event.typeOf,
298
285
  id: event.id,
299
- arrivalBusStop: tripByEvent.arrivalBusStop,
300
- departureBusStop: tripByEvent.departureBusStop,
286
+ arrivalBusStop: event.arrivalBusStop,
287
+ departureBusStop: event.departureBusStop,
301
288
  name: event.name,
302
- departureTime: moment(tripByEvent.departureTime)
289
+ departureTime: moment(event.departureTime)
303
290
  .toDate(),
304
- arrivalTime: moment(tripByEvent.arrivalTime)
291
+ arrivalTime: moment(event.arrivalTime)
305
292
  .toDate(),
306
- busName: tripByEvent.busName,
307
- busNumber: tripByEvent.busNumber,
308
- identifier: tripByEvent.identifier
293
+ busName: event.busName,
294
+ busNumber: event.busNumber,
295
+ identifier: event.identifier
309
296
  };
310
297
  if (params.issuedThrough.typeOf !== factory.product.ProductType.Transportation) {
311
298
  throw new factory.errors.Argument('issuedThrough', `issuedThrough.typeOf must be ${factory.product.ProductType.Transportation}`);
312
299
  }
313
300
  reservationItem = Object.assign({ typeOf: itemOffered.typeOf, additionalProperty: itemOffered.additionalProperty, additionalTicketText: itemOffered.additionalTicketText, id: itemOffered.id, issuedThrough: params.issuedThrough, reservationNumber: params.reservationNumber, reservationFor,
314
- reservedTicket }, (typeof ((_d = itemOffered.programMembershipUsed) === null || _d === void 0 ? void 0 : _d.typeOf) === 'string')
301
+ reservedTicket }, (typeof ((_b = itemOffered.programMembershipUsed) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string')
315
302
  ? { programMembershipUsed: itemOffered.programMembershipUsed }
316
303
  : undefined);
317
304
  }
@@ -320,64 +307,3 @@ function createReservation(params) {
320
307
  }
321
308
  return reservationItem;
322
309
  }
323
- // tslint:disable-next-line:max-func-body-length
324
- function coaTicket2offer(params) {
325
- var _a, _b;
326
- // 適用通貨区分
327
- const eligibleMonetaryAmount = (typeof params.ticketResult.usePoint === 'number' && params.ticketResult.usePoint > 0
328
- && typeof ((_a = params.defaultCurrencyType) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string')
329
- ? [{
330
- typeOf: 'MonetaryAmount',
331
- currency: params.defaultCurrencyType.codeValue,
332
- value: Number(params.ticketResult.usePoint)
333
- }]
334
- : undefined;
335
- // 適用メンバーシップ区分
336
- const eligibleMembershipType = (params.ticketResult.flgMember === COA.factory.master.FlgMember.Member
337
- && typeof ((_b = params.defaultMembershipType) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string')
338
- ? [{
339
- typeOf: params.defaultMembershipType.typeOf,
340
- id: params.defaultMembershipType.id,
341
- codeValue: params.defaultMembershipType.codeValue,
342
- inCodeSet: params.defaultMembershipType.inCodeSet
343
- }]
344
- : undefined;
345
- const unitPriceSpec = {
346
- typeOf: factory.priceSpecificationType.UnitPriceSpecification,
347
- price: 0,
348
- priceCurrency: factory.priceCurrency.JPY,
349
- valueAddedTaxIncluded: true,
350
- referenceQuantity: {
351
- typeOf: 'QuantitativeValue',
352
- unitCode: factory.unitCode.C62,
353
- value: 1
354
- }
355
- };
356
- const identifier = (0, util_1.format)('%s-%s-%s', factory.service.webAPI.Identifier.COA, params.theaterCode, params.ticketResult.ticketCode);
357
- const offerName = {
358
- ja: params.ticketResult.ticketName,
359
- en: (typeof params.ticketResult.ticketNameEng === 'string')
360
- ? params.ticketResult.ticketNameEng
361
- : ''
362
- };
363
- return Object.assign(Object.assign(Object.assign({ typeOf: factory.offerType.Offer, priceCurrency: factory.priceCurrency.JPY,
364
- // id: '',
365
- identifier: identifier, name: offerName, description: {
366
- ja: '',
367
- en: ''
368
- }, alternateName: {
369
- ja: params.ticketResult.ticketName,
370
- en: (typeof params.ticketResult.ticketNameEng === 'string')
371
- ? params.ticketResult.ticketNameEng
372
- : ''
373
- }, availability: factory.itemAvailability.InStock, itemOffered: {
374
- typeOf: factory.product.ProductType.EventService
375
- }, priceSpecification: unitPriceSpec }, (Array.isArray(eligibleMembershipType)) ? { eligibleMembershipType } : undefined), (Array.isArray(eligibleMonetaryAmount)) ? { eligibleMonetaryAmount } : undefined), { additionalProperty: [
376
- { name: 'theaterCode', value: params.theaterCode },
377
- ...Object.keys(params.ticketResult)
378
- .map((key) => {
379
- return { name: String(key), value: String(params.ticketResult[key]) };
380
- })
381
- ] });
382
- }
383
- exports.coaTicket2offer = coaTicket2offer;
@@ -1,23 +1,23 @@
1
- import * as factory from '../../../factory';
2
- import type { MongoRepository as ActionRepo } from '../../../repo/action';
3
- import type { MongoRepository as AssetTransactionRepo } from '../../../repo/assetTransaction';
4
- import type { AuthorizationRepo } from '../../../repo/code';
5
- import type { IMinimizedIndividualEvent, MongoRepository as EventRepo } from '../../../repo/event';
6
- import type { MongoRepository as OfferRepo } from '../../../repo/offer';
7
- import type { MongoRepository as OfferCatalogRepo } from '../../../repo/offerCatalog';
8
- import type { MongoRepository as OfferCatalogItemRepo } from '../../../repo/offerCatalogItem';
9
- import type { MongoRepository as PaymentServiceRepo } from '../../../repo/paymentService';
10
- import type { MongoRepository as SeatRepo } from '../../../repo/place/seat';
11
- import type { MongoRepository as PriceSpecificationRepo } from '../../../repo/priceSpecification';
12
- import type { MongoRepository as ProductRepo } from '../../../repo/product';
13
- import type { MongoRepository as ProductOfferRepo } from '../../../repo/productOffer';
14
- import type { MongoRepository as ProjectRepo } from '../../../repo/project';
15
- import type { RedisRepository as OfferRateLimitRepo } from '../../../repo/rateLimit/offer';
16
- import type { StockHolderRepository as StockHolderRepo } from '../../../repo/stockHolder';
17
- import type { MongoRepository as TaskRepo } from '../../../repo/task';
18
- import type { TicketRepo } from '../../../repo/ticket';
1
+ import * as factory from '../../../../factory';
2
+ import type { MongoRepository as ActionRepo } from '../../../../repo/action';
3
+ import type { MongoRepository as AssetTransactionRepo } from '../../../../repo/assetTransaction';
4
+ import type { AuthorizationRepo } from '../../../../repo/code';
5
+ import type { IMinimizedIndividualEvent, MongoRepository as EventRepo } from '../../../../repo/event';
6
+ import type { MongoRepository as OfferRepo } from '../../../../repo/offer';
7
+ import type { MongoRepository as OfferCatalogRepo } from '../../../../repo/offerCatalog';
8
+ import type { MongoRepository as OfferCatalogItemRepo } from '../../../../repo/offerCatalogItem';
9
+ import type { MongoRepository as PaymentServiceRepo } from '../../../../repo/paymentService';
10
+ import type { MongoRepository as SeatRepo } from '../../../../repo/place/seat';
11
+ import type { MongoRepository as PriceSpecificationRepo } from '../../../../repo/priceSpecification';
12
+ import type { MongoRepository as ProductRepo } from '../../../../repo/product';
13
+ import type { MongoRepository as ProductOfferRepo } from '../../../../repo/productOffer';
14
+ import type { MongoRepository as ProjectRepo } from '../../../../repo/project';
15
+ import type { RedisRepository as OfferRateLimitRepo } from '../../../../repo/rateLimit/offer';
16
+ import type { StockHolderRepository as StockHolderRepo } from '../../../../repo/stockHolder';
17
+ import type { MongoRepository as TaskRepo } from '../../../../repo/task';
18
+ import type { TicketRepo } from '../../../../repo/ticket';
19
19
  declare function processStartReserve4chevre(params: {
20
- acceptedOffer: factory.action.authorize.offer.eventService.IAcceptedOffer4chevre[];
20
+ acceptedOffers: factory.action.authorize.offer.eventService.IAcceptedOffer4chevre[];
21
21
  event: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent>;
22
22
  broker?: factory.reservation.IBroker<factory.reservationType>;
23
23
  transactionNumber: string;
@@ -10,35 +10,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.processStartReserve4chevre = void 0;
13
- const factory = require("../../../factory");
14
- const ReserveTransactionService = require("../../assetTransaction/reserve");
15
- const CodeService = require("../../code");
13
+ const factory = require("../../../../factory");
14
+ const ReserveTransactionService = require("../../../assetTransaction/reserve");
15
+ const CodeService = require("../../../code");
16
16
  const factory_1 = require("./factory");
17
17
  function processStartReserve4chevre(params) {
18
18
  return (repos) => __awaiter(this, void 0, void 0, function* () {
19
- const event = params.event;
20
- const transactionNumber = params.transactionNumber;
21
- const transaction = params.transaction;
22
- // let responseBody: factory.assetTransaction.reserve.ITransaction;
19
+ const { event, transaction, transactionNumber } = params;
23
20
  let acceptedOffers4result = [];
24
21
  // 予約取引開始
25
22
  const startParams = (0, factory_1.createReserveTransactionStartParams)(Object.assign({ project: transaction.project,
26
23
  // object: <IObjectWithDetail>action.object,
27
- acceptedOffer: params.acceptedOffer, event: { id: event.id }, transaction,
24
+ acceptedOffers: params.acceptedOffers, event: { id: event.id }, transaction,
28
25
  transactionNumber }, (params.broker !== undefined) ? { broker: params.broker } : undefined));
29
26
  const startParamObject = yield validateObjectWithoutDetail(startParams)(repos);
30
- // 予約取引開始
31
27
  const startReserveTransactionResult = yield ReserveTransactionService.start(Object.assign(Object.assign({}, startParams), { object: startParamObject, preSearchedEvent: event, preSearchedTicketOffers: params.ticketOffers, preSearchedUnitPriceOffers: params.unitPriceOffers, availableAtOrFrom: { id: params.availableAtOrFrom.id }, validateEvent: params.validateEvent, validateEventOfferPeriod: params.validateEventOfferPeriod, validateAppliesToMovieTicket: true,
32
28
  // useHoldStockByTransactionNumber: params.useHoldStockByTransactionNumber, // discontinue(2024-07-02~)
33
29
  stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd }))(repos);
34
- // responseBody = startReserveTransactionResult.transaction; // responseBody参照必要なし(2024-07-01~)
35
- // 予約取引からオファー情報を生成する
30
+ // 予約取引結果から注文オファーを生成する
36
31
  acceptedOffers4result = (0, factory_1.responseBody2acceptedOffers4result)({
37
32
  issuedThrough: startReserveTransactionResult.issuedThrough,
33
+ reservationFor: startReserveTransactionResult.reservationFor,
38
34
  objectSubReservations: startReserveTransactionResult.objectSubReservations,
39
35
  transactionNumber,
40
- // responseBody: responseBody,
41
- event: event,
36
+ // event: event,
42
37
  project: transaction.project,
43
38
  seller: transaction.seller
44
39
  });
@@ -45,7 +45,7 @@ interface IAuthorizeRepos {
45
45
  }
46
46
  type IAuthorizeOperation<T> = (repos: IAuthorizeRepos) => Promise<T>;
47
47
  type IAuthorizeOfferAction = factory.action.authorize.offer.eventService.IAction<factory.service.webAPI.Identifier>;
48
- type IObjectWithoutDetail = factory.action.authorize.offer.eventService.IObjectWithoutDetail4chevre;
48
+ type IObjectWithoutDetail = factory.action.authorize.offer.eventService.IObjectWithoutDetail<factory.service.webAPI.Identifier.Chevre>;
49
49
  /**
50
50
  * 興行オファー承認
51
51
  */