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.
- package/build/interface/booking-details-model.interface.d.ts +5 -0
- package/build/interface/booking-details-model.interface.js +2 -0
- package/build/interface/booking-entity-model.interface.d.ts +8 -0
- package/build/interface/booking-entity-model.interface.js +2 -0
- package/build/interface/cancellation-policy-model.interface.d.ts +4 -0
- package/build/interface/cancellation-policy-model.interface.js +2 -0
- package/build/interface/price-model.interface.d.ts +3 -0
- package/build/interface/price-model.interface.js +2 -0
- package/build/interface/pricing-plan-entity-model.interface.d.ts +13 -0
- package/build/interface/pricing-plan-entity-model.interface.js +2 -0
- package/build/interface/pricing-plan.interface.d.ts +15 -0
- package/build/interface/pricing-plan.interface.js +2 -0
- package/build/interface/turf-model.interface.d.ts +7 -0
- package/build/interface/turf-model.interface.js +2 -0
- package/build/interface/user-model.interface.d.ts +3 -0
- package/build/interface/user-model.interface.js +2 -0
- package/build/models/billing-cycle-model.d.ts +10 -0
- package/build/models/billing-cycle-model.js +20 -0
- package/build/models/booking-details-model.d.ts +39 -0
- package/build/models/booking-details-model.js +69 -0
- package/build/models/booking-entity-model.d.ts +21 -0
- package/build/models/booking-entity-model.js +47 -0
- package/build/models/cancellation-policy-model.d.ts +18 -0
- package/build/models/cancellation-policy-model.js +32 -0
- package/build/models/pitch-slab-model.d.ts +3 -79
- package/build/models/pitch-slab-model.js +1 -164
- package/build/models/price-model.d.ts +11 -0
- package/build/models/price-model.js +15 -0
- package/build/models/pricing-plan-entity-model.d.ts +47 -0
- package/build/models/pricing-plan-entity-model.js +128 -0
- package/build/models/pricing-plan-model.d.ts +24 -0
- package/build/models/pricing-plan-model.js +67 -0
- package/build/models/subscribed-pricing-plan-model.d.ts +26 -0
- package/build/models/subscribed-pricing-plan-model.js +88 -0
- package/build/models/subscription-model.d.ts +30 -0
- package/build/models/subscription-model.js +51 -0
- package/build/models/turf-model.d.ts +33 -0
- package/build/models/turf-model.js +88 -0
- package/build/models/user-model.d.ts +31 -0
- package/build/models/user-model.js +19 -0
- package/build/types/entity/bank-details-entity.type.d.ts +2 -2
- package/build/types/entity/booking-cancellation-entity.type.d.ts +2 -2
- package/build/types/entity/booking-customer-entity.type.d.ts +2 -2
- package/build/types/entity/booking-details-entity.type.d.ts +2 -41
- package/build/types/entity/booking-details-entity.type.js +0 -67
- package/build/types/entity/bookings-entity.type.d.ts +2 -27
- package/build/types/entity/bookings-entity.type.js +0 -45
- package/build/types/entity/cancellation-policy-entity.type.d.ts +2 -21
- package/build/types/entity/cancellation-policy-entity.type.js +0 -30
- package/build/types/entity/coupon.entity.type.d.ts +4 -4
- package/build/types/entity/entity-audit-column.type.d.ts +2 -2
- package/build/types/entity/faqs-entity.type.d.ts +2 -2
- package/build/types/entity/organization-entity.type.d.ts +4 -4
- package/build/types/entity/pitch-entity.type.d.ts +2 -2
- package/build/types/entity/price-entity.type.d.ts +2 -13
- package/build/types/entity/price-entity.type.js +0 -13
- package/build/types/entity/pricing-plan-entity.d.ts +3 -53
- package/build/types/entity/pricing-plan-entity.js +0 -124
- package/build/types/entity/registration-entity.type.d.ts +2 -2
- package/build/types/entity/subscription-entity.type.d.ts +3 -32
- package/build/types/entity/subscription-entity.type.js +0 -49
- package/build/types/entity/subscription-pitch-mapping.type.d.ts +1 -1
- package/build/types/entity/turf-entity.type.d.ts +6 -28
- package/build/types/entity/turf-entity.type.js +0 -69
- package/build/types/entity/user-entity.type.d.ts +0 -28
- package/build/types/entity/user-entity.type.js +0 -17
- package/package.json +1 -1
|
@@ -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,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,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,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,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
|
-
|
|
2
|
-
|
|
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:
|
|
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 =
|
|
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;
|