@hyper.software/common-helpers 2.10.33 → 2.10.35

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.
@@ -8,6 +8,4 @@ export declare const calculateDynamicPricing: ({ currentPricing, dynamicPricing,
8
8
  updatedPricing: IRoomTypePricePlanPricingInformation;
9
9
  updatedBasePriceMap: Record<string, number>;
10
10
  }>;
11
- export declare const getDynamicMultiplier: ({ isNearFuture }: {
12
- isNearFuture: boolean;
13
- }) => number;
11
+ export declare const getSimpleDynamicMultiplier: (isNearFuture: boolean) => number;
@@ -50,32 +50,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
50
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
51
  };
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
- exports.getDynamicMultiplier = exports.calculateDynamicPricing = void 0;
53
+ exports.getSimpleDynamicMultiplier = 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, start, end, today, holidayDateSet, _i, period_1, dateStr, date, current, base, leadTimeDays, isNearHoliday, isNearFuture, isAffectedHoliday, leadTimeMultiplier, rawPrice, cappedPrice, expected;
57
+ var basePriceMap, resultPricing, period, holidayDateSet, today, _i, period_1, dateStr, date, current, base, isAffectedHoliday, leadTimeDays, isNearFuture, baseForToday, leadTimeMultiplier, rawPrice, cappedPrice;
58
58
  var _c;
59
59
  var currentPricing = _b.currentPricing, dynamicPricing = _b.dynamicPricing, existingBasePriceMap = _b.existingBasePriceMap, company = _b.company;
60
60
  return __generator(this, function (_d) {
61
61
  basePriceMap = __assign(__assign({}, dynamicPricing.basePrice), existingBasePriceMap);
62
62
  resultPricing = {};
63
63
  period = Object.keys(currentPricing);
64
- start = (0, moment_1.default)(dynamicPricing.startDate);
65
- end = (0, moment_1.default)(dynamicPricing.endDate);
66
- today = (0, moment_1.default)();
67
64
  holidayDateSet = new Set((company.holidays || [])
68
- .filter(function (h) {
69
- var holidayMoment = (0, moment_1.default)(h.date);
70
- return (h.enableDynamicPricing &&
71
- holidayMoment.isSameOrAfter(start.clone().subtract(1, 'day')) &&
72
- holidayMoment.isSameOrBefore(end.clone().add(1, 'day')));
73
- })
65
+ .filter(function (h) { return h.enableDynamicPricing; })
74
66
  .flatMap(function (h) { return [
75
67
  (0, moment_1.default)(h.date).subtract(1, 'day').format('YYYY-MM-DD'),
76
68
  (0, moment_1.default)(h.date).format('YYYY-MM-DD'),
77
69
  (0, moment_1.default)(h.date).add(1, 'day').format('YYYY-MM-DD'),
78
70
  ]; }));
71
+ today = (0, moment_1.default)();
79
72
  for (_i = 0, period_1 = period; _i < period_1.length; _i++) {
80
73
  dateStr = period_1[_i];
81
74
  date = (0, moment_1.default)((0, dateService_1.normalizeDate)(dateStr));
@@ -83,26 +76,24 @@ var calculateDynamicPricing = function (_a) { return __awaiter(void 0, [_a], voi
83
76
  continue;
84
77
  current = currentPricing[dateStr];
85
78
  base = (_c = basePriceMap[dateStr]) !== null && _c !== void 0 ? _c : current;
79
+ isAffectedHoliday = holidayDateSet.has(dateStr);
86
80
  leadTimeDays = date.diff(today, 'days');
87
- isNearHoliday = leadTimeDays <= 7;
88
81
  isNearFuture = leadTimeDays < 30;
89
- isAffectedHoliday = holidayDateSet.has(dateStr);
90
- if (isAffectedHoliday) {
82
+ if (isAffectedHoliday && dynamicPricing.isActive) {
91
83
  if (!(dateStr in basePriceMap)) {
92
84
  basePriceMap[dateStr] = base;
93
85
  }
86
+ baseForToday = basePriceMap[dateStr];
94
87
  leadTimeMultiplier = leadTimeDays >= 60 ? 1.0 : 1 + (60 - leadTimeDays) * 0.005;
95
- rawPrice = base * leadTimeMultiplier;
96
- cappedPrice = isNearHoliday ? Math.min(rawPrice, base + 70) : Math.min(rawPrice, base * 1.45);
88
+ rawPrice = baseForToday * (0, exports.getSimpleDynamicMultiplier)(isNearFuture) * leadTimeMultiplier;
89
+ cappedPrice = Math.min(rawPrice, baseForToday * 1.45);
97
90
  resultPricing[dateStr] = Math.round(cappedPrice);
98
91
  }
99
- else if (!dynamicPricing.isActive && base !== undefined) {
100
- resultPricing[dateStr] = base;
92
+ else if (!dynamicPricing.isActive && dateStr in basePriceMap) {
93
+ resultPricing[dateStr] = basePriceMap[dateStr];
101
94
  }
102
95
  else {
103
- expected = base ? Math.round(base * (0, exports.getDynamicMultiplier)({ isNearFuture: isNearFuture })) : current;
104
- resultPricing[dateStr] =
105
- current === expected || current === Math.round((base !== null && base !== void 0 ? base : 0) * 1.2) ? (base !== null && base !== void 0 ? base : current) : current;
96
+ resultPricing[dateStr] = current;
106
97
  }
107
98
  }
108
99
  return [2 /*return*/, {
@@ -112,9 +103,8 @@ var calculateDynamicPricing = function (_a) { return __awaiter(void 0, [_a], voi
112
103
  });
113
104
  }); };
114
105
  exports.calculateDynamicPricing = calculateDynamicPricing;
115
- var getDynamicMultiplier = function (_a) {
116
- var isNearFuture = _a.isNearFuture;
117
- return isNearFuture ? 1.1 : 1.0;
106
+ var getSimpleDynamicMultiplier = function (isNearFuture) {
107
+ return isNearFuture ? 1.2 : 1.1;
118
108
  };
119
- exports.getDynamicMultiplier = getDynamicMultiplier;
109
+ exports.getSimpleDynamicMultiplier = getSimpleDynamicMultiplier;
120
110
  //# sourceMappingURL=dynamicPricingService.js.map
@@ -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.33",
3
+ "version": "2.10.35",
4
4
  "author": "Raul Tomescu <tomescu.raul+hyper@gmail.com>",
5
5
  "description": "Hyper Software Common Javascript Helpers",
6
6
  "main": "lib/index.js",