@hyper.software/common-helpers 2.10.15 → 2.10.16

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.
@@ -54,10 +54,10 @@ exports.getDynamicMultiplier = exports.calculateDynamicPricing = void 0;
54
54
  var moment_1 = __importDefault(require("moment"));
55
55
  var dateService_1 = require("../dateService/dateService");
56
56
  var calculateDynamicPricing = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
57
- var basePriceMap, resultPricing, period, totalRooms, holidayDates, _i, period_1, dateStr, date, current, isAffectedHoliday, availableRooms, availabilityRatio, leadTimeDays, isNearHoliday, isNearFuture, base, occupancyMultiplier, leadTimeMultiplier, combinedMultiplier, rawPrice, cappedPrice, base, expected;
58
- var _c;
57
+ var basePriceMap, resultPricing, period, totalRooms, holidayDates, _i, period_1, dateStr, date, current, isAffectedHoliday, availableRooms, availabilityRatio, leadTimeDays, isNearHoliday, isNearFuture, base, occupancyMultiplier, leadTimeMultiplier, combinedMultiplier, rawPrice, cappedPrice, base, fallback;
58
+ var _c, _d, _e, _f;
59
59
  var currentPricing = _b.currentPricing, dynamicPricing = _b.dynamicPricing, existingBasePriceMap = _b.existingBasePriceMap, company = _b.company, roomTypeAvailability = _b.roomTypeAvailability, roomsList = _b.roomsList, roomTypeId = _b.roomTypeId;
60
- return __generator(this, function (_d) {
60
+ return __generator(this, function (_g) {
61
61
  basePriceMap = __assign(__assign({}, dynamicPricing.basePrice), existingBasePriceMap);
62
62
  resultPricing = {};
63
63
  period = Object.keys(currentPricing);
@@ -81,14 +81,15 @@ var calculateDynamicPricing = function (_a) { return __awaiter(void 0, [_a], voi
81
81
  leadTimeDays = date.diff((0, moment_1.default)(), 'days');
82
82
  isNearHoliday = leadTimeDays <= 7;
83
83
  isNearFuture = leadTimeDays < 30;
84
+ // Always preserve manual price if it's already in currentPricing
85
+ if (typeof current === 'number') {
86
+ resultPricing[dateStr] = current;
87
+ basePriceMap[dateStr] = (_d = basePriceMap[dateStr]) !== null && _d !== void 0 ? _d : current;
88
+ continue;
89
+ }
90
+ // Otherwise (e.g., undefined or invalid), try to calculate fallback price
84
91
  if (dynamicPricing.isActive && isAffectedHoliday) {
85
- if (!basePriceMap[dateStr]) {
86
- basePriceMap[dateStr] = current;
87
- }
88
- else {
89
- basePriceMap[dateStr] = Math.min(basePriceMap[dateStr], current);
90
- }
91
- base = basePriceMap[dateStr];
92
+ base = (_e = basePriceMap[dateStr]) !== null && _e !== void 0 ? _e : current;
92
93
  occupancyMultiplier = (0, exports.getDynamicMultiplier)({ availabilityRatio: availabilityRatio, isNearFuture: isNearFuture });
93
94
  leadTimeMultiplier = leadTimeDays >= 60 ? 1.0 : 1 + (60 - leadTimeDays) * 0.005;
94
95
  combinedMultiplier = occupancyMultiplier * leadTimeMultiplier;
@@ -101,17 +102,13 @@ var calculateDynamicPricing = function (_a) { return __awaiter(void 0, [_a], voi
101
102
  cappedPrice = Math.min(rawPrice, base * 1.45);
102
103
  }
103
104
  resultPricing[dateStr] = Math.round(cappedPrice);
105
+ basePriceMap[dateStr] = base;
104
106
  }
105
107
  else {
106
- base = basePriceMap === null || basePriceMap === void 0 ? void 0 : basePriceMap[dateStr];
107
- if (dynamicPricing.isActive === false && base !== undefined) {
108
- resultPricing[dateStr] = base;
109
- }
110
- else {
111
- expected = base ? Math.round(base * (0, exports.getDynamicMultiplier)({ availabilityRatio: availabilityRatio, isNearFuture: isNearFuture })) : current;
112
- resultPricing[dateStr] =
113
- current === expected || current === Math.round((base !== null && base !== void 0 ? base : 0) * 1.2) ? (base !== null && base !== void 0 ? base : current) : current;
114
- }
108
+ base = (_f = basePriceMap === null || basePriceMap === void 0 ? void 0 : basePriceMap[dateStr]) !== null && _f !== void 0 ? _f : current;
109
+ fallback = Math.round(base * (0, exports.getDynamicMultiplier)({ availabilityRatio: availabilityRatio, isNearFuture: isNearFuture }));
110
+ resultPricing[dateStr] = fallback;
111
+ basePriceMap[dateStr] = base;
115
112
  }
116
113
  }
117
114
  return [2 /*return*/, {
@@ -1 +1 @@
1
- {"version":3,"file":"dynamicPricingService.js","sourceRoot":"","sources":["../../../src/services/dynamicPricingService/dynamicPricingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamicPricingService.js","sourceRoot":"","sources":["../../../src/services/dynamicPricingService/dynamicPricingService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyper.software/common-helpers",
3
- "version": "2.10.15",
3
+ "version": "2.10.16",
4
4
  "author": "Raul Tomescu <tomescu.raul+hyper@gmail.com>",
5
5
  "description": "Hyper Software Common Javascript Helpers",
6
6
  "main": "lib/index.js",