@hyper.software/common-helpers 2.2.54 → 2.2.56

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.
@@ -1,157 +1,262 @@
1
- // import moment from 'moment'
2
- // import { calculateDynamicPricing } from '../../dynamicPricingService/dynamicPricingService'
3
- // import { ICompany, IRoomTypePricePlanPricingInformation, IDynamicPricing, DYNAMIC_PRICING_TYPE } from '../../../interfaces'
4
- // describe('calculateDynamicPricing', () => {
5
- // const today = moment().startOf('day')
6
- // const nearDate = today.clone().add(7, 'days').format('YYYY-MM-DD')
7
- // const farDate = today.clone().add(60, 'days').format('YYYY-MM-DD')
8
- // const basePrice = 100
9
- // const baseDynamicPricing = (overrides: Partial<IDynamicPricing> = {}): IDynamicPricing => ({
10
- // isActive: true,
11
- // basePrice: {},
12
- // startDate: today.format('YYYY-MM-DD'),
13
- // endDate: farDate,
14
- // type: DYNAMIC_PRICING_TYPE.INCREASE,
15
- // amount: 20,
16
- // ...overrides,
17
- // })
18
- // const mockCompany: ICompany = {
19
- // id: 'comp1',
20
- // holidays: [],
21
- // } as any
22
- // const mockGetRoomTypesAvailability = (available: number, date: string) =>
23
- // jest.fn().mockResolvedValue({
24
- // roomType1: {
25
- // availability: {
26
- // [date]: available,
27
- // },
28
- // },
29
- // })
30
- // const mockGetRoomsByCompanyId = (count: number) =>
31
- // jest.fn().mockResolvedValue({
32
- // list: Array(count).fill({ roomTypeId: 'roomType1' }),
33
- // })
34
- // // it('returns base price when dynamic pricing is inactive', async () => {
35
- // // const result = await calculateDynamicPricing({
36
- // // currentPricing: { [today.format('YYYY-MM-DD')]: 100 },
37
- // // dynamicPricing: baseDynamicPricing({ isActive: false }),
38
- // // existingBasePriceMap: { [today.format('YYYY-MM-DD')]: 90 },
39
- // // company: mockCompany,
40
- // // roomTypeId: 'roomType1',
41
- // // companyId: 'comp1',
42
- // // getRoomTypesAvailability: mockGetRoomTypesAvailability(5, today.format('YYYY-MM-DD')),
43
- // // getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
44
- // // })
45
- // // expect(result.updatedPricing[today.format('YYYY-MM-DD')]).toBe(90)
46
- // // })
47
- // it('applies holiday dynamic pricing if date is near holiday', async () => {
48
- // const holidayDate = moment(today).add(1, 'day').format('YYYY-MM-DD')
49
- // const companyWithHoliday: ICompany = {
50
- // id: 'comp1',
51
- // holidays: [{ date: holidayDate, enableDynamicPricing: true }],
52
- // } as any
53
- // const pricing: IRoomTypePricePlanPricingInformation = {
54
- // [holidayDate]: 100,
55
- // }
56
- // const result = await calculateDynamicPricing({
57
- // currentPricing: pricing,
58
- // dynamicPricing: baseDynamicPricing(),
59
- // existingBasePriceMap: {},
60
- // company: companyWithHoliday,
61
- // roomTypeId: 'roomType1',
62
- // companyId: 'comp1',
63
- // getRoomTypesAvailability: mockGetRoomTypesAvailability(1, holidayDate),
64
- // getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
65
- // })
66
- // expect(result.updatedPricing[holidayDate]).toBeGreaterThan(100)
67
- // })
68
- // // it('uses fallback pricing if base price exists and dynamic pricing is off', async () => {
69
- // // const result = await calculateDynamicPricing({
70
- // // currentPricing: { [today.format('YYYY-MM-DD')]: 100 },
71
- // // dynamicPricing: baseDynamicPricing({ isActive: false }),
72
- // // existingBasePriceMap: { [today.format('YYYY-MM-DD')]: 95 },
73
- // // company: mockCompany,
74
- // // roomTypeId: 'roomType1',
75
- // // companyId: 'comp1',
76
- // // getRoomTypesAvailability: mockGetRoomTypesAvailability(3, today.format('YYYY-MM-DD')),
77
- // // getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
78
- // // })
79
- // // expect(result.updatedPricing[today.format('YYYY-MM-DD')]).toBe(95)
80
- // // })
81
- // it('keeps price near base when availability is 100% and date is far', async () => {
82
- // const result = await calculateDynamicPricing({
83
- // currentPricing: { [farDate]: basePrice },
84
- // dynamicPricing: baseDynamicPricing(),
85
- // existingBasePriceMap: {},
86
- // company: mockCompany,
87
- // roomTypeId: 'roomType1',
88
- // companyId: 'comp1',
89
- // getRoomTypesAvailability: mockGetRoomTypesAvailability(10, farDate),
90
- // getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
91
- // })
92
- // const price = result.updatedPricing[farDate]
93
- // expect(price).toBeGreaterThanOrEqual(basePrice)
94
- // expect(price).toBeLessThanOrEqual(Math.round(basePrice * 1.1))
95
- // })
96
- // it('increases price moderately with 50% availability and date is far', async () => {
97
- // const result = await calculateDynamicPricing({
98
- // currentPricing: { [farDate]: basePrice },
99
- // dynamicPricing: baseDynamicPricing(),
100
- // existingBasePriceMap: {},
101
- // company: mockCompany,
102
- // roomTypeId: 'roomType1',
103
- // companyId: 'comp1',
104
- // getRoomTypesAvailability: mockGetRoomTypesAvailability(5, farDate),
105
- // getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
106
- // })
107
- // const price = result.updatedPricing[farDate]
108
- // expect(price).toBeGreaterThanOrEqual(basePrice)
109
- // expect(price).toBeLessThanOrEqual(Math.round(basePrice * 1.4))
110
- // })
111
- // it('maximizes price with 1 room left and date is far', async () => {
112
- // const result = await calculateDynamicPricing({
113
- // currentPricing: { [farDate]: basePrice },
114
- // dynamicPricing: baseDynamicPricing(),
115
- // existingBasePriceMap: {},
116
- // company: mockCompany,
117
- // roomTypeId: 'roomType1',
118
- // companyId: 'comp1',
119
- // getRoomTypesAvailability: mockGetRoomTypesAvailability(1, farDate),
120
- // getRoomsByCompanyId: mockGetRoomsByCompanyId(50),
121
- // })
122
- // const price = result.updatedPricing[farDate]
123
- // expect(price).toBeGreaterThanOrEqual(basePrice)
124
- // expect(price).toBeLessThanOrEqual(Math.round(basePrice * 1.5))
125
- // })
126
- // it('slightly increases price with 100% availability and date is near', async () => {
127
- // const result = await calculateDynamicPricing({
128
- // currentPricing: { [nearDate]: basePrice },
129
- // dynamicPricing: baseDynamicPricing(),
130
- // existingBasePriceMap: {},
131
- // company: mockCompany,
132
- // roomTypeId: 'roomType1',
133
- // companyId: 'comp1',
134
- // getRoomTypesAvailability: mockGetRoomTypesAvailability(10, nearDate),
135
- // getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
136
- // })
137
- // const price = result.updatedPricing[nearDate]
138
- // expect(price).toBeGreaterThanOrEqual(basePrice)
139
- // expect(price).toBeLessThanOrEqual(Math.round(133))
140
- // })
141
- // it('strongly increases price with 50% availability and date is near', async () => {
142
- // const result = await calculateDynamicPricing({
143
- // currentPricing: { [nearDate]: basePrice },
144
- // dynamicPricing: baseDynamicPricing(),
145
- // existingBasePriceMap: {},
146
- // company: mockCompany,
147
- // roomTypeId: 'roomType1',
148
- // companyId: 'comp1',
149
- // getRoomTypesAvailability: mockGetRoomTypesAvailability(5, nearDate),
150
- // getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
151
- // })
152
- // const price = result.updatedPricing[nearDate]
153
- // expect(price).toBeGreaterThanOrEqual(basePrice)
154
- // expect(price).toBeLessThanOrEqual(Math.round(basePrice * 1.4))
155
- // })
156
- // })
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var moment_1 = __importDefault(require("moment"));
54
+ var dynamicPricingService_1 = require("../../dynamicPricingService/dynamicPricingService");
55
+ var interfaces_1 = require("../../../interfaces");
56
+ describe('calculateDynamicPricing', function () {
57
+ var today = (0, moment_1.default)().startOf('day');
58
+ var nearDate = today.clone().add(7, 'days').format('YYYY-MM-DD');
59
+ var farDate = today.clone().add(60, 'days').format('YYYY-MM-DD');
60
+ var basePrice = 100;
61
+ var baseDynamicPricing = function (overrides) {
62
+ if (overrides === void 0) { overrides = {}; }
63
+ return (__assign({ isActive: true, basePrice: {}, startDate: today.format('YYYY-MM-DD'), endDate: farDate, type: interfaces_1.DYNAMIC_PRICING_TYPE.INCREASE, amount: 20 }, overrides));
64
+ };
65
+ var mockCompany = {
66
+ id: 'comp1',
67
+ holidays: [],
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
+ };
84
+ // it('returns base price when dynamic pricing is inactive', async () => {
85
+ // const result = await calculateDynamicPricing({
86
+ // currentPricing: { [today.format('YYYY-MM-DD')]: 100 },
87
+ // dynamicPricing: baseDynamicPricing({ isActive: false }),
88
+ // existingBasePriceMap: { [today.format('YYYY-MM-DD')]: 90 },
89
+ // company: mockCompany,
90
+ // roomTypeId: 'roomType1',
91
+ // companyId: 'comp1',
92
+ // getRoomTypesAvailability: mockGetRoomTypesAvailability(5, today.format('YYYY-MM-DD')),
93
+ // getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
94
+ // })
95
+ // expect(result.updatedPricing[today.format('YYYY-MM-DD')]).toBe(90)
96
+ // })
97
+ it('applies holiday dynamic pricing if date is near holiday', function () { return __awaiter(void 0, void 0, void 0, function () {
98
+ var holidayDate, companyWithHoliday, pricing, result;
99
+ var _a;
100
+ return __generator(this, function (_b) {
101
+ switch (_b.label) {
102
+ case 0:
103
+ holidayDate = (0, moment_1.default)(today).add(1, 'day').format('YYYY-MM-DD');
104
+ companyWithHoliday = {
105
+ id: 'comp1',
106
+ holidays: [{ date: holidayDate, enableDynamicPricing: true }],
107
+ };
108
+ pricing = (_a = {},
109
+ _a[holidayDate] = 100,
110
+ _a);
111
+ return [4 /*yield*/, (0, dynamicPricingService_1.calculateDynamicPricing)({
112
+ currentPricing: pricing,
113
+ dynamicPricing: baseDynamicPricing(),
114
+ existingBasePriceMap: {},
115
+ company: companyWithHoliday,
116
+ roomTypeId: 'roomType1',
117
+ companyId: 'comp1',
118
+ getRoomTypesAvailability: mockGetRoomTypesAvailability(1, holidayDate),
119
+ getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
120
+ })];
121
+ case 1:
122
+ result = _b.sent();
123
+ expect(result.updatedPricing[holidayDate]).toBeGreaterThan(100);
124
+ return [2 /*return*/];
125
+ }
126
+ });
127
+ }); });
128
+ // it('uses fallback pricing if base price exists and dynamic pricing is off', async () => {
129
+ // const result = await calculateDynamicPricing({
130
+ // currentPricing: { [today.format('YYYY-MM-DD')]: 100 },
131
+ // dynamicPricing: baseDynamicPricing({ isActive: false }),
132
+ // existingBasePriceMap: { [today.format('YYYY-MM-DD')]: 95 },
133
+ // company: mockCompany,
134
+ // roomTypeId: 'roomType1',
135
+ // companyId: 'comp1',
136
+ // getRoomTypesAvailability: mockGetRoomTypesAvailability(3, today.format('YYYY-MM-DD')),
137
+ // getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
138
+ // })
139
+ // expect(result.updatedPricing[today.format('YYYY-MM-DD')]).toBe(95)
140
+ // })
141
+ it('keeps price near base when availability is 100% and date is far', function () { return __awaiter(void 0, void 0, void 0, function () {
142
+ var result, price;
143
+ var _a;
144
+ return __generator(this, function (_b) {
145
+ switch (_b.label) {
146
+ case 0: return [4 /*yield*/, (0, dynamicPricingService_1.calculateDynamicPricing)({
147
+ currentPricing: (_a = {}, _a[farDate] = basePrice, _a),
148
+ dynamicPricing: baseDynamicPricing(),
149
+ existingBasePriceMap: {},
150
+ company: mockCompany,
151
+ roomTypeId: 'roomType1',
152
+ companyId: 'comp1',
153
+ getRoomTypesAvailability: mockGetRoomTypesAvailability(10, farDate),
154
+ getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
155
+ })];
156
+ case 1:
157
+ result = _b.sent();
158
+ price = result.updatedPricing[farDate];
159
+ expect(price).toBeGreaterThanOrEqual(basePrice);
160
+ expect(price).toBeLessThanOrEqual(Math.round(basePrice * 1.1));
161
+ return [2 /*return*/];
162
+ }
163
+ });
164
+ }); });
165
+ it('increases price moderately with 50% availability and date is far', function () { return __awaiter(void 0, void 0, void 0, function () {
166
+ var result, price;
167
+ var _a;
168
+ return __generator(this, function (_b) {
169
+ switch (_b.label) {
170
+ case 0: return [4 /*yield*/, (0, dynamicPricingService_1.calculateDynamicPricing)({
171
+ currentPricing: (_a = {}, _a[farDate] = basePrice, _a),
172
+ dynamicPricing: baseDynamicPricing(),
173
+ existingBasePriceMap: {},
174
+ company: mockCompany,
175
+ roomTypeId: 'roomType1',
176
+ companyId: 'comp1',
177
+ getRoomTypesAvailability: mockGetRoomTypesAvailability(5, farDate),
178
+ getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
179
+ })];
180
+ case 1:
181
+ result = _b.sent();
182
+ price = result.updatedPricing[farDate];
183
+ expect(price).toBeGreaterThanOrEqual(basePrice);
184
+ expect(price).toBeLessThanOrEqual(Math.round(basePrice * 1.4));
185
+ return [2 /*return*/];
186
+ }
187
+ });
188
+ }); });
189
+ it('maximizes price with 1 room left and date is far', function () { return __awaiter(void 0, void 0, void 0, function () {
190
+ var result, price;
191
+ var _a;
192
+ return __generator(this, function (_b) {
193
+ switch (_b.label) {
194
+ case 0: return [4 /*yield*/, (0, dynamicPricingService_1.calculateDynamicPricing)({
195
+ currentPricing: (_a = {}, _a[farDate] = basePrice, _a),
196
+ dynamicPricing: baseDynamicPricing(),
197
+ existingBasePriceMap: {},
198
+ company: mockCompany,
199
+ roomTypeId: 'roomType1',
200
+ companyId: 'comp1',
201
+ getRoomTypesAvailability: mockGetRoomTypesAvailability(1, farDate),
202
+ getRoomsByCompanyId: mockGetRoomsByCompanyId(50),
203
+ })];
204
+ case 1:
205
+ result = _b.sent();
206
+ price = result.updatedPricing[farDate];
207
+ expect(price).toBeGreaterThanOrEqual(basePrice);
208
+ expect(price).toBeLessThanOrEqual(Math.round(basePrice * 1.5));
209
+ return [2 /*return*/];
210
+ }
211
+ });
212
+ }); });
213
+ it('slightly increases price with 100% availability and date is near', function () { return __awaiter(void 0, void 0, void 0, function () {
214
+ var result, price;
215
+ var _a;
216
+ return __generator(this, function (_b) {
217
+ switch (_b.label) {
218
+ case 0: return [4 /*yield*/, (0, dynamicPricingService_1.calculateDynamicPricing)({
219
+ currentPricing: (_a = {}, _a[nearDate] = basePrice, _a),
220
+ dynamicPricing: baseDynamicPricing(),
221
+ existingBasePriceMap: {},
222
+ company: mockCompany,
223
+ roomTypeId: 'roomType1',
224
+ companyId: 'comp1',
225
+ getRoomTypesAvailability: mockGetRoomTypesAvailability(10, nearDate),
226
+ getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
227
+ })];
228
+ case 1:
229
+ result = _b.sent();
230
+ price = result.updatedPricing[nearDate];
231
+ expect(price).toBeGreaterThanOrEqual(basePrice);
232
+ expect(price).toBeLessThanOrEqual(Math.round(133));
233
+ return [2 /*return*/];
234
+ }
235
+ });
236
+ }); });
237
+ it('strongly increases price with 50% availability and date is near', function () { return __awaiter(void 0, void 0, void 0, function () {
238
+ var result, price;
239
+ var _a;
240
+ return __generator(this, function (_b) {
241
+ switch (_b.label) {
242
+ case 0: return [4 /*yield*/, (0, dynamicPricingService_1.calculateDynamicPricing)({
243
+ currentPricing: (_a = {}, _a[nearDate] = basePrice, _a),
244
+ dynamicPricing: baseDynamicPricing(),
245
+ existingBasePriceMap: {},
246
+ company: mockCompany,
247
+ roomTypeId: 'roomType1',
248
+ companyId: 'comp1',
249
+ getRoomTypesAvailability: mockGetRoomTypesAvailability(5, nearDate),
250
+ getRoomsByCompanyId: mockGetRoomsByCompanyId(10),
251
+ })];
252
+ case 1:
253
+ result = _b.sent();
254
+ price = result.updatedPricing[nearDate];
255
+ expect(price).toBeGreaterThanOrEqual(basePrice);
256
+ expect(price).toBeLessThanOrEqual(Math.round(basePrice * 1.4));
257
+ return [2 /*return*/];
258
+ }
259
+ });
260
+ }); });
261
+ });
157
262
  //# sourceMappingURL=bookingService.calculateDynamic.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bookingService.calculateDynamic.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingService.calculateDynamic.test.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,8FAA8F;AAC9F,8HAA8H;AAE9H,8CAA8C;AAC9C,0CAA0C;AAC1C,uEAAuE;AACvE,uEAAuE;AACvE,0BAA0B;AAE1B,iGAAiG;AACjG,sBAAsB;AACtB,qBAAqB;AACrB,6CAA6C;AAC7C,wBAAwB;AACxB,2CAA2C;AAC3C,kBAAkB;AAClB,oBAAoB;AACpB,OAAO;AAEP,oCAAoC;AACpC,mBAAmB;AACnB,oBAAoB;AACpB,aAAa;AAEb,8EAA8E;AAC9E,oCAAoC;AACpC,qBAAqB;AACrB,0BAA0B;AAC1B,+BAA+B;AAC/B,aAAa;AACb,WAAW;AACX,SAAS;AAET,uDAAuD;AACvD,oCAAoC;AACpC,8DAA8D;AAC9D,SAAS;AAET,+EAA+E;AAC/E,wDAAwD;AACxD,kEAAkE;AAClE,oEAAoE;AACpE,uEAAuE;AACvE,iCAAiC;AACjC,oCAAoC;AACpC,+BAA+B;AAC/B,kGAAkG;AAClG,6DAA6D;AAC7D,YAAY;AAEZ,4EAA4E;AAC5E,UAAU;AAEV,gFAAgF;AAChF,2EAA2E;AAC3E,6CAA6C;AAC7C,qBAAqB;AACrB,uEAAuE;AACvE,eAAe;AAEf,8DAA8D;AAC9D,4BAA4B;AAC5B,QAAQ;AAER,qDAAqD;AACrD,iCAAiC;AACjC,8CAA8C;AAC9C,kCAAkC;AAClC,qCAAqC;AACrC,iCAAiC;AACjC,4BAA4B;AAC5B,gFAAgF;AAChF,0DAA0D;AAC1D,SAAS;AAET,sEAAsE;AACtE,OAAO;AAEP,iGAAiG;AACjG,wDAAwD;AACxD,kEAAkE;AAClE,oEAAoE;AACpE,uEAAuE;AACvE,iCAAiC;AACjC,oCAAoC;AACpC,+BAA+B;AAC/B,kGAAkG;AAClG,6DAA6D;AAC7D,YAAY;AAEZ,4EAA4E;AAC5E,UAAU;AAEV,wFAAwF;AACxF,qDAAqD;AACrD,kDAAkD;AAClD,8CAA8C;AAC9C,kCAAkC;AAClC,8BAA8B;AAC9B,iCAAiC;AACjC,4BAA4B;AAC5B,6EAA6E;AAC7E,0DAA0D;AAC1D,SAAS;AAET,mDAAmD;AACnD,sDAAsD;AACtD,qEAAqE;AACrE,OAAO;AAEP,yFAAyF;AACzF,qDAAqD;AACrD,kDAAkD;AAClD,8CAA8C;AAC9C,kCAAkC;AAClC,8BAA8B;AAC9B,iCAAiC;AACjC,4BAA4B;AAC5B,4EAA4E;AAC5E,0DAA0D;AAC1D,SAAS;AAET,mDAAmD;AACnD,sDAAsD;AACtD,qEAAqE;AACrE,OAAO;AAEP,yEAAyE;AACzE,qDAAqD;AACrD,kDAAkD;AAClD,8CAA8C;AAC9C,kCAAkC;AAClC,8BAA8B;AAC9B,iCAAiC;AACjC,4BAA4B;AAC5B,4EAA4E;AAC5E,0DAA0D;AAC1D,SAAS;AAET,mDAAmD;AACnD,sDAAsD;AACtD,qEAAqE;AACrE,OAAO;AAEP,yFAAyF;AACzF,qDAAqD;AACrD,mDAAmD;AACnD,8CAA8C;AAC9C,kCAAkC;AAClC,8BAA8B;AAC9B,iCAAiC;AACjC,4BAA4B;AAC5B,8EAA8E;AAC9E,0DAA0D;AAC1D,SAAS;AAET,oDAAoD;AACpD,sDAAsD;AACtD,yDAAyD;AACzD,OAAO;AAEP,wFAAwF;AACxF,qDAAqD;AACrD,mDAAmD;AACnD,8CAA8C;AAC9C,kCAAkC;AAClC,8BAA8B;AAC9B,iCAAiC;AACjC,4BAA4B;AAC5B,6EAA6E;AAC7E,0DAA0D;AAC1D,SAAS;AAET,oDAAoD;AACpD,sDAAsD;AACtD,qEAAqE;AACrE,OAAO;AACP,KAAK"}
1
+ {"version":3,"file":"bookingService.calculateDynamic.test.js","sourceRoot":"","sources":["../../../../src/services/bookingService/__tests__/bookingService.calculateDynamic.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,18 @@
1
- import { ICompany, IDynamicPricing, IRoomTypePricePlanPricingInformation, IDynamicPricingBasePriceInformation } from '../../interfaces';
2
- export declare const calculateDynamicPricing: ({ currentPricing, dynamicPricing, existingBasePriceMap, company, }: {
1
+ import { ICompany, IRoomTypePricePlanPricingInformation, IDynamicPricing } from '../../interfaces';
2
+ export declare const calculateDynamicPricing: ({ currentPricing, dynamicPricing, existingBasePriceMap, company, roomTypeId, companyId, getRoomTypesAvailability, getRoomsByCompanyId, }: {
3
3
  currentPricing: IRoomTypePricePlanPricingInformation;
4
4
  dynamicPricing: IDynamicPricing;
5
- existingBasePriceMap: IDynamicPricingBasePriceInformation;
5
+ existingBasePriceMap: Record<string, number>;
6
6
  company: ICompany;
7
+ roomTypeId: string;
8
+ companyId: string;
9
+ getRoomTypesAvailability: (companyId: string, roomTypeIds: string[], options: {
10
+ period: string[];
11
+ }) => Promise<any>;
12
+ getRoomsByCompanyId: (companyId: string) => Promise<{
13
+ list: any[];
14
+ }>;
7
15
  }) => Promise<{
8
16
  updatedPricing: IRoomTypePricePlanPricingInformation;
9
- updatedBasePriceMap: IDynamicPricingBasePriceInformation;
17
+ updatedBasePriceMap: Record<string, number>;
10
18
  }>;
@@ -52,56 +52,53 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.calculateDynamicPricing = void 0;
54
54
  var moment_1 = __importDefault(require("moment"));
55
+ var dateService_1 = require("../dateService/dateService");
55
56
  var calculateDynamicPricing = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
56
- var updatedPricing, updatedBasePriceMap, _i, _c, holiday, holidayDate, affectedDates, _d, affectedDates_1, dateStr, manualPrice, basePrice, isManuallyOverridden, adjustment, adjustedPrice;
57
- var _e, _f, _g;
58
- var currentPricing = _b.currentPricing, dynamicPricing = _b.dynamicPricing, existingBasePriceMap = _b.existingBasePriceMap, company = _b.company;
59
- return __generator(this, function (_h) {
60
- updatedPricing = {};
61
- updatedBasePriceMap = __assign({}, existingBasePriceMap);
62
- if (!(dynamicPricing === null || dynamicPricing === void 0 ? void 0 : dynamicPricing.isActive) || !((_e = company.holidays) === null || _e === void 0 ? void 0 : _e.length)) {
63
- return [2 /*return*/, {
64
- updatedPricing: currentPricing,
65
- updatedBasePriceMap: updatedBasePriceMap,
66
- }];
67
- }
68
- for (_i = 0, _c = company.holidays; _i < _c.length; _i++) {
69
- holiday = _c[_i];
70
- if (!holiday.enableDynamicPricing)
71
- continue;
72
- holidayDate = (0, moment_1.default)(holiday.date);
73
- affectedDates = [
74
- holidayDate.clone().subtract(1, 'day').format('YYYY-MM-DD'),
75
- holidayDate.format('YYYY-MM-DD'),
76
- holidayDate.clone().add(1, 'day').format('YYYY-MM-DD'),
77
- ];
78
- for (_d = 0, affectedDates_1 = affectedDates; _d < affectedDates_1.length; _d++) {
79
- dateStr = affectedDates_1[_d];
80
- manualPrice = currentPricing[dateStr];
81
- if (manualPrice === undefined)
82
- continue;
83
- basePrice = (_f = updatedBasePriceMap[dateStr]) !== null && _f !== void 0 ? _f : manualPrice;
84
- if (!(dateStr in updatedBasePriceMap)) {
85
- updatedBasePriceMap[dateStr] = basePrice;
86
- }
87
- isManuallyOverridden = manualPrice !== basePrice;
88
- if (isManuallyOverridden) {
89
- updatedPricing[dateStr] = manualPrice;
90
- continue;
57
+ var basePriceMap, resultPricing, period, holidayDateSet, _i, period_1, dateStr, date, current, baseForToday, isAffectedHoliday, rawPrice;
58
+ var currentPricing = _b.currentPricing, dynamicPricing = _b.dynamicPricing, existingBasePriceMap = _b.existingBasePriceMap, company = _b.company, roomTypeId = _b.roomTypeId, companyId = _b.companyId, getRoomTypesAvailability = _b.getRoomTypesAvailability, getRoomsByCompanyId = _b.getRoomsByCompanyId;
59
+ return __generator(this, function (_c) {
60
+ switch (_c.label) {
61
+ case 0:
62
+ basePriceMap = __assign(__assign({}, dynamicPricing.basePrice), existingBasePriceMap);
63
+ resultPricing = {};
64
+ period = Object.keys(currentPricing);
65
+ return [4 /*yield*/, Promise.all([getRoomTypesAvailability(companyId, [roomTypeId], { period: period }), getRoomsByCompanyId(companyId)])];
66
+ case 1:
67
+ _c.sent();
68
+ holidayDateSet = new Set((company.holidays || [])
69
+ .filter(function (h) { return h.enableDynamicPricing; })
70
+ .flatMap(function (h) { return [
71
+ (0, moment_1.default)(h.date).subtract(1, 'day').format('YYYY-MM-DD'),
72
+ (0, moment_1.default)(h.date).format('YYYY-MM-DD'),
73
+ (0, moment_1.default)(h.date).add(1, 'day').format('YYYY-MM-DD'),
74
+ ]; }));
75
+ for (_i = 0, period_1 = period; _i < period_1.length; _i++) {
76
+ dateStr = period_1[_i];
77
+ date = (0, moment_1.default)((0, dateService_1.normalizeDate)(dateStr));
78
+ if (!date.isValid())
79
+ continue;
80
+ current = currentPricing[dateStr];
81
+ if (!(dateStr in basePriceMap)) {
82
+ basePriceMap[dateStr] = current;
83
+ }
84
+ baseForToday = basePriceMap[dateStr];
85
+ isAffectedHoliday = holidayDateSet.has(dateStr);
86
+ if (dynamicPricing.isActive && isAffectedHoliday) {
87
+ rawPrice = baseForToday + (dynamicPricing.amount || Math.round(baseForToday * 0.05));
88
+ if (rawPrice > baseForToday + 70) {
89
+ rawPrice = baseForToday + 70;
90
+ }
91
+ resultPricing[dateStr] = Math.round(rawPrice);
92
+ }
93
+ else {
94
+ resultPricing[dateStr] = baseForToday;
95
+ }
91
96
  }
92
- if (!(dynamicPricing === null || dynamicPricing === void 0 ? void 0 : dynamicPricing.isActive))
93
- continue;
94
- adjustment = (_g = dynamicPricing.amount) !== null && _g !== void 0 ? _g : Math.round(basePrice * 0.05);
95
- adjustedPrice = dynamicPricing.type === 'DECREASE'
96
- ? Math.max(basePrice - adjustment, 0)
97
- : Math.min(basePrice + adjustment, basePrice + 70);
98
- updatedPricing[dateStr] = Math.round(adjustedPrice);
99
- }
97
+ return [2 /*return*/, {
98
+ updatedPricing: resultPricing,
99
+ updatedBasePriceMap: basePriceMap,
100
+ }];
100
101
  }
101
- return [2 /*return*/, {
102
- updatedPricing: __assign(__assign({}, currentPricing), updatedPricing),
103
- updatedBasePriceMap: updatedBasePriceMap,
104
- }];
105
102
  });
106
103
  }); };
107
104
  exports.calculateDynamicPricing = calculateDynamicPricing;
@@ -1 +1 @@
1
- {"version":3,"file":"dynamicPricingService.js","sourceRoot":"","sources":["../../../src/services/dynamicPricingService/dynamicPricingService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA2B;AAQpB,IAAM,uBAAuB,GAAG,iEAAO,EAU7C;;;QATC,cAAc,oBAAA,EACd,cAAc,oBAAA,EACd,oBAAoB,0BAAA,EACpB,OAAO,aAAA;;QAUD,cAAc,GAAyC,EAAE,CAAA;QACzD,mBAAmB,gBAA6C,oBAAoB,CAAE,CAAA;QAE5F,IAAI,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAA,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,QAAQ,0CAAE,MAAM,CAAA,EAAE,CAAC;YAC3D,sBAAO;oBACL,cAAc,EAAE,cAAc;oBAC9B,mBAAmB,EAAE,mBAAmB;iBACzC,EAAA;QACH,CAAC;QAED,WAAsC,EAAhB,KAAA,OAAO,CAAC,QAAQ,EAAhB,cAAgB,EAAhB,IAAgB,EAAE,CAAC;YAA9B,OAAO;YAChB,IAAI,CAAC,OAAO,CAAC,oBAAoB;gBAAE,SAAQ;YAErC,WAAW,GAAG,IAAA,gBAAM,EAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAClC,aAAa,GAAG;gBACpB,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC3D,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;gBAChC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;aACvD,CAAA;YAED,WAAmC,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa,EAAE,CAAC;gBAA3B,OAAO;gBACV,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;gBAC3C,IAAI,WAAW,KAAK,SAAS;oBAAE,SAAQ;gBAEjC,SAAS,GAAG,MAAA,mBAAmB,CAAC,OAAO,CAAC,mCAAI,WAAW,CAAA;gBAC7D,IAAI,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,EAAE,CAAC;oBACtC,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;gBAC1C,CAAC;gBAEK,oBAAoB,GAAG,WAAW,KAAK,SAAS,CAAA;gBACtD,IAAI,oBAAoB,EAAE,CAAC;oBACzB,cAAc,CAAC,OAAO,CAAC,GAAG,WAAW,CAAA;oBACrC,SAAQ;gBACV,CAAC;gBACD,IAAI,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAA;oBAAE,SAAQ;gBAEjC,UAAU,GAAG,MAAA,cAAc,CAAC,MAAM,mCAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;gBAClE,aAAa,GACjB,cAAc,CAAC,IAAI,KAAK,UAAU;oBAChC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,EAAE,CAAC,CAAC;oBACrC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,EAAE,SAAS,GAAG,EAAE,CAAC,CAAA;gBAEtD,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;QAED,sBAAO;gBACL,cAAc,wBACT,cAAc,GACd,cAAc,CAClB;gBACD,mBAAmB,qBAAA;aACpB,EAAA;;KACF,CAAA;AAnEY,QAAA,uBAAuB,2BAmEnC"}
1
+ {"version":3,"file":"dynamicPricingService.js","sourceRoot":"","sources":["../../../src/services/dynamicPricingService/dynamicPricingService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA2B;AAE3B,0DAA0D;AAEnD,IAAM,uBAAuB,GAAG,iEAAO,EAkB7C;;QAjBC,cAAc,oBAAA,EACd,cAAc,oBAAA,EACd,oBAAoB,0BAAA,EACpB,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,wBAAwB,8BAAA,EACxB,mBAAmB,yBAAA;;;;gBAcb,YAAY,yBAAQ,cAAc,CAAC,SAAS,GAAK,oBAAoB,CAAE,CAAA;gBACvE,aAAa,GAAyC,EAAE,CAAA;gBAExD,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAE1C,qBAAM,OAAO,CAAC,GAAG,CAAC,CAAC,wBAAwB,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,QAAA,EAAE,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAA;;gBAAlH,SAAkH,CAAA;gBAE5G,cAAc,GAAG,IAAI,GAAG,CAC5B,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;qBACrB,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,oBAAoB,EAAtB,CAAsB,CAAC;qBACrC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA;oBACd,IAAA,gBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;oBACtD,IAAA,gBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;oBACnC,IAAA,gBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;iBAClD,EAJe,CAIf,CAAC,CACL,CAAA;gBAED,WAA4B,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE,CAAC;oBAApB,OAAO;oBACV,IAAI,GAAG,IAAA,gBAAM,EAAC,IAAA,2BAAa,EAAC,OAAO,CAAC,CAAC,CAAA;oBAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;wBAAE,SAAQ;oBAEvB,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;oBAEvC,IAAI,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,EAAE,CAAC;wBAC/B,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;oBACjC,CAAC;oBAEK,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;oBACpC,iBAAiB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBAErD,IAAI,cAAc,CAAC,QAAQ,IAAI,iBAAiB,EAAE,CAAC;wBAC7C,QAAQ,GAAG,YAAY,GAAG,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAA;wBAExF,IAAI,QAAQ,GAAG,YAAY,GAAG,EAAE,EAAE,CAAC;4BACjC,QAAQ,GAAG,YAAY,GAAG,EAAE,CAAA;wBAC9B,CAAC;wBAED,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;oBAC/C,CAAC;yBAAM,CAAC;wBACN,aAAa,CAAC,OAAO,CAAC,GAAG,YAAY,CAAA;oBACvC,CAAC;gBACH,CAAC;gBAED,sBAAO;wBACL,cAAc,EAAE,aAAa;wBAC7B,mBAAmB,EAAE,YAAY;qBAClC,EAAA;;;KACF,CAAA;AArEY,QAAA,uBAAuB,2BAqEnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyper.software/common-helpers",
3
- "version": "2.2.54",
3
+ "version": "2.2.56",
4
4
  "author": "Raul Tomescu <tomescu.raul+hyper@gmail.com>",
5
5
  "description": "Hyper Software Common Javascript Helpers",
6
6
  "main": "lib/index.js",