turf-common 1.4.2-beta.5 → 1.4.2-beta.50
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/README.md +20 -20
- package/build/jest.config.js +2 -1
- package/build/src/@model.d.ts +1 -0
- package/build/src/@model.js +1 -0
- package/build/src/enums/booking-history-operation-type.enum.d.ts +4 -1
- package/build/src/enums/booking-history-operation-type.enum.js +3 -0
- package/build/src/enums/organization-status.enum.d.ts +4 -0
- package/build/src/enums/organization-status.enum.js +6 -1
- package/build/src/enums/transaction-type.enum.d.ts +2 -1
- package/build/src/enums/transaction-type.enum.js +1 -0
- package/build/src/enums/valid-coupon-type.enum.d.ts +3 -0
- package/build/src/enums/valid-coupon-type.enum.js +18 -0
- package/build/src/interface/api/booking-availablity-by-pitch.interface.d.ts +1 -0
- package/build/src/interface/api/booking-pending-payment-writeoff.interface.d.ts +10 -0
- package/build/src/interface/api/booking-pending-payment-writeoff.interface.js +2 -0
- package/build/src/interface/api/create-recurring-slot-booking.interface.d.ts +4 -1
- package/build/src/interface/api/get-availability-by-turf.interface.d.ts +1 -0
- package/build/src/interface/api/get-booking-history.interface.d.ts +1 -0
- package/build/src/interface/api/get-organization-configuration.interface.d.ts +8 -0
- package/build/src/interface/api/get-organization-configuration.interface.js +2 -0
- package/build/src/interface/api/index.d.ts +3 -0
- package/build/src/interface/api/index.js +3 -0
- package/build/src/interface/api/login-response.interface.d.ts +2 -0
- package/build/src/interface/api/one-slot-booking.interface.d.ts +2 -0
- package/build/src/interface/api/update-organization-configuration.interface.d.ts +6 -0
- package/build/src/interface/api/update-organization-configuration.interface.js +2 -0
- package/build/src/interface/api/update-recurring-booking.interface.d.ts +1 -0
- package/build/src/interface/entity/organization-entity.interface.d.ts +15 -3
- package/build/src/interface/model/booking-details-model.interface.d.ts +8 -0
- package/build/src/models/booking-code-model.d.ts +16 -2
- package/build/src/models/booking-code-model.js +84 -41
- package/build/src/models/charge-model.d.ts +2 -0
- package/build/src/models/charge-model.js +41 -11
- package/build/src/models/entity/booking-details-model.d.ts +2 -1
- package/build/src/models/entity/booking-details-model.js +19 -0
- package/build/src/models/entity/booking-entity-model.d.ts +1 -0
- package/build/src/models/entity/booking-entity-model.js +3 -0
- package/build/src/models/pitch-slab-model.d.ts +1 -0
- package/build/src/models/pitch-slab-model.js +15 -0
- package/build/src/models/time-slot-model.d.ts +1 -0
- package/build/src/models/time-slot-model.js +3 -0
- package/build/src/models/turf-availability-model.d.ts +18 -3
- package/build/src/models/turf-availability-model.js +60 -3
- package/build/src/models/weekday-time-slot-model.d.ts +12 -0
- package/build/src/models/weekday-time-slot-model.js +30 -0
- package/build/src/utils/constant.d.ts +3 -0
- package/build/src/utils/constant.js +4 -1
- package/build/src/utils/date-util.d.ts +8 -1
- package/build/src/utils/date-util.js +22 -3
- package/build/tests/booking-code/method.spec.d.ts +1 -0
- package/build/tests/booking-code/method.spec.js +11 -0
- package/build/tests/unit/charges/discount-relative/basic.spec.d.ts +1 -0
- package/build/tests/unit/charges/discount-relative/basic.spec.js +209 -0
- package/build/tests/unit/charges/extension/basic.amount-fully-paid.spec.d.ts +1 -0
- package/build/tests/unit/charges/extension/basic.amount-fully-paid.spec.js +208 -0
- package/build/tests/unit/charges/extension/basic.spec.d.ts +1 -0
- package/build/tests/unit/charges/extension/basic.spec.js +215 -0
- package/build/tests/unit/pricing-plan/basic-scenario.spec.js +1 -1
- package/package.json +43 -43
package/README.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
## 1 npm init -y
|
|
2
|
-
|
|
3
|
-
## 2 npm login
|
|
4
|
-
|
|
5
|
-
## 3 npm version patch
|
|
6
|
-
|
|
7
|
-
# //it increase version
|
|
8
|
-
|
|
9
|
-
## 3 npm publish --access public
|
|
10
|
-
|
|
11
|
-
# //npm publish by default --access public
|
|
12
|
-
|
|
13
|
-
## 4 npm run version:deploy
|
|
14
|
-
|
|
15
|
-
### deploy version
|
|
16
|
-
|
|
17
|
-
## Client side
|
|
18
|
-
|
|
19
|
-
update package command <br />
|
|
20
|
-
npm update turf-comman
|
|
1
|
+
## 1 npm init -y
|
|
2
|
+
|
|
3
|
+
## 2 npm login
|
|
4
|
+
|
|
5
|
+
## 3 npm version patch
|
|
6
|
+
|
|
7
|
+
# //it increase version
|
|
8
|
+
|
|
9
|
+
## 3 npm publish --access public
|
|
10
|
+
|
|
11
|
+
# //npm publish by default --access public
|
|
12
|
+
|
|
13
|
+
## 4 npm run version:deploy
|
|
14
|
+
|
|
15
|
+
### deploy version
|
|
16
|
+
|
|
17
|
+
## Client side
|
|
18
|
+
|
|
19
|
+
update package command <br />
|
|
20
|
+
npm update turf-comman
|
package/build/jest.config.js
CHANGED
package/build/src/@model.d.ts
CHANGED
package/build/src/@model.js
CHANGED
|
@@ -23,3 +23,4 @@ __exportStar(require("./models/pricing-plan-model"), exports);
|
|
|
23
23
|
__exportStar(require("./models/subscribed-pricing-plan-model"), exports);
|
|
24
24
|
__exportStar(require("./models/entity"), exports);
|
|
25
25
|
__exportStar(require("./models/turf-availability-model"), exports);
|
|
26
|
+
__exportStar(require("./models/weekday-time-slot-model"), exports);
|
|
@@ -7,6 +7,9 @@ export declare enum BookingHistoryOperationType {
|
|
|
7
7
|
REFUND = "refund",
|
|
8
8
|
PAYMENT = "payment",
|
|
9
9
|
MERGED = "merged",
|
|
10
|
-
DELETE_SLOT_EVENT = "delete_slot_event"
|
|
10
|
+
DELETE_SLOT_EVENT = "delete_slot_event",
|
|
11
|
+
EXTENSION = "extension",
|
|
12
|
+
PAYMENT_WRITEOFF = "payment_writeoff",
|
|
13
|
+
EXTENSION_MERGED = "extension_merged"
|
|
11
14
|
}
|
|
12
15
|
export declare const OPERATION_TYPES: BookingHistoryOperationType[];
|
|
@@ -12,6 +12,9 @@ var BookingHistoryOperationType;
|
|
|
12
12
|
BookingHistoryOperationType["PAYMENT"] = "payment";
|
|
13
13
|
BookingHistoryOperationType["MERGED"] = "merged";
|
|
14
14
|
BookingHistoryOperationType["DELETE_SLOT_EVENT"] = "delete_slot_event";
|
|
15
|
+
BookingHistoryOperationType["EXTENSION"] = "extension";
|
|
16
|
+
BookingHistoryOperationType["PAYMENT_WRITEOFF"] = "payment_writeoff";
|
|
17
|
+
BookingHistoryOperationType["EXTENSION_MERGED"] = "extension_merged";
|
|
15
18
|
})(BookingHistoryOperationType || (exports.BookingHistoryOperationType = BookingHistoryOperationType = {}));
|
|
16
19
|
exports.OPERATION_TYPES = [
|
|
17
20
|
BookingHistoryOperationType.DELETE,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OrganizationStatus = void 0;
|
|
3
|
+
exports.AllowManualBookingDiscount = exports.OrganizationStatus = void 0;
|
|
4
4
|
var OrganizationStatus;
|
|
5
5
|
(function (OrganizationStatus) {
|
|
6
6
|
OrganizationStatus["REGISTRATION"] = "registration";
|
|
@@ -29,3 +29,8 @@ var OrganizationStatus;
|
|
|
29
29
|
}
|
|
30
30
|
OrganizationStatus.allowPermissionOwner = allowPermissionOwner;
|
|
31
31
|
})(OrganizationStatus || (exports.OrganizationStatus = OrganizationStatus = {}));
|
|
32
|
+
var AllowManualBookingDiscount;
|
|
33
|
+
(function (AllowManualBookingDiscount) {
|
|
34
|
+
AllowManualBookingDiscount["YES"] = "yes";
|
|
35
|
+
AllowManualBookingDiscount["NO"] = "no";
|
|
36
|
+
})(AllowManualBookingDiscount || (exports.AllowManualBookingDiscount = AllowManualBookingDiscount = {}));
|
|
@@ -3,5 +3,6 @@ export declare enum BookingPaymentTransactionType {
|
|
|
3
3
|
CUSTOMER_REFUND = "customer_refund",
|
|
4
4
|
CUSTOMER_REFUND_INPROCESS = "customer_refund_inprocess",
|
|
5
5
|
CUSTOMER_REFUND_REJECT = "customer_refund_reject",
|
|
6
|
-
CUSTOMER_CANCELLATION = "customer_cancellation"
|
|
6
|
+
CUSTOMER_CANCELLATION = "customer_cancellation",
|
|
7
|
+
PAYMENT_WRITEOFF = "payment_writeoff"
|
|
7
8
|
}
|
|
@@ -8,4 +8,5 @@ var BookingPaymentTransactionType;
|
|
|
8
8
|
BookingPaymentTransactionType["CUSTOMER_REFUND_INPROCESS"] = "customer_refund_inprocess";
|
|
9
9
|
BookingPaymentTransactionType["CUSTOMER_REFUND_REJECT"] = "customer_refund_reject";
|
|
10
10
|
BookingPaymentTransactionType["CUSTOMER_CANCELLATION"] = "customer_cancellation";
|
|
11
|
+
BookingPaymentTransactionType["PAYMENT_WRITEOFF"] = "payment_writeoff";
|
|
11
12
|
})(BookingPaymentTransactionType || (exports.BookingPaymentTransactionType = BookingPaymentTransactionType = {}));
|
|
@@ -8,3 +8,21 @@ var ValidCouponType;
|
|
|
8
8
|
ValidCouponType["PER_HOUR_UNIT"] = "per hour unit";
|
|
9
9
|
ValidCouponType["PER_HOUR_PERCENTAGE"] = "per hour percentage";
|
|
10
10
|
})(ValidCouponType || (exports.ValidCouponType = ValidCouponType = {}));
|
|
11
|
+
// Create namespace for the enum and add method UILabel to get the label of the enum value.
|
|
12
|
+
(function (ValidCouponType) {
|
|
13
|
+
function UILabel(value) {
|
|
14
|
+
switch (value) {
|
|
15
|
+
case ValidCouponType.PERCENTAGE:
|
|
16
|
+
return "Percentage";
|
|
17
|
+
case ValidCouponType.UNIT:
|
|
18
|
+
return "Price";
|
|
19
|
+
case ValidCouponType.PER_HOUR_UNIT:
|
|
20
|
+
return "Price Hour Unit";
|
|
21
|
+
case ValidCouponType.PER_HOUR_PERCENTAGE:
|
|
22
|
+
return "Per Hour Percentage";
|
|
23
|
+
default:
|
|
24
|
+
return "";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
ValidCouponType.UILabel = UILabel;
|
|
28
|
+
})(ValidCouponType || (exports.ValidCouponType = ValidCouponType = {}));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface BookingPendingPaymentWriteoffRequest {
|
|
2
|
+
bookingDetailIds: number[];
|
|
3
|
+
totalWriteoffAmount: number;
|
|
4
|
+
remark: string;
|
|
5
|
+
}
|
|
6
|
+
export interface BookingPendingPaymentWriteoffResponse {
|
|
7
|
+
bookingDetailIds: number[];
|
|
8
|
+
totalWriteoffAmount: number;
|
|
9
|
+
remark: string;
|
|
10
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PaymentMode, BookingDetailsStatus } from "../../@enum";
|
|
2
|
-
import { IBookingDetailsEntity, IGetAvailabilityByTurf, IModifyEntity } from "../../@type";
|
|
2
|
+
import { IBookingDetailsEntity, IGetAvailabilityByTurf, IGetAvailabilityByTurfRequest, IModifyEntity } from "../../@type";
|
|
3
3
|
export interface ICreateRecurringSlotBookingResponse extends IModifyEntity<IBookingDetailsEntity> {
|
|
4
4
|
}
|
|
5
5
|
export interface ICreateRecurringSlotsBookingDetailsRequest {
|
|
@@ -18,7 +18,9 @@ export interface ICreateRecurringSlotsBookingDetailsRequest {
|
|
|
18
18
|
slot: IRecurringSlot[];
|
|
19
19
|
turf_slot?: {
|
|
20
20
|
availability_details: IGetAvailabilityByTurf;
|
|
21
|
+
apiRequestModel?: IGetAvailabilityByTurfRequest;
|
|
21
22
|
};
|
|
23
|
+
deleteIntermediateBookings: boolean;
|
|
22
24
|
}
|
|
23
25
|
export declare class IRecurringSlot {
|
|
24
26
|
fromDate: number;
|
|
@@ -26,4 +28,5 @@ export declare class IRecurringSlot {
|
|
|
26
28
|
weekdays: number[];
|
|
27
29
|
from: string;
|
|
28
30
|
to: string;
|
|
31
|
+
pitchNo: number;
|
|
29
32
|
}
|
|
@@ -76,3 +76,6 @@ export * from "../api/update-sports-interface";
|
|
|
76
76
|
export * from "./get-availability-by-turf.interface";
|
|
77
77
|
export * from "./get-tournament.interface";
|
|
78
78
|
export * from "./get-booking-history.interface";
|
|
79
|
+
export * from "./booking-pending-payment-writeoff.interface";
|
|
80
|
+
export * from "./get-organization-configuration.interface";
|
|
81
|
+
export * from "./update-organization-configuration.interface";
|
|
@@ -94,3 +94,6 @@ __exportStar(require("../api/update-sports-interface"), exports);
|
|
|
94
94
|
__exportStar(require("./get-availability-by-turf.interface"), exports);
|
|
95
95
|
__exportStar(require("./get-tournament.interface"), exports);
|
|
96
96
|
__exportStar(require("./get-booking-history.interface"), exports);
|
|
97
|
+
__exportStar(require("./booking-pending-payment-writeoff.interface"), exports);
|
|
98
|
+
__exportStar(require("./get-organization-configuration.interface"), exports);
|
|
99
|
+
__exportStar(require("./update-organization-configuration.interface"), exports);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IOrganizationConfig } from "../entity";
|
|
1
2
|
export interface ILoginResponse {
|
|
2
3
|
UIMessage: string;
|
|
3
4
|
tokenType: string;
|
|
@@ -15,6 +16,7 @@ export interface ILoginResponse {
|
|
|
15
16
|
organizationId: number;
|
|
16
17
|
subscriptionStatus: string | null;
|
|
17
18
|
contact: string;
|
|
19
|
+
orgConfig: IOrganizationConfig;
|
|
18
20
|
}
|
|
19
21
|
export interface ILoginRequest {
|
|
20
22
|
username: string;
|
|
@@ -12,6 +12,7 @@ export interface ICreateOneSlotBookingDetailsRequest {
|
|
|
12
12
|
discountedCost: number;
|
|
13
13
|
amountPaid: number;
|
|
14
14
|
pitchId: number;
|
|
15
|
+
pitchIds?: number[];
|
|
15
16
|
status: BookingDetailsStatus;
|
|
16
17
|
sport: string;
|
|
17
18
|
remarks?: string | null;
|
|
@@ -21,4 +22,5 @@ export interface ICreateOneSlot {
|
|
|
21
22
|
date: number;
|
|
22
23
|
from: string;
|
|
23
24
|
to: string;
|
|
25
|
+
pitchNo: number;
|
|
24
26
|
}
|
|
@@ -34,6 +34,7 @@ export interface IUpdateRecurringBookingResponse extends IModifyEntity<IBookingD
|
|
|
34
34
|
discountPolicy?: string;
|
|
35
35
|
delete_slot?: IDeleteBookingByCodesDto;
|
|
36
36
|
update_slot?: IUpdateBookingByCodesDto;
|
|
37
|
+
extension_booking_codes?: string[];
|
|
37
38
|
}
|
|
38
39
|
export interface IUpdateRecurringSlotBookingDetailsRequest {
|
|
39
40
|
customerName?: string;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { OrganizationType } from "../../@enum";
|
|
2
|
-
import { OrganizationStatus } from "../../enums/organization-status.enum";
|
|
1
|
+
import { ModificationDiscountPolicy, OrganizationType } from "../../@enum";
|
|
2
|
+
import { AllowManualBookingDiscount, OrganizationStatus } from "../../enums/organization-status.enum";
|
|
3
3
|
import { ICouponEntity } from "./coupon.entity.interface";
|
|
4
4
|
import { IEntityAuditColumn } from "./entity-audit-column.interface";
|
|
5
5
|
import { ITurfEntity } from "./turf-entity.interface";
|
|
6
|
-
export interface
|
|
6
|
+
export interface IOrganizationConfig {
|
|
7
|
+
allowManualBookingDiscount: AllowManualBookingDiscount;
|
|
8
|
+
bookingCreationDelay: number;
|
|
9
|
+
bookingModificationDelay: number;
|
|
10
|
+
bookingCancellationDelay: number;
|
|
11
|
+
modificationDiscountPolicy: ModificationDiscountPolicy;
|
|
12
|
+
}
|
|
13
|
+
export interface IOrganizationEntity extends IEntityAuditColumn, IOrganizationEntityRel, IOrganizationConfig {
|
|
7
14
|
id: number;
|
|
8
15
|
name: string;
|
|
9
16
|
email: string | null;
|
|
@@ -17,6 +24,11 @@ export interface IOrganizationEntity extends IEntityAuditColumn, IOrganizationEn
|
|
|
17
24
|
deed_file_path: string | null;
|
|
18
25
|
status: OrganizationStatus;
|
|
19
26
|
registrationId: number;
|
|
27
|
+
allowManualBookingDiscount: AllowManualBookingDiscount;
|
|
28
|
+
bookingCreationDelay: number;
|
|
29
|
+
bookingModificationDelay: number;
|
|
30
|
+
bookingCancellationDelay: number;
|
|
31
|
+
modificationDiscountPolicy: ModificationDiscountPolicy;
|
|
20
32
|
}
|
|
21
33
|
export interface IOrganizationEntityRel {
|
|
22
34
|
turfs: ITurfEntity[];
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
+
import { WeekdayTimeSlot } from "../../@model";
|
|
1
2
|
import { ChargesModel } from "../../models/charge-model";
|
|
2
3
|
import { IBookingDetailsEntity } from "../entity/booking-details-entity.interface";
|
|
4
|
+
export interface IEventBookingDetails {
|
|
5
|
+
startDateCode: number;
|
|
6
|
+
endDateCode: number;
|
|
7
|
+
weekdaySlots: WeekdayTimeSlot[];
|
|
8
|
+
pitchIds: number[];
|
|
9
|
+
}
|
|
3
10
|
export interface IBookingDetailsModel extends IBookingDetailsEntity {
|
|
4
11
|
assignCharges(chargeModel: ChargesModel): void;
|
|
12
|
+
getEventDetails(): IEventBookingDetails;
|
|
5
13
|
}
|
|
@@ -20,7 +20,7 @@ export declare class BookingCode {
|
|
|
20
20
|
getHalfHourTimeCodes(): string[];
|
|
21
21
|
/**
|
|
22
22
|
*
|
|
23
|
-
* @returns
|
|
23
|
+
* @returns ['00000030','00300100','01000130']: string[] - List of half hour time slot codes between start time & end time inclusive
|
|
24
24
|
* @example fromTime: 0000; toTime: 0130
|
|
25
25
|
* // returns ['00000030','00300100','01000130']
|
|
26
26
|
*/
|
|
@@ -30,7 +30,18 @@ export declare class BookingCode {
|
|
|
30
30
|
getWeekday(): number;
|
|
31
31
|
getMonthCode(): string;
|
|
32
32
|
getDateWithFromTimeCode(): string;
|
|
33
|
+
getDateWithToTimeCode(): string;
|
|
33
34
|
getCodeWithoutTurfCode(): string;
|
|
35
|
+
getPriceByPriceEntities(priceEntities?: {
|
|
36
|
+
[date: string]: {
|
|
37
|
+
[time: string]: number;
|
|
38
|
+
};
|
|
39
|
+
}): number;
|
|
40
|
+
getToDate(): Date;
|
|
41
|
+
isAcrossDate(): boolean;
|
|
42
|
+
isModificationAllowed(delayInMinutes?: number): boolean;
|
|
43
|
+
isDeletionAllowed(delayInMinutes?: number): boolean;
|
|
44
|
+
isCreationAllowed(delayInMinutes?: number): boolean;
|
|
34
45
|
static sortByCode(bookingCodes: BookingCode[]): void;
|
|
35
46
|
static getOneSlotBookingCode(turfId: string, bookingDate: string, fhfm: string, thtm: string, pitchCode: string): string;
|
|
36
47
|
static getDiscountedCost(couponCode: string, totalCost: number, validationApply?: boolean, totalBookingHours?: number): number;
|
|
@@ -40,12 +51,13 @@ export declare class BookingCode {
|
|
|
40
51
|
static getWeekday(dateCode: number): number;
|
|
41
52
|
static convertToDate(str: string): Date;
|
|
42
53
|
static previousDateChecker(fromDate: number, index: number, errorKey?: string): void;
|
|
43
|
-
static previousTimeChecker(fromTime: string, fromDate: number, index: number): void;
|
|
54
|
+
static previousTimeChecker(fromTime: string, fromDate: number, index: number, bookingDelayInMinutes?: number, date?: Date): void;
|
|
44
55
|
static getDateCodesByWeek(fromDate: number, toDate: number, selectedWeekday: number): string[];
|
|
45
56
|
static getDatesByWeek(fromDate: number, toDate: number, selectedWeekday: number): Date[];
|
|
46
57
|
static isValidTimeRange(timeSlot: string): boolean;
|
|
47
58
|
static dateFormat(dates: Array<Date>): Array<string>;
|
|
48
59
|
static getDateCode(date: Date): string;
|
|
60
|
+
static getMonthCode(date: Date): number;
|
|
49
61
|
/**
|
|
50
62
|
* Returns list of month codes (YYMM) in the Date range inclusive
|
|
51
63
|
* @param {Date} from - Start Date
|
|
@@ -136,4 +148,6 @@ export declare class BookingCode {
|
|
|
136
148
|
* Additionally, the pitch number and turf ID must match between the two codes.
|
|
137
149
|
*/
|
|
138
150
|
isAdjacentBookingCode(nextBookingCode: BookingCode): boolean;
|
|
151
|
+
static getInstanceByComponents(turfId: number, pitchCode: number, dateCode: number, fromTimeCode: string, toTimeCode: string, priceCsv: string): BookingCode;
|
|
152
|
+
isTimeSlotContinuous(that: BookingCode): boolean;
|
|
139
153
|
}
|
|
@@ -1,15 +1,4 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.BookingCode = void 0;
|
|
15
4
|
var time_slot_model_1 = require("./time-slot-model");
|
|
@@ -60,7 +49,7 @@ var BookingCode = /** @class */ (function () {
|
|
|
60
49
|
};
|
|
61
50
|
/**
|
|
62
51
|
*
|
|
63
|
-
* @returns
|
|
52
|
+
* @returns ['00000030','00300100','01000130']: string[] - List of half hour time slot codes between start time & end time inclusive
|
|
64
53
|
* @example fromTime: 0000; toTime: 0130
|
|
65
54
|
* // returns ['00000030','00300100','01000130']
|
|
66
55
|
*/
|
|
@@ -102,9 +91,54 @@ var BookingCode = /** @class */ (function () {
|
|
|
102
91
|
BookingCode.prototype.getDateWithFromTimeCode = function () {
|
|
103
92
|
return "".concat(this.dateCode).concat(this.fromTimeCode);
|
|
104
93
|
};
|
|
94
|
+
BookingCode.prototype.getDateWithToTimeCode = function () {
|
|
95
|
+
return "".concat(this.dateCode).concat(this.toTimeCode);
|
|
96
|
+
};
|
|
105
97
|
BookingCode.prototype.getCodeWithoutTurfCode = function () {
|
|
106
98
|
return "".concat(this.dateCode).concat(this.slot).concat(this.pitchCode);
|
|
107
99
|
};
|
|
100
|
+
BookingCode.prototype.getPriceByPriceEntities = function (priceEntities) {
|
|
101
|
+
var halfHourTimeRangeCodes = this.getHalfHourTimeRangeCodes();
|
|
102
|
+
var weekDay = this.getWeekday();
|
|
103
|
+
var monthCode = this.getMonthCode();
|
|
104
|
+
var price = 0;
|
|
105
|
+
for (var _i = 0, halfHourTimeRangeCodes_1 = halfHourTimeRangeCodes; _i < halfHourTimeRangeCodes_1.length; _i++) {
|
|
106
|
+
var halfHourTimeRangeCode = halfHourTimeRangeCodes_1[_i];
|
|
107
|
+
price +=
|
|
108
|
+
priceEntities[monthCode + weekDay][halfHourTimeRangeCode] < 0 ? 0 : priceEntities[monthCode + weekDay][halfHourTimeRangeCode];
|
|
109
|
+
}
|
|
110
|
+
return price;
|
|
111
|
+
};
|
|
112
|
+
BookingCode.prototype.getToDate = function () {
|
|
113
|
+
return date_util_1.dateUtilService.convertStringToDate(this.getDateWithToTimeCode(), "yyMMddHHmm");
|
|
114
|
+
};
|
|
115
|
+
BookingCode.prototype.isAcrossDate = function () {
|
|
116
|
+
return this.fromTimeCode > this.toTimeCode;
|
|
117
|
+
};
|
|
118
|
+
BookingCode.prototype.isModificationAllowed = function (delayInMinutes) {
|
|
119
|
+
if (delayInMinutes === void 0) { delayInMinutes = _utils_1.DEFAULT_BOOKING_MODIFICATION_DELAY_IN_MINUTES; }
|
|
120
|
+
var dateWithToTimeCode = this.getDateWithToTimeCode();
|
|
121
|
+
// If last four digits of dateWithToTimeCode is 2400, then replace it with 2359
|
|
122
|
+
if (dateWithToTimeCode.slice(-4) === _utils_1.END_OF_DAY_TIME_CODE) {
|
|
123
|
+
dateWithToTimeCode = dateWithToTimeCode.slice(0, -4) + "2359";
|
|
124
|
+
}
|
|
125
|
+
var toDate = date_util_1.dateUtilService.convertStringToDate(dateWithToTimeCode, "yyMMddHHmm");
|
|
126
|
+
var bookingToDateTimeWithDelay = date_util_1.dateUtilService.addMinutesTo(toDate, delayInMinutes + (this.isAcrossDate() ? 24 * 60 : 0));
|
|
127
|
+
var currentTime = date_util_1.dateUtilService.getIndianDate();
|
|
128
|
+
return bookingToDateTimeWithDelay > currentTime;
|
|
129
|
+
};
|
|
130
|
+
BookingCode.prototype.isDeletionAllowed = function (delayInMinutes) {
|
|
131
|
+
if (delayInMinutes === void 0) { delayInMinutes = _utils_1.DEFAULT_BOOKING_DELETION_DELAY_IN_MINUTES; }
|
|
132
|
+
var bookingFromDateTimeWithDelay = date_util_1.dateUtilService.addMinutesTo(date_util_1.dateUtilService.convertStringToDate(this.getDateWithFromTimeCode(), "yyMMddHHmm"), delayInMinutes);
|
|
133
|
+
var currentTime = date_util_1.dateUtilService.getIndianDate();
|
|
134
|
+
return bookingFromDateTimeWithDelay > currentTime;
|
|
135
|
+
};
|
|
136
|
+
BookingCode.prototype.isCreationAllowed = function (delayInMinutes) {
|
|
137
|
+
if (delayInMinutes === void 0) { delayInMinutes = _utils_1.DEFAULT_BOOKING_DELAY_IN_MINUTES; }
|
|
138
|
+
var bookingFromDateTimeWithDelay = date_util_1.dateUtilService.addMinutesTo(date_util_1.dateUtilService.convertStringToDate(this.getDateWithFromTimeCode(), "yyMMddHHmm"), delayInMinutes);
|
|
139
|
+
var currentTime = date_util_1.dateUtilService.getIndianDate();
|
|
140
|
+
return bookingFromDateTimeWithDelay > currentTime;
|
|
141
|
+
};
|
|
108
142
|
BookingCode.sortByCode = function (bookingCodes) {
|
|
109
143
|
bookingCodes.sort(function (_a, _b) {
|
|
110
144
|
var code1 = _a.code;
|
|
@@ -157,7 +191,7 @@ var BookingCode = /** @class */ (function () {
|
|
|
157
191
|
discount = parseFloat(couponCode) * totalBookingHours;
|
|
158
192
|
}
|
|
159
193
|
}
|
|
160
|
-
discountedCost = totalCost - discount;
|
|
194
|
+
discountedCost = totalCost - Math.round(discount);
|
|
161
195
|
return Math.round(discountedCost);
|
|
162
196
|
};
|
|
163
197
|
BookingCode.getDiscountAmount = function (couponCode, totalCost) {
|
|
@@ -221,26 +255,17 @@ var BookingCode = /** @class */ (function () {
|
|
|
221
255
|
}
|
|
222
256
|
};
|
|
223
257
|
//---------------------
|
|
224
|
-
BookingCode.previousTimeChecker = function (fromTime, fromDate, index) {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
var
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
};
|
|
236
|
-
var timeFormat = new Intl.DateTimeFormat("en-US", __assign(__assign({}, options), { hour: "2-digit", minute: "2-digit", hour12: false }));
|
|
237
|
-
var currentTimeObj = timeFormat.format(now).replace(/:/g, "");
|
|
238
|
-
if (fromTime < currentTimeObj) {
|
|
239
|
-
throw new app_badrequest_exception_1.AppBadRequestException({
|
|
240
|
-
key: "slot.".concat(index),
|
|
241
|
-
message: ["Booking time should be in future"],
|
|
242
|
-
});
|
|
243
|
-
}
|
|
258
|
+
BookingCode.previousTimeChecker = function (fromTime, fromDate, index, bookingDelayInMinutes, date) {
|
|
259
|
+
if (bookingDelayInMinutes === void 0) { bookingDelayInMinutes = _utils_1.DEFAULT_BOOKING_DELAY_IN_MINUTES; }
|
|
260
|
+
if (date === void 0) { date = date_util_1.dateUtilService.getIndianDate(); }
|
|
261
|
+
var now = date;
|
|
262
|
+
var bookingDate = date_util_1.dateUtilService.convertStringToDate(fromDate.toString() + fromTime, "yyMMddHHmm");
|
|
263
|
+
var difference = bookingDate.getTime() - now.getTime() + bookingDelayInMinutes * 60 * 1000;
|
|
264
|
+
if (difference < 0) {
|
|
265
|
+
throw new app_badrequest_exception_1.AppBadRequestException({
|
|
266
|
+
key: "slot.".concat(index),
|
|
267
|
+
message: ["Invalid booking time. Booking time should be within ".concat(bookingDelayInMinutes, " minutes from current time")],
|
|
268
|
+
});
|
|
244
269
|
}
|
|
245
270
|
};
|
|
246
271
|
//---------------------
|
|
@@ -303,6 +328,11 @@ var BookingCode = /** @class */ (function () {
|
|
|
303
328
|
.toString()
|
|
304
329
|
.padStart(2, "0")).concat(date.getDate().toString().padStart(2, "0"));
|
|
305
330
|
};
|
|
331
|
+
BookingCode.getMonthCode = function (date) {
|
|
332
|
+
return parseInt("".concat(date.getFullYear() % 2000).concat((date.getMonth() + 1)
|
|
333
|
+
.toString()
|
|
334
|
+
.padStart(2, "0")));
|
|
335
|
+
};
|
|
306
336
|
/**
|
|
307
337
|
* Returns list of month codes (YYMM) in the Date range inclusive
|
|
308
338
|
* @param {Date} from - Start Date
|
|
@@ -313,14 +343,18 @@ var BookingCode = /** @class */ (function () {
|
|
|
313
343
|
from = new Date(from.getTime());
|
|
314
344
|
to = new Date(to.getTime());
|
|
315
345
|
var monthCodes = [];
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
346
|
+
var fromMonthCode = BookingCode.getMonthCode(from);
|
|
347
|
+
var toMonthCode = BookingCode.getMonthCode(to);
|
|
348
|
+
var currentMonthCode = fromMonthCode;
|
|
349
|
+
while (currentMonthCode <= toMonthCode) {
|
|
350
|
+
monthCodes.push(currentMonthCode);
|
|
351
|
+
// Change of year handling
|
|
352
|
+
if (currentMonthCode % 100 === 12) {
|
|
353
|
+
currentMonthCode = currentMonthCode + 100 - 11;
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
currentMonthCode = currentMonthCode + 1;
|
|
357
|
+
}
|
|
324
358
|
}
|
|
325
359
|
return monthCodes;
|
|
326
360
|
};
|
|
@@ -608,6 +642,15 @@ var BookingCode = /** @class */ (function () {
|
|
|
608
642
|
this.pitchNumber === nextBookingCode.pitchNumber &&
|
|
609
643
|
this.turfId === nextBookingCode.turfId);
|
|
610
644
|
};
|
|
645
|
+
BookingCode.getInstanceByComponents = function (turfId, pitchCode, dateCode, fromTimeCode, toTimeCode, priceCsv) {
|
|
646
|
+
return new BookingCode("".concat(turfId.toString().padStart(4, "0")).concat(dateCode.toString().padStart(6, "0")).concat(fromTimeCode).concat(toTimeCode).concat(pitchCode.toString().padStart(2, "0")), priceCsv);
|
|
647
|
+
};
|
|
648
|
+
BookingCode.prototype.isTimeSlotContinuous = function (that) {
|
|
649
|
+
return this.toTimeCode == that.fromTimeCode &&
|
|
650
|
+
this.pitchNumber == that.pitchNumber &&
|
|
651
|
+
this.turfId == that.turfId &&
|
|
652
|
+
this.dateCode == that.dateCode;
|
|
653
|
+
};
|
|
611
654
|
/**
|
|
612
655
|
* Extracts the numeric part of a bookingCode, excluding a predefined deleted slot separator.
|
|
613
656
|
*
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BookingCode } from "./booking-code-model";
|
|
1
2
|
import { IBookingModification } from "../types/booking-modification.type";
|
|
2
3
|
import { ModificationDiscountPolicy } from "../enums/modification-discount-policy.enum";
|
|
3
4
|
import { IChargeModel } from "../interface/model/charge-model.interface";
|
|
@@ -27,6 +28,7 @@ export declare class ChargesModel implements IChargeModel {
|
|
|
27
28
|
private modifyMove;
|
|
28
29
|
clone(): ChargesModel;
|
|
29
30
|
private modifyDelete;
|
|
31
|
+
extension(extensionBookingCode: BookingCode): ChargesModel;
|
|
30
32
|
static getInstance(chargeData: IChargeModel, discountPolicy?: ModificationDiscountPolicy): ChargesModel;
|
|
31
33
|
getTotalAmount(): number;
|
|
32
34
|
getPaymentStatus(): "Refund" | "Paid" | "Pending";
|