@hyper.software/common-helpers 2.2.52 → 2.2.53

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,18 +1,10 @@
1
- import { ICompany, IRoomTypePricePlanPricingInformation, IDynamicPricing } from '../../interfaces';
1
+ import { ICompany, IDynamicPricing, IRoomTypePricePlanPricingInformation, IDynamicPricingBasePriceInformation } from '../../interfaces';
2
2
  export declare const calculateDynamicPricing: ({ currentPricing, dynamicPricing, existingBasePriceMap, company, }: {
3
3
  currentPricing: IRoomTypePricePlanPricingInformation;
4
4
  dynamicPricing: IDynamicPricing;
5
- existingBasePriceMap: Record<string, number>;
5
+ existingBasePriceMap: IDynamicPricingBasePriceInformation;
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
- }>;
15
7
  }) => Promise<{
16
8
  updatedPricing: IRoomTypePricePlanPricingInformation;
17
- updatedBasePriceMap: Record<string, number>;
9
+ updatedBasePriceMap: IDynamicPricingBasePriceInformation;
18
10
  }>;
@@ -53,54 +53,52 @@ Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.calculateDynamicPricing = void 0;
54
54
  var moment_1 = __importDefault(require("moment"));
55
55
  var calculateDynamicPricing = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
56
- var basePriceMap, updatedPricing, affectedDates, _i, _c, h, date, range, _d, range_1, d, _e, _f, dateStr, manualPrice, basePrice, isAffected, isManuallyOverridden, increased;
57
- var _g;
56
+ var updatedPricing, updatedBasePriceMap, _i, _c, holiday, holidayDate, affectedDates, _d, affectedDates_1, dateStr, manualPrice, basePrice, isManuallyOverridden, adjustment, adjustedPrice;
57
+ var _e, _f, _g;
58
58
  var currentPricing = _b.currentPricing, dynamicPricing = _b.dynamicPricing, existingBasePriceMap = _b.existingBasePriceMap, company = _b.company;
59
59
  return __generator(this, function (_h) {
60
- basePriceMap = __assign({}, existingBasePriceMap);
61
60
  updatedPricing = {};
62
- affectedDates = new Set();
63
- for (_i = 0, _c = company.holidays || []; _i < _c.length; _i++) {
64
- h = _c[_i];
65
- if (!h.enableDynamicPricing)
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)
66
71
  continue;
67
- date = (0, moment_1.default)(h.date);
68
- range = [
69
- date.clone().subtract(1, 'day').format('YYYY-MM-DD'),
70
- date.clone().format('YYYY-MM-DD'),
71
- date.clone().add(1, 'day').format('YYYY-MM-DD'),
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'),
72
77
  ];
73
- for (_d = 0, range_1 = range; _d < range_1.length; _d++) {
74
- d = range_1[_d];
75
- if ((!dynamicPricing.startDate || d >= dynamicPricing.startDate) &&
76
- (!dynamicPricing.endDate || d <= dynamicPricing.endDate)) {
77
- affectedDates.add(d);
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;
78
86
  }
87
+ isManuallyOverridden = manualPrice !== basePrice;
88
+ if (isManuallyOverridden) {
89
+ updatedPricing[dateStr] = manualPrice;
90
+ continue;
91
+ }
92
+ adjustment = (_g = dynamicPricing.amount) !== null && _g !== void 0 ? _g : Math.round(basePrice * 0.05);
93
+ adjustedPrice = dynamicPricing.type === 'DECREASE'
94
+ ? Math.max(basePrice - adjustment, 0)
95
+ : Math.min(basePrice + adjustment, basePrice + 70);
96
+ updatedPricing[dateStr] = Math.round(adjustedPrice);
79
97
  }
80
98
  }
81
- for (_e = 0, _f = Object.keys(currentPricing); _e < _f.length; _e++) {
82
- dateStr = _f[_e];
83
- manualPrice = currentPricing[dateStr];
84
- basePrice = (_g = basePriceMap[dateStr]) !== null && _g !== void 0 ? _g : manualPrice;
85
- isAffected = affectedDates.has(dateStr);
86
- isManuallyOverridden = manualPrice !== basePrice;
87
- if (!(dateStr in basePriceMap)) {
88
- basePriceMap[dateStr] = manualPrice;
89
- }
90
- if (!dynamicPricing.isActive || !isAffected) {
91
- updatedPricing[dateStr] = basePrice;
92
- continue;
93
- }
94
- if (isManuallyOverridden) {
95
- updatedPricing[dateStr] = manualPrice;
96
- continue;
97
- }
98
- increased = basePrice + (dynamicPricing.amount || Math.round(basePrice * 0.05));
99
- updatedPricing[dateStr] = Math.round(Math.min(increased, basePrice + 70));
100
- }
101
99
  return [2 /*return*/, {
102
- updatedPricing: updatedPricing,
103
- updatedBasePriceMap: basePriceMap,
100
+ updatedPricing: __assign(__assign({}, currentPricing), updatedPricing),
101
+ updatedBasePriceMap: updatedBasePriceMap,
104
102
  }];
105
103
  });
106
104
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"dynamicPricingService.js","sourceRoot":"","sources":["../../../src/services/dynamicPricingService/dynamicPricingService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA2B;AAGpB,IAAM,uBAAuB,GAAG,iEAAO,EAc7C;;;QAbC,cAAc,oBAAA,EACd,cAAc,oBAAA,EACd,oBAAoB,0BAAA,EACpB,OAAO,aAAA;;QAcD,YAAY,gBAAQ,oBAAoB,CAAE,CAAA;QAC1C,cAAc,GAAyC,EAAE,CAAA;QAEzD,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;QAEvC,WAAsC,EAAtB,KAAA,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAtB,cAAsB,EAAtB,IAAsB,EAAE,CAAC;YAA9B,CAAC;YACV,IAAI,CAAC,CAAC,CAAC,oBAAoB;gBAAE,SAAQ;YAE/B,IAAI,GAAG,IAAA,gBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACrB,KAAK,GAAG;gBACZ,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBACpD,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;gBACjC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;aAChD,CAAA;YAED,WAAqB,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE,CAAC;gBAAb,CAAC;gBACV,IACE,CAAC,CAAC,cAAc,CAAC,SAAS,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC;oBAC5D,CAAC,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,EACxD,CAAC;oBACD,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,WAAiD,EAA3B,KAAA,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAA3B,cAA2B,EAA3B,IAA2B,EAAE,CAAC;YAAzC,OAAO;YACV,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;YACrC,SAAS,GAAG,MAAA,YAAY,CAAC,OAAO,CAAC,mCAAI,WAAW,CAAA;YAEhD,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACvC,oBAAoB,GAAG,WAAW,KAAK,SAAS,CAAA;YAEtD,IAAI,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,EAAE,CAAC;gBAC/B,YAAY,CAAC,OAAO,CAAC,GAAG,WAAW,CAAA;YACrC,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC5C,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;gBACnC,SAAQ;YACV,CAAC;YAED,IAAI,oBAAoB,EAAE,CAAC;gBACzB,cAAc,CAAC,OAAO,CAAC,GAAG,WAAW,CAAA;gBACrC,SAAQ;YACV,CAAC;YAEK,SAAS,GAAG,SAAS,GAAG,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAA;YACrF,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC,CAAA;QAC3E,CAAC;QAED,sBAAO;gBACL,cAAc,gBAAA;gBACd,mBAAmB,EAAE,YAAY;aAClC,EAAA;;KACF,CAAA;AAxEY,QAAA,uBAAuB,2BAwEnC"}
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;gBAE3C,IAAI,WAAW,KAAK,SAAS;oBAAE,SAAQ;gBAEjC,SAAS,GAAG,MAAA,mBAAmB,CAAC,OAAO,CAAC,mCAAI,WAAW,CAAA;gBAE7D,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;gBAEtD,IAAI,oBAAoB,EAAE,CAAC;oBACzB,cAAc,CAAC,OAAO,CAAC,GAAG,WAAW,CAAA;oBACrC,SAAQ;gBACV,CAAC;gBAEK,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;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.52",
3
+ "version": "2.2.53",
4
4
  "author": "Raul Tomescu <tomescu.raul+hyper@gmail.com>",
5
5
  "description": "Hyper Software Common Javascript Helpers",
6
6
  "main": "lib/index.js",