turf-common 1.0.16-beta.16 → 1.0.16-beta.18

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.
Files changed (67) hide show
  1. package/build/interface/booking-details-model.interface.d.ts +5 -0
  2. package/build/interface/booking-details-model.interface.js +2 -0
  3. package/build/interface/booking-entity-model.interface.d.ts +8 -0
  4. package/build/interface/booking-entity-model.interface.js +2 -0
  5. package/build/interface/cancellation-policy-model.interface.d.ts +4 -0
  6. package/build/interface/cancellation-policy-model.interface.js +2 -0
  7. package/build/interface/price-model.interface.d.ts +3 -0
  8. package/build/interface/price-model.interface.js +2 -0
  9. package/build/interface/pricing-plan-entity-model.interface.d.ts +13 -0
  10. package/build/interface/pricing-plan-entity-model.interface.js +2 -0
  11. package/build/interface/pricing-plan.interface.d.ts +15 -0
  12. package/build/interface/pricing-plan.interface.js +2 -0
  13. package/build/interface/turf-model.interface.d.ts +7 -0
  14. package/build/interface/turf-model.interface.js +2 -0
  15. package/build/interface/user-model.interface.d.ts +3 -0
  16. package/build/interface/user-model.interface.js +2 -0
  17. package/build/models/billing-cycle-model.d.ts +10 -0
  18. package/build/models/billing-cycle-model.js +20 -0
  19. package/build/models/booking-details-model.d.ts +39 -0
  20. package/build/models/booking-details-model.js +69 -0
  21. package/build/models/booking-entity-model.d.ts +21 -0
  22. package/build/models/booking-entity-model.js +47 -0
  23. package/build/models/cancellation-policy-model.d.ts +18 -0
  24. package/build/models/cancellation-policy-model.js +32 -0
  25. package/build/models/pitch-slab-model.d.ts +3 -79
  26. package/build/models/pitch-slab-model.js +1 -164
  27. package/build/models/price-model.d.ts +11 -0
  28. package/build/models/price-model.js +15 -0
  29. package/build/models/pricing-plan-entity-model.d.ts +47 -0
  30. package/build/models/pricing-plan-entity-model.js +128 -0
  31. package/build/models/pricing-plan-model.d.ts +24 -0
  32. package/build/models/pricing-plan-model.js +67 -0
  33. package/build/models/subscribed-pricing-plan-model.d.ts +26 -0
  34. package/build/models/subscribed-pricing-plan-model.js +88 -0
  35. package/build/models/subscription-model.d.ts +30 -0
  36. package/build/models/subscription-model.js +51 -0
  37. package/build/models/turf-model.d.ts +33 -0
  38. package/build/models/turf-model.js +88 -0
  39. package/build/models/user-model.d.ts +31 -0
  40. package/build/models/user-model.js +19 -0
  41. package/build/types/entity/bank-details-entity.type.d.ts +2 -2
  42. package/build/types/entity/booking-cancellation-entity.type.d.ts +2 -2
  43. package/build/types/entity/booking-customer-entity.type.d.ts +2 -2
  44. package/build/types/entity/booking-details-entity.type.d.ts +2 -41
  45. package/build/types/entity/booking-details-entity.type.js +0 -67
  46. package/build/types/entity/bookings-entity.type.d.ts +2 -27
  47. package/build/types/entity/bookings-entity.type.js +0 -45
  48. package/build/types/entity/cancellation-policy-entity.type.d.ts +2 -21
  49. package/build/types/entity/cancellation-policy-entity.type.js +0 -30
  50. package/build/types/entity/coupon.entity.type.d.ts +4 -4
  51. package/build/types/entity/entity-audit-column.type.d.ts +2 -2
  52. package/build/types/entity/faqs-entity.type.d.ts +2 -2
  53. package/build/types/entity/organization-entity.type.d.ts +4 -4
  54. package/build/types/entity/pitch-entity.type.d.ts +2 -2
  55. package/build/types/entity/price-entity.type.d.ts +2 -13
  56. package/build/types/entity/price-entity.type.js +0 -13
  57. package/build/types/entity/pricing-plan-entity.d.ts +3 -53
  58. package/build/types/entity/pricing-plan-entity.js +0 -124
  59. package/build/types/entity/registration-entity.type.d.ts +2 -2
  60. package/build/types/entity/subscription-entity.type.d.ts +3 -32
  61. package/build/types/entity/subscription-entity.type.js +0 -49
  62. package/build/types/entity/subscription-pitch-mapping.type.d.ts +1 -1
  63. package/build/types/entity/turf-entity.type.d.ts +6 -28
  64. package/build/types/entity/turf-entity.type.js +0 -69
  65. package/build/types/entity/user-entity.type.d.ts +0 -28
  66. package/build/types/entity/user-entity.type.js +0 -17
  67. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ import { ChargesModel } from "../models/charge-model";
2
+ import { IBookingDetailsEntity } from "../types/entity/booking-details-entity.type";
3
+ export interface IBookingDetailsModel extends IBookingDetailsEntity {
4
+ assignCharges(chargeModel: ChargesModel): void;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import { BookingCode } from "../models/booking-code-model";
2
+ import { IBookingsEntity } from "../types/entity/bookings-entity.type";
3
+ export interface IBookingsEntityModel extends IBookingsEntity {
4
+ getTotalCost(): number;
5
+ getBookingTimeInMinutes(): number;
6
+ isTimeExtended(newBookingEntities: IBookingsEntity[]): boolean;
7
+ getBookingCode(): BookingCode;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ import { ICancellationPolicyEntity } from "../types/entity/cancellation-policy-entity.type";
2
+ export interface ICancellationPolicyModel extends ICancellationPolicyEntity {
3
+ unitOfCharges(): string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ import { IPriceEntity } from "../types/entity/price-entity.type";
2
+ export interface IPriceModel extends IPriceEntity {
3
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import { PricingPlanModel } from "../models/pricing-plan-model";
2
+ import { IPricingPlanEntity } from "../types/entity/pricing-plan-entity";
3
+ import { GetPricingPlanByDateResponse } from "./get-pricing-plan-by-date-response.interface";
4
+ import { IPitchSlab } from "./pitch-slab.interface";
5
+ export interface IPricingPlanEntityModel extends IPricingPlanEntity {
6
+ getBillingCycleKeys(): string[];
7
+ toModel(): PricingPlanModel;
8
+ arrayToIndexedObject<T>(arr: T[]): {
9
+ [key: string]: T;
10
+ };
11
+ toObject(): GetPricingPlanByDateResponse;
12
+ toPitchSlabs(): IPitchSlab[];
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,15 @@
1
+ import { IBillingCycle } from "./billing-cycle.interface";
2
+ import { IPitchSlab } from "./pitch-slab.interface";
3
+ export interface IPricingPlan {
4
+ id: number;
5
+ effective_from_date: number;
6
+ effective_to_date: number;
7
+ base_price: number;
8
+ unit: string;
9
+ pitch_slab: {
10
+ [key: string]: IPitchSlab;
11
+ };
12
+ billing_cycle: {
13
+ [key: string]: IBillingCycle;
14
+ };
15
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import { IPitchStatus } from "../enums/pitch-status.enum";
2
+ import { ITurfEntity, ITurfEntityRel } from "../types/entity/turf-entity.type";
3
+ import { ITurf } from "./get-turf-entity.interface";
4
+ export interface ITurfModel extends ITurfEntity, ITurfEntityRel {
5
+ getPitchStatusCount(): IPitchStatus;
6
+ getModifiedTurfEntity(): ITurf;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ import { IUserEntity, IUserEntityRel } from "../types/entity/user-entity.type";
2
+ export interface IUserModel extends IUserEntity, IUserEntityRel {
3
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import { IBillingCycle } from "../interface/billing-cycle.interface";
2
+ export declare class BillingCycleModel implements IBillingCycle {
3
+ from: number;
4
+ to: number;
5
+ discount: string;
6
+ name: string;
7
+ key: string;
8
+ constructor(data: IBillingCycle);
9
+ getDiscount(): number;
10
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BillingCycleModel = void 0;
4
+ var BillingCycleModel = /** @class */ (function () {
5
+ function BillingCycleModel(data) {
6
+ this.from = data.from;
7
+ this.to = data.to;
8
+ this.discount = data.discount;
9
+ this.name = data.name;
10
+ this.key = data.key;
11
+ }
12
+ BillingCycleModel.prototype.getDiscount = function () {
13
+ if (this.discount.indexOf("P") > -1) {
14
+ return parseFloat(this.discount.replace("P", ""));
15
+ }
16
+ return 0;
17
+ };
18
+ return BillingCycleModel;
19
+ }());
20
+ exports.BillingCycleModel = BillingCycleModel;
@@ -0,0 +1,39 @@
1
+ import { BookingDetailsStatus } from "../enums/booking-details-status.enum";
2
+ import { IBookingDetailsModel } from "../interface/booking-details-model.interface";
3
+ import { IBookingDetailsWithBooking } from "../types/bookingdetails-with-booking.type";
4
+ import { IBookingDetailsEntity } from "../types/entity/booking-details-entity.type";
5
+ import { IBookingsEntity } from "../types/entity/bookings-entity.type";
6
+ import { ChargesModel } from "./charge-model";
7
+ export declare class BookingDetailsModel implements IBookingDetailsModel {
8
+ id: number;
9
+ turfId: number;
10
+ pitchId: number;
11
+ customerName: string;
12
+ contact: string;
13
+ paymentMode: string;
14
+ couponCode: string;
15
+ totalCost: number;
16
+ discountedCost: number;
17
+ amountPaid: number;
18
+ email: string;
19
+ status: BookingDetailsStatus;
20
+ sport: string;
21
+ remarks: string;
22
+ initialBookingGrossAmount: number;
23
+ additionalBookingGrossAmount: number;
24
+ discountAmount: number;
25
+ cancelledBookingGrossAmount: number;
26
+ totalCancellationCharges: number;
27
+ netTotal: number;
28
+ amountPayable: number;
29
+ refundPayable: number;
30
+ totalRefundedAmount: number;
31
+ createdOn: Date;
32
+ updatedOn: Date;
33
+ createdBy: number;
34
+ updatedBy: number;
35
+ constructor(data: IBookingDetailsEntity);
36
+ static getIdAndCreatedBy(bookingDetailsEntities: IBookingDetailsEntity[]): number[][];
37
+ assignCharges(chargeModel: ChargesModel): void;
38
+ static toMap(bookingDetailsEntities: IBookingDetailsEntity[], bookingsEntities: IBookingsEntity[]): IBookingDetailsWithBooking;
39
+ }
@@ -0,0 +1,69 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.BookingDetailsModel = void 0;
15
+ var booking_entity_model_1 = require("./booking-entity-model");
16
+ var BookingDetailsModel = /** @class */ (function () {
17
+ function BookingDetailsModel(data) {
18
+ Object.assign(this, data);
19
+ }
20
+ BookingDetailsModel.getIdAndCreatedBy = function (bookingDetailsEntities) {
21
+ var bookingDetailsIds = [];
22
+ var userIds = [];
23
+ bookingDetailsEntities.forEach(function (_a) {
24
+ var bookingDetailId = _a.id, createdBy = _a.createdBy;
25
+ bookingDetailsIds.push(bookingDetailId), userIds.push(createdBy);
26
+ });
27
+ return [bookingDetailsIds, userIds];
28
+ };
29
+ // static toMap(
30
+ // bookingDetailsEntities: IBookingDetailsEntity[],
31
+ // bookingsEntities: BookingsEntity[],
32
+ // ): IBookingDetailsWithBooking {
33
+ // const response: IBookingDetailsWithBooking = {};
34
+ // bookingDetailsEntities.forEach((bookingsDetailsEntity) => {
35
+ // const bookingDetailsId = bookingsDetailsEntity.id;
36
+ // if (!response[bookingDetailsId]) {
37
+ // response[bookingDetailsId] = {
38
+ // ...bookingsDetailsEntity,
39
+ // bookings: {},
40
+ // };
41
+ // }
42
+ // const filterBookingEntities = bookingsEntities.filter(
43
+ // (bookingEntity) => bookingEntity.bookingDetailsId === bookingDetailsId,
44
+ // );
45
+ // response[bookingDetailsId].bookings = BookingsEntity.toMap(
46
+ // filterBookingEntities,
47
+ // );
48
+ // });
49
+ // return response;
50
+ // }
51
+ BookingDetailsModel.prototype.assignCharges = function (chargeModel) {
52
+ this.discountAmount = chargeModel.getDiscountAmount();
53
+ Object.assign(this, chargeModel);
54
+ };
55
+ BookingDetailsModel.toMap = function (bookingDetailsEntities, bookingsEntities) {
56
+ var response = {};
57
+ bookingDetailsEntities.forEach(function (bookingsDetailsEntity) {
58
+ var bookingDetailsId = bookingsDetailsEntity.id;
59
+ if (!response[bookingDetailsId]) {
60
+ response[bookingDetailsId] = __assign(__assign({}, bookingsDetailsEntity), { bookings: {} });
61
+ }
62
+ var filterBookingEntities = bookingsEntities.filter(function (bookingEntity) { return bookingEntity.bookingDetailsId === bookingDetailsId; });
63
+ response[bookingDetailsId].bookings = booking_entity_model_1.BookingEntityModel.toMap(filterBookingEntities);
64
+ });
65
+ return response;
66
+ };
67
+ return BookingDetailsModel;
68
+ }());
69
+ exports.BookingDetailsModel = BookingDetailsModel;
@@ -0,0 +1,21 @@
1
+ import { IBookingsEntityModel } from "../interface/booking-entity-model.interface";
2
+ import { IBookingsEntity } from "../types/entity/bookings-entity.type";
3
+ import { BookingCode } from "./booking-code-model";
4
+ export declare class BookingEntityModel implements IBookingsEntityModel {
5
+ bookingDetailsId: number;
6
+ code: string;
7
+ cost: string;
8
+ createdOn: Date;
9
+ updatedOn: Date;
10
+ createdBy: number;
11
+ updatedBy: number;
12
+ constructor(data: IBookingsEntity);
13
+ getTotalCost(): number;
14
+ getBookingTimeInMinutes(): number;
15
+ isTimeExtended(newBookingEntities: IBookingsEntity[]): boolean;
16
+ getBookingCode(): BookingCode;
17
+ static toMap(bookingEntities: IBookingsEntity[]): {
18
+ [key: string]: string;
19
+ };
20
+ static findByCodeAndTurfId(bookingEntities: IBookingsEntity[], turfId: number, bookingCode: string): IBookingsEntity | undefined;
21
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BookingEntityModel = void 0;
4
+ var booking_code_model_1 = require("./booking-code-model");
5
+ var BookingEntityModel = /** @class */ (function () {
6
+ function BookingEntityModel(data) {
7
+ Object.assign(this, data);
8
+ }
9
+ BookingEntityModel.prototype.getTotalCost = function () {
10
+ return this.cost
11
+ .split(",")
12
+ .map(Number)
13
+ .reduce(function (accumulator, currentValue) { return accumulator + currentValue; }, 0);
14
+ };
15
+ BookingEntityModel.prototype.getBookingTimeInMinutes = function () {
16
+ var bookingCode = new booking_code_model_1.BookingCode(this.code);
17
+ return bookingCode.getBookingTimeInMinutes();
18
+ };
19
+ BookingEntityModel.prototype.isTimeExtended = function (newBookingEntities) {
20
+ var newTimeInMinutes = newBookingEntities
21
+ .map(function (bookingEntity) {
22
+ return new BookingEntityModel(bookingEntity).getBookingTimeInMinutes();
23
+ })
24
+ .reduce(function (accumulator, currentValue) { return accumulator + currentValue; }, 0);
25
+ return (newTimeInMinutes > new BookingEntityModel(this).getBookingTimeInMinutes());
26
+ };
27
+ BookingEntityModel.prototype.getBookingCode = function () {
28
+ return new booking_code_model_1.BookingCode(this.code, this.cost);
29
+ };
30
+ BookingEntityModel.toMap = function (bookingEntities) {
31
+ var response = {};
32
+ bookingEntities.forEach(function (bookingEntity) {
33
+ response[bookingEntity.code] =
34
+ response[bookingEntity.code] === undefined
35
+ ? bookingEntity.cost
36
+ : response[bookingEntity.code];
37
+ });
38
+ return response;
39
+ };
40
+ BookingEntityModel.findByCodeAndTurfId = function (bookingEntities, turfId, bookingCode) {
41
+ return bookingEntities.find(function (bookingEntity) {
42
+ return bookingEntity.code === booking_code_model_1.BookingCode.getInstance(turfId, bookingCode).code;
43
+ });
44
+ };
45
+ return BookingEntityModel;
46
+ }());
47
+ exports.BookingEntityModel = BookingEntityModel;
@@ -0,0 +1,18 @@
1
+ import { ICancellationPolicyModel } from "../interface/cancellation-policy-model.interface";
2
+ import { ICancellationPolicyEntity } from "../types/entity/cancellation-policy-entity.type";
3
+ export declare class CancellationPolicyModel implements ICancellationPolicyModel {
4
+ id: number;
5
+ turfId: number;
6
+ from: number;
7
+ to: number;
8
+ charges: string;
9
+ createdOn: Date;
10
+ updatedOn: Date;
11
+ createdBy: number;
12
+ updatedBy: number;
13
+ constructor(data: ICancellationPolicyEntity);
14
+ unitOfCharges(): string;
15
+ chargesWithoutUnit(): string;
16
+ isInEffect(hours: number): boolean;
17
+ getCancellationCharges(cost: number): number;
18
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CancellationPolicyModel = void 0;
4
+ var CancellationPolicyModel = /** @class */ (function () {
5
+ function CancellationPolicyModel(data) {
6
+ Object.assign(this, data);
7
+ }
8
+ CancellationPolicyModel.prototype.unitOfCharges = function () {
9
+ return this.charges.slice(-1);
10
+ };
11
+ CancellationPolicyModel.prototype.chargesWithoutUnit = function () {
12
+ return this.charges.slice(0, -1);
13
+ };
14
+ CancellationPolicyModel.prototype.isInEffect = function (hours) {
15
+ return this.from <= hours && hours <= this.to;
16
+ };
17
+ CancellationPolicyModel.prototype.getCancellationCharges = function (cost) {
18
+ var cancellationCharges = 0;
19
+ var cancellationChargesModel = new CancellationPolicyModel(this);
20
+ if (cancellationChargesModel.unitOfCharges() === "P") {
21
+ var percentageValue = cancellationChargesModel.chargesWithoutUnit();
22
+ cancellationCharges = (cost * Number(percentageValue)) / 100;
23
+ }
24
+ else if (cancellationChargesModel.unitOfCharges() === "U") {
25
+ var unit = cancellationChargesModel.chargesWithoutUnit();
26
+ cancellationCharges = Number(unit);
27
+ }
28
+ return cancellationCharges;
29
+ };
30
+ return CancellationPolicyModel;
31
+ }());
32
+ exports.CancellationPolicyModel = CancellationPolicyModel;
@@ -1,85 +1,9 @@
1
- export interface PricingPlan {
2
- id: number;
3
- effective_from_date: number;
4
- effective_to_date: number;
5
- base_price: number;
6
- unit: string;
7
- pitch_slab: {
8
- [key: string]: PitchSlab;
9
- };
10
- billing_cycle: {
11
- [key: string]: BillingCycle;
12
- };
13
- }
14
- export interface BillingCycle {
15
- from: number;
16
- to: number;
17
- discount: string;
18
- name: string;
19
- key: string;
20
- }
21
- export interface PitchSlab {
22
- from: number;
23
- to: number;
24
- discount: string;
25
- }
26
- export declare class PricingPlanModel implements PricingPlan {
27
- id: number;
28
- effective_from_date: number;
29
- effective_to_date: number;
30
- base_price: number;
31
- unit: string;
32
- pitch_slab: {
33
- [key: string]: PitchSlabModel;
34
- };
35
- billing_cycle: {
36
- [key: string]: BillingCycleModel;
37
- };
38
- constructor(data: PricingPlan);
39
- getPitchSlab(pitchCount: number): PitchSlabModel;
40
- getBillingCycle(billingCycleKey: string): BillingCycleModel;
41
- getMonth(billingCycleKey: string): number;
42
- getNoOfSubscriptionDays(billingCycleKey: string): number;
43
- getBillingCycleKeys(): string[];
44
- validateBillingCycleKey(billingCycleKey: string): void;
45
- getBillingCycleByDay(numberOfDay: number): BillingCycleModel | undefined;
46
- }
47
- export declare class SubscribedPricingPlanModel extends PricingPlanModel {
48
- pitchCount: number;
49
- billingCycle: string;
50
- selectedPitchSlab: PitchSlabModel;
51
- selectedBillingCycle: BillingCycleModel;
52
- selectedPitchSlabBasePrice: number;
53
- hourInMonth: number;
54
- months: number | undefined;
55
- constructor(data: PricingPlan, pitchCount: number, billingCycle: string);
56
- getMonths(): number;
57
- getBasePrice(): number;
58
- getGrossAmount(): number;
59
- getNetAmount(): number;
60
- getBillingDiscount(): number;
61
- getMonthDifference(that: SubscribedPricingPlanModel): number;
62
- getGrossAmountByMonth(month: number): number;
63
- getNetAmountByMonth(month: number): number;
64
- getGrossAmountByPitchDays(pitchCount: number, days: number): number;
65
- getNetAmountByPitchDays(pitchCount: number, days: number): number;
66
- getGrossAmountByPitchDaysBasePrice(basePrice: number, pitchCount: number, days: number): number;
67
- getNetAmountByPitchDaysBasePrice(basePrice: number, pitchCount: number, days: number): number;
68
- }
69
- export declare class BillingCycleModel implements BillingCycle {
70
- from: number;
71
- to: number;
72
- discount: string;
73
- name: string;
74
- key: string;
75
- constructor(data: BillingCycle);
76
- getDiscount(): number;
77
- }
78
- export declare class PitchSlabModel implements PitchSlab {
1
+ import { IPitchSlab } from "../interface/pitch-slab.interface";
2
+ export declare class PitchSlabModel implements IPitchSlab {
79
3
  from: number;
80
4
  to: number;
81
5
  discount: string;
82
- constructor(data: PitchSlab);
6
+ constructor(data: IPitchSlab);
83
7
  getDiscount(): number;
84
8
  getBasePrice(basePrice: number): number;
85
9
  }
@@ -1,169 +1,6 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.PitchSlabModel = exports.BillingCycleModel = exports.SubscribedPricingPlanModel = exports.PricingPlanModel = void 0;
19
- var common_1 = require("@nestjs/common");
20
- var PricingPlanModel = /** @class */ (function () {
21
- function PricingPlanModel(data) {
22
- var _this = this;
23
- this.id = data.id;
24
- this.effective_from_date = data.effective_from_date;
25
- this.effective_to_date = data.effective_to_date;
26
- this.base_price = data.base_price;
27
- this.unit = data.unit;
28
- this.pitch_slab = {};
29
- this.billing_cycle = {};
30
- Object.keys(data.pitch_slab).forEach(function (key) {
31
- _this.pitch_slab[key] = new PitchSlabModel(data.pitch_slab[key]);
32
- });
33
- Object.keys(data.billing_cycle).forEach(function (key) {
34
- _this.billing_cycle[key] = new BillingCycleModel(data.billing_cycle[key]);
35
- });
36
- }
37
- PricingPlanModel.prototype.getPitchSlab = function (pitchCount) {
38
- var pitchRangesMap = this.pitch_slab;
39
- var pitchRanges = Object.values(pitchRangesMap);
40
- var selectedPitchSlab = pitchRanges.filter(function (pitchRange) {
41
- return pitchRange.from <= pitchCount && pitchCount <= pitchRange.to;
42
- })[0];
43
- return selectedPitchSlab;
44
- };
45
- PricingPlanModel.prototype.getBillingCycle = function (billingCycleKey) {
46
- var billingCycleMap = this.billing_cycle;
47
- var billingCycles = Object.values(billingCycleMap);
48
- var selectedBillingCycle = billingCycles.filter(function (_a) {
49
- var key = _a.key;
50
- return key === billingCycleKey;
51
- })[0];
52
- return selectedBillingCycle;
53
- };
54
- PricingPlanModel.prototype.getMonth = function (billingCycleKey) {
55
- return this.getBillingCycle(billingCycleKey).to;
56
- };
57
- PricingPlanModel.prototype.getNoOfSubscriptionDays = function (billingCycleKey) {
58
- return this.getBillingCycle(billingCycleKey).to * 30 - 1;
59
- };
60
- PricingPlanModel.prototype.getBillingCycleKeys = function () {
61
- return Object.values(this.billing_cycle).map(function (obj) { return obj.key; });
62
- };
63
- PricingPlanModel.prototype.validateBillingCycleKey = function (billingCycleKey) {
64
- if (!this.getBillingCycleKeys().includes(billingCycleKey)) {
65
- throw new common_1.BadRequestException({
66
- key: "type",
67
- message: ["pricing plan type:'".concat(billingCycleKey, "' is not found")],
68
- });
69
- }
70
- };
71
- PricingPlanModel.prototype.getBillingCycleByDay = function (numberOfDay) {
72
- return Object.values(this.billing_cycle).find(function (obj) {
73
- if (numberOfDay <= obj.to * 30) {
74
- return obj;
75
- }
76
- });
77
- };
78
- return PricingPlanModel;
79
- }());
80
- exports.PricingPlanModel = PricingPlanModel;
81
- var SubscribedPricingPlanModel = /** @class */ (function (_super) {
82
- __extends(SubscribedPricingPlanModel, _super);
83
- function SubscribedPricingPlanModel(data, pitchCount, billingCycle) {
84
- var _this = _super.call(this, data) || this;
85
- _this.hourInMonth = 24 * 30;
86
- _this.pitchCount = pitchCount;
87
- _this.billingCycle = billingCycle;
88
- _this.selectedPitchSlab = _this.getPitchSlab(_this.pitchCount);
89
- _this.selectedBillingCycle = _this.getBillingCycle(_this.billingCycle);
90
- _this.selectedPitchSlabBasePrice = _this.selectedPitchSlab.getBasePrice(_this.base_price);
91
- return _this;
92
- }
93
- SubscribedPricingPlanModel.prototype.getMonths = function () {
94
- return this.selectedBillingCycle.to;
95
- };
96
- SubscribedPricingPlanModel.prototype.getBasePrice = function () {
97
- return this.selectedPitchSlabBasePrice;
98
- };
99
- SubscribedPricingPlanModel.prototype.getGrossAmount = function () {
100
- return Math.round(this.selectedPitchSlabBasePrice *
101
- this.pitchCount *
102
- this.hourInMonth *
103
- this.selectedBillingCycle.to);
104
- };
105
- SubscribedPricingPlanModel.prototype.getNetAmount = function () {
106
- return Math.round(this.selectedPitchSlabBasePrice *
107
- (1 - this.getBillingDiscount() / 100) *
108
- this.pitchCount *
109
- this.hourInMonth *
110
- this.selectedBillingCycle.to);
111
- };
112
- SubscribedPricingPlanModel.prototype.getBillingDiscount = function () {
113
- return this.selectedBillingCycle.getDiscount();
114
- };
115
- SubscribedPricingPlanModel.prototype.getMonthDifference = function (that) {
116
- return that.getMonths() - this.getMonths();
117
- };
118
- SubscribedPricingPlanModel.prototype.getGrossAmountByMonth = function (month) {
119
- return Math.round(this.selectedPitchSlabBasePrice *
120
- this.pitchCount *
121
- this.hourInMonth *
122
- month);
123
- };
124
- SubscribedPricingPlanModel.prototype.getNetAmountByMonth = function (month) {
125
- return Math.round(this.selectedPitchSlabBasePrice *
126
- (1 - this.getBillingDiscount() / 100) *
127
- this.pitchCount *
128
- this.hourInMonth *
129
- month);
130
- };
131
- SubscribedPricingPlanModel.prototype.getGrossAmountByPitchDays = function (pitchCount, days) {
132
- return Math.round(this.selectedPitchSlabBasePrice * pitchCount * days * 24);
133
- };
134
- SubscribedPricingPlanModel.prototype.getNetAmountByPitchDays = function (pitchCount, days) {
135
- return Math.round(this.selectedPitchSlabBasePrice *
136
- (1 - this.getBillingDiscount() / 100) *
137
- pitchCount *
138
- days *
139
- 24);
140
- };
141
- SubscribedPricingPlanModel.prototype.getGrossAmountByPitchDaysBasePrice = function (basePrice, pitchCount, days) {
142
- return Math.round(basePrice * pitchCount * days * 24);
143
- };
144
- SubscribedPricingPlanModel.prototype.getNetAmountByPitchDaysBasePrice = function (basePrice, pitchCount, days) {
145
- return Math.round(basePrice * (1 - this.getBillingDiscount() / 100) * pitchCount * days * 24);
146
- };
147
- return SubscribedPricingPlanModel;
148
- }(PricingPlanModel));
149
- exports.SubscribedPricingPlanModel = SubscribedPricingPlanModel;
150
- var BillingCycleModel = /** @class */ (function () {
151
- function BillingCycleModel(data) {
152
- this.from = data.from;
153
- this.to = data.to;
154
- this.discount = data.discount;
155
- this.name = data.name;
156
- this.key = data.key;
157
- }
158
- BillingCycleModel.prototype.getDiscount = function () {
159
- if (this.discount.indexOf("P") > -1) {
160
- return parseFloat(this.discount.replace("P", ""));
161
- }
162
- return 0;
163
- };
164
- return BillingCycleModel;
165
- }());
166
- exports.BillingCycleModel = BillingCycleModel;
3
+ exports.PitchSlabModel = void 0;
167
4
  var PitchSlabModel = /** @class */ (function () {
168
5
  function PitchSlabModel(data) {
169
6
  this.from = data.from;
@@ -0,0 +1,11 @@
1
+ import { IPriceModel } from "../interface/price-model.interface";
2
+ import { IPriceEntity } from "../types/entity/price-entity.type";
3
+ export declare class PriceModel implements IPriceModel {
4
+ id: string;
5
+ price: number;
6
+ createdOn: Date;
7
+ updatedOn: Date;
8
+ createdBy: number;
9
+ updatedBy: number;
10
+ static sortByCode(priceEntities: IPriceEntity[]): IPriceEntity[];
11
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PriceModel = void 0;
4
+ var PriceModel = /** @class */ (function () {
5
+ function PriceModel() {
6
+ }
7
+ PriceModel.sortByCode = function (priceEntities) {
8
+ priceEntities = priceEntities.sort(function (a, b) {
9
+ return a.id < b.id ? -1 : a.id > b.id ? 1 : 0;
10
+ });
11
+ return priceEntities;
12
+ };
13
+ return PriceModel;
14
+ }());
15
+ exports.PriceModel = PriceModel;