@hyper.software/common-helpers 2.3.16 → 2.10.3
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.
- package/lib/interfaces.d.ts +11 -34
- package/lib/interfaces.js +1 -1
- package/lib/interfaces.js.map +1 -1
- package/lib/services/bookingService/__tests__/bookingService.calculateDynamic.test.js +69 -2
- package/lib/services/bookingService/__tests__/bookingService.calculateDynamic.test.js.map +1 -1
- package/lib/services/bookingService/__tests__/bookingService.initialiseProducts.test.js +2 -2
- package/lib/services/bookingService/__tests__/bookingService.initialiseProducts.test.js.map +1 -1
- package/lib/services/bookingService/bookingsService.d.ts +4 -4
- package/lib/services/bookingService/bookingsService.js +25 -41
- package/lib/services/bookingService/bookingsService.js.map +1 -1
- package/lib/services/dynamicPricingService/dynamicPricingService.d.ts +16 -5
- package/lib/services/dynamicPricingService/dynamicPricingService.js +89 -89
- package/lib/services/dynamicPricingService/dynamicPricingService.js.map +1 -1
- package/lib/services/roomBookingService/index.js +1 -4
- package/lib/services/roomBookingService/index.js.map +1 -1
- package/lib/testingData/bookingData.d.ts +4 -4
- package/lib/testingData/roomsData.d.ts +4 -4
- package/lib/testingData/roomsData.js +4 -4
- package/lib/testingData/roomsData.js.map +1 -1
- package/package.json +2 -2
- package/lib/services/bookingService/bookingsService.getOccupancyBasedPricingDiscount.test.d.ts +0 -1
- package/lib/services/bookingService/bookingsService.getOccupancyBasedPricingDiscount.test.js +0 -35
- package/lib/services/bookingService/bookingsService.getOccupancyBasedPricingDiscount.test.js.map +0 -1
package/lib/interfaces.d.ts
CHANGED
|
@@ -35,8 +35,7 @@ export declare enum CURRENCY {
|
|
|
35
35
|
EUR = "EUR",
|
|
36
36
|
USD = "USD",
|
|
37
37
|
GBP = "GBP",
|
|
38
|
-
CHF = "CHF"
|
|
39
|
-
JPY = "JPY"
|
|
38
|
+
CHF = "CHF"
|
|
40
39
|
}
|
|
41
40
|
export declare const ALL_CURRENCY: CURRENCY[];
|
|
42
41
|
export declare enum DISCOUNT_TYPE {
|
|
@@ -62,10 +61,10 @@ export declare enum DYNAMIC_PRICING_TYPE {
|
|
|
62
61
|
INCREASE = "INCREASE",
|
|
63
62
|
DECREASE = "DECREASE"
|
|
64
63
|
}
|
|
65
|
-
export interface
|
|
64
|
+
export interface IRoomTypePricePlanPricingInformation {
|
|
66
65
|
[date: string]: number;
|
|
67
66
|
}
|
|
68
|
-
export type
|
|
67
|
+
export type IRoomTypePricePlanPricingRules = {
|
|
69
68
|
active?: boolean;
|
|
70
69
|
numberOfGuests?: number;
|
|
71
70
|
value?: number;
|
|
@@ -76,12 +75,12 @@ export interface ITimestamps {
|
|
|
76
75
|
updatedAt?: DateOrString;
|
|
77
76
|
deletedAt?: DateOrString;
|
|
78
77
|
}
|
|
79
|
-
export interface
|
|
78
|
+
export interface IRoomTypePricePlan extends ITimestamps {
|
|
80
79
|
roomTypeId?: string;
|
|
81
|
-
|
|
80
|
+
pricePlanId?: string;
|
|
82
81
|
companyId?: string;
|
|
83
|
-
pricing?:
|
|
84
|
-
pricingRules?:
|
|
82
|
+
pricing?: IRoomTypePricePlanPricingInformation;
|
|
83
|
+
pricingRules?: IRoomTypePricePlanPricingRules;
|
|
85
84
|
type?: CHANNEL_TYPE;
|
|
86
85
|
dynamicPricing?: IDynamicPricing;
|
|
87
86
|
}
|
|
@@ -92,8 +91,6 @@ export interface IDynamicPricing {
|
|
|
92
91
|
type: DYNAMIC_PRICING_TYPE;
|
|
93
92
|
amount: number;
|
|
94
93
|
basePrice?: IDynamicPricingBasePriceInformation;
|
|
95
|
-
maxIncrease?: number;
|
|
96
|
-
lastUpdateMap?: Record<string, string>;
|
|
97
94
|
}
|
|
98
95
|
export interface IDynamicPricingBasePriceInformation {
|
|
99
96
|
[date: string]: number;
|
|
@@ -320,9 +317,6 @@ export interface IRoomBookingIntegrations {
|
|
|
320
317
|
bnovo?: {
|
|
321
318
|
id?: string;
|
|
322
319
|
};
|
|
323
|
-
channex?: {
|
|
324
|
-
id?: string;
|
|
325
|
-
};
|
|
326
320
|
}
|
|
327
321
|
export interface IRoomBooking extends ITimestamps {
|
|
328
322
|
id?: string;
|
|
@@ -342,7 +336,6 @@ export interface IRoomBooking extends ITimestamps {
|
|
|
342
336
|
childrenAges?: Array<{
|
|
343
337
|
age: number | null | undefined;
|
|
344
338
|
}>;
|
|
345
|
-
disableDiscounts?: boolean;
|
|
346
339
|
}
|
|
347
340
|
export interface IRoom extends ITimestamps {
|
|
348
341
|
id?: string;
|
|
@@ -350,7 +343,6 @@ export interface IRoom extends ITimestamps {
|
|
|
350
343
|
name: string;
|
|
351
344
|
order?: number;
|
|
352
345
|
roomTypeId?: string;
|
|
353
|
-
accessCode?: string;
|
|
354
346
|
roomType?: any;
|
|
355
347
|
images?: any[];
|
|
356
348
|
roomAvailability?: IRoomAvailability;
|
|
@@ -395,22 +387,11 @@ export interface IRoomType extends ITimestamps {
|
|
|
395
387
|
maxNumberOfGuests?: number;
|
|
396
388
|
hasPrivateBathroom?: boolean;
|
|
397
389
|
description?: string;
|
|
398
|
-
|
|
390
|
+
rTPricePlans?: IRoomTypePricePlan[];
|
|
399
391
|
rooms?: IRoom[];
|
|
400
392
|
minimumStay?: number;
|
|
401
393
|
childrenRates?: IChildrenRates[];
|
|
402
394
|
childrenTourismTaxRates?: IChildrenTourismTaxRates[];
|
|
403
|
-
integrations?: IRoomTypeIntegrations;
|
|
404
|
-
}
|
|
405
|
-
export interface IRoomTypeIntegrations {
|
|
406
|
-
channelManagerType?: 'BNOVO' | 'CHANNEX';
|
|
407
|
-
bnovo?: {
|
|
408
|
-
id?: string;
|
|
409
|
-
};
|
|
410
|
-
channex?: {
|
|
411
|
-
id?: string;
|
|
412
|
-
propertyId?: string;
|
|
413
|
-
};
|
|
414
395
|
}
|
|
415
396
|
export interface IChildrenRates {
|
|
416
397
|
value?: number;
|
|
@@ -451,7 +432,8 @@ export declare enum COMPANY_AMENITY_CATEGORY {
|
|
|
451
432
|
}
|
|
452
433
|
export declare enum HOLIDAY {
|
|
453
434
|
LOCAL_HOLIDAY = "LOCAL_HOLIDAY",
|
|
454
|
-
COMMON_HOLIDAY = "COMMON_HOLIDAY"
|
|
435
|
+
COMMON_HOLIDAY = "COMMON_HOLIDAY",
|
|
436
|
+
PUBLIC = "PUBLIC"
|
|
455
437
|
}
|
|
456
438
|
export declare const ALL_COMPANY_AMENITY_CATEGORY: COMPANY_AMENITY_CATEGORY[];
|
|
457
439
|
export interface ICompanyAmenity {
|
|
@@ -532,17 +514,12 @@ export interface ICompany extends ITimestamps {
|
|
|
532
514
|
currency?: CURRENCY;
|
|
533
515
|
email?: string;
|
|
534
516
|
integrations?: {
|
|
535
|
-
|
|
536
|
-
bnovo?: {
|
|
517
|
+
bnovo: {
|
|
537
518
|
id: string;
|
|
538
519
|
};
|
|
539
520
|
stripe?: {
|
|
540
521
|
accountId: string;
|
|
541
522
|
};
|
|
542
|
-
channex?: {
|
|
543
|
-
id: string;
|
|
544
|
-
isEnabled?: boolean;
|
|
545
|
-
};
|
|
546
523
|
};
|
|
547
524
|
address?: IAddress;
|
|
548
525
|
locationDescription?: {
|
package/lib/interfaces.js
CHANGED
|
@@ -20,7 +20,6 @@ var CURRENCY;
|
|
|
20
20
|
CURRENCY["USD"] = "USD";
|
|
21
21
|
CURRENCY["GBP"] = "GBP";
|
|
22
22
|
CURRENCY["CHF"] = "CHF";
|
|
23
|
-
CURRENCY["JPY"] = "JPY";
|
|
24
23
|
})(CURRENCY || (exports.CURRENCY = CURRENCY = {}));
|
|
25
24
|
exports.ALL_CURRENCY = getAllEnumStatuses(CURRENCY);
|
|
26
25
|
var DISCOUNT_TYPE;
|
|
@@ -151,6 +150,7 @@ var HOLIDAY;
|
|
|
151
150
|
(function (HOLIDAY) {
|
|
152
151
|
HOLIDAY["LOCAL_HOLIDAY"] = "LOCAL_HOLIDAY";
|
|
153
152
|
HOLIDAY["COMMON_HOLIDAY"] = "COMMON_HOLIDAY";
|
|
153
|
+
HOLIDAY["PUBLIC"] = "PUBLIC";
|
|
154
154
|
})(HOLIDAY || (exports.HOLIDAY = HOLIDAY = {}));
|
|
155
155
|
exports.ALL_COMPANY_AMENITY_CATEGORY = getAllEnumStatuses(COMPANY_AMENITY_CATEGORY);
|
|
156
156
|
var CUSTOMER_DATA_STORAGE_PERIOD;
|
package/lib/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAEA,IAAM,kBAAkB,GAAG,UAAU,KAAU,IAAU,OAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,KAAK,CAAC,GAAG,CAAC,EAAV,CAAU,CAAC,EAA3C,CAA2C,CAAA;AAuBpG,IAAY,QASX;AATD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;AACjB,CAAC,EATW,QAAQ,wBAAR,QAAQ,QASnB;AACY,QAAA,YAAY,GAAG,kBAAkB,CAAW,QAAQ,CAAC,CAAA;AAIlE,IAAY,
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,21 @@ describe('calculateDynamicPricing', function () {
|
|
|
66
66
|
id: 'comp1',
|
|
67
67
|
holidays: [],
|
|
68
68
|
};
|
|
69
|
+
var mockGetRoomTypesAvailability = function (available, date) {
|
|
70
|
+
var _a;
|
|
71
|
+
return jest.fn().mockResolvedValue({
|
|
72
|
+
roomType1: {
|
|
73
|
+
availability: (_a = {},
|
|
74
|
+
_a[date] = available,
|
|
75
|
+
_a),
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
var mockGetRoomsByCompanyId = function (count) {
|
|
80
|
+
return jest.fn().mockResolvedValue({
|
|
81
|
+
list: Array(count).fill({ roomTypeId: 'roomType1' }),
|
|
82
|
+
});
|
|
83
|
+
};
|
|
69
84
|
it('returns base price when dynamic pricing is inactive', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
70
85
|
var result;
|
|
71
86
|
var _a, _b;
|
|
@@ -76,10 +91,14 @@ describe('calculateDynamicPricing', function () {
|
|
|
76
91
|
dynamicPricing: baseDynamicPricing({ isActive: false }),
|
|
77
92
|
existingBasePriceMap: (_b = {}, _b[today.format('YYYY-MM-DD')] = 90, _b),
|
|
78
93
|
company: mockCompany,
|
|
94
|
+
roomTypeId: 'roomType1',
|
|
95
|
+
companyId: 'comp1',
|
|
96
|
+
getRoomTypesAvailability: mockGetRoomTypesAvailability(5, today.format('YYYY-MM-DD')),
|
|
97
|
+
getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
|
|
79
98
|
})];
|
|
80
99
|
case 1:
|
|
81
100
|
result = _c.sent();
|
|
82
|
-
expect(result.updatedPricing[today.format('YYYY-MM-DD')]).toBe(
|
|
101
|
+
expect(result.updatedPricing[today.format('YYYY-MM-DD')]).toBe(90);
|
|
83
102
|
return [2 /*return*/];
|
|
84
103
|
}
|
|
85
104
|
});
|
|
@@ -103,6 +122,10 @@ describe('calculateDynamicPricing', function () {
|
|
|
103
122
|
dynamicPricing: baseDynamicPricing(),
|
|
104
123
|
existingBasePriceMap: {},
|
|
105
124
|
company: companyWithHoliday,
|
|
125
|
+
roomTypeId: 'roomType1',
|
|
126
|
+
companyId: 'comp1',
|
|
127
|
+
getRoomTypesAvailability: mockGetRoomTypesAvailability(1, holidayDate),
|
|
128
|
+
getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
|
|
106
129
|
})];
|
|
107
130
|
case 1:
|
|
108
131
|
result = _b.sent();
|
|
@@ -121,10 +144,38 @@ describe('calculateDynamicPricing', function () {
|
|
|
121
144
|
dynamicPricing: baseDynamicPricing({ isActive: false }),
|
|
122
145
|
existingBasePriceMap: (_b = {}, _b[today.format('YYYY-MM-DD')] = 95, _b),
|
|
123
146
|
company: mockCompany,
|
|
147
|
+
roomTypeId: 'roomType1',
|
|
148
|
+
companyId: 'comp1',
|
|
149
|
+
getRoomTypesAvailability: mockGetRoomTypesAvailability(3, today.format('YYYY-MM-DD')),
|
|
150
|
+
getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
|
|
124
151
|
})];
|
|
125
152
|
case 1:
|
|
126
153
|
result = _c.sent();
|
|
127
|
-
expect(result.updatedPricing[today.format('YYYY-MM-DD')]).toBe(
|
|
154
|
+
expect(result.updatedPricing[today.format('YYYY-MM-DD')]).toBe(95);
|
|
155
|
+
return [2 /*return*/];
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}); });
|
|
159
|
+
it('keeps price near base when availability is 100% and date is far', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
160
|
+
var result, price;
|
|
161
|
+
var _a;
|
|
162
|
+
return __generator(this, function (_b) {
|
|
163
|
+
switch (_b.label) {
|
|
164
|
+
case 0: return [4 /*yield*/, (0, dynamicPricingService_1.calculateDynamicPricing)({
|
|
165
|
+
currentPricing: (_a = {}, _a[farDate] = basePrice, _a),
|
|
166
|
+
dynamicPricing: baseDynamicPricing(),
|
|
167
|
+
existingBasePriceMap: {},
|
|
168
|
+
company: mockCompany,
|
|
169
|
+
roomTypeId: 'roomType1',
|
|
170
|
+
companyId: 'comp1',
|
|
171
|
+
getRoomTypesAvailability: mockGetRoomTypesAvailability(10, farDate),
|
|
172
|
+
getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
|
|
173
|
+
})];
|
|
174
|
+
case 1:
|
|
175
|
+
result = _b.sent();
|
|
176
|
+
price = result.updatedPricing[farDate];
|
|
177
|
+
expect(price).toBeGreaterThanOrEqual(basePrice);
|
|
178
|
+
expect(price).toBeLessThanOrEqual(Math.round(basePrice * 1.1));
|
|
128
179
|
return [2 /*return*/];
|
|
129
180
|
}
|
|
130
181
|
});
|
|
@@ -139,6 +190,10 @@ describe('calculateDynamicPricing', function () {
|
|
|
139
190
|
dynamicPricing: baseDynamicPricing(),
|
|
140
191
|
existingBasePriceMap: {},
|
|
141
192
|
company: mockCompany,
|
|
193
|
+
roomTypeId: 'roomType1',
|
|
194
|
+
companyId: 'comp1',
|
|
195
|
+
getRoomTypesAvailability: mockGetRoomTypesAvailability(5, farDate),
|
|
196
|
+
getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
|
|
142
197
|
})];
|
|
143
198
|
case 1:
|
|
144
199
|
result = _b.sent();
|
|
@@ -159,6 +214,10 @@ describe('calculateDynamicPricing', function () {
|
|
|
159
214
|
dynamicPricing: baseDynamicPricing(),
|
|
160
215
|
existingBasePriceMap: {},
|
|
161
216
|
company: mockCompany,
|
|
217
|
+
roomTypeId: 'roomType1',
|
|
218
|
+
companyId: 'comp1',
|
|
219
|
+
getRoomTypesAvailability: mockGetRoomTypesAvailability(1, farDate),
|
|
220
|
+
getRoomsByCompanyId: mockGetRoomsByCompanyId(50),
|
|
162
221
|
})];
|
|
163
222
|
case 1:
|
|
164
223
|
result = _b.sent();
|
|
@@ -179,6 +238,10 @@ describe('calculateDynamicPricing', function () {
|
|
|
179
238
|
dynamicPricing: baseDynamicPricing(),
|
|
180
239
|
existingBasePriceMap: {},
|
|
181
240
|
company: mockCompany,
|
|
241
|
+
roomTypeId: 'roomType1',
|
|
242
|
+
companyId: 'comp1',
|
|
243
|
+
getRoomTypesAvailability: mockGetRoomTypesAvailability(10, nearDate),
|
|
244
|
+
getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
|
|
182
245
|
})];
|
|
183
246
|
case 1:
|
|
184
247
|
result = _b.sent();
|
|
@@ -199,6 +262,10 @@ describe('calculateDynamicPricing', function () {
|
|
|
199
262
|
dynamicPricing: baseDynamicPricing(),
|
|
200
263
|
existingBasePriceMap: {},
|
|
201
264
|
company: mockCompany,
|
|
265
|
+
roomTypeId: 'roomType1',
|
|
266
|
+
companyId: 'comp1',
|
|
267
|
+
getRoomTypesAvailability: mockGetRoomTypesAvailability(5, nearDate),
|
|
268
|
+
getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
|
|
202
269
|
})];
|
|
203
270
|
case 1:
|
|
204
271
|
result = _b.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bookingService.calculateDynamic.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingService.calculateDynamic.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA2B;AAC3B,2FAA2F;AAC3F,
|
|
1
|
+
{"version":3,"file":"bookingService.calculateDynamic.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingService.calculateDynamic.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2072,10 +2072,10 @@ var bookingMock = {
|
|
|
2072
2072
|
createdAt: '2023-12-06T17:22:49.447Z',
|
|
2073
2073
|
updatedAt: '2025-03-03T17:33:29.224Z',
|
|
2074
2074
|
deletedAt: null,
|
|
2075
|
-
|
|
2075
|
+
rTPricePlans: [
|
|
2076
2076
|
{
|
|
2077
2077
|
roomTypeId: '230641dc-2405-4ca0-a585-b84d80f0d134',
|
|
2078
|
-
|
|
2078
|
+
pricePlanId: 'a484418f-cf2e-4041-87f4-afc8565a391c',
|
|
2079
2079
|
companyId: '90e5d6d0-83bf-47b2-a131-2c897065f2b9',
|
|
2080
2080
|
pricing: {
|
|
2081
2081
|
'2022-12-06': 56,
|