law-common 10.18.2-beta.6 → 10.19.1-beta.1

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 (59) hide show
  1. package/dist/src/api/index.d.ts +1 -0
  2. package/dist/src/api/index.js +1 -0
  3. package/dist/src/api/interface/billing-transaction-history.api.d.ts +3 -0
  4. package/dist/src/api/interface/billing-transaction-history.api.js +2 -0
  5. package/dist/src/api/interface/billing.create.dto.interface.d.ts +2 -2
  6. package/dist/src/api/interface/billing.transaction.create.dto.interface.d.ts +4 -2
  7. package/dist/src/api/interface/billing.transaction.entity.response.d.ts +11 -1
  8. package/dist/src/api/interface/billing.transaction.update.dto.interface.d.ts +5 -1
  9. package/dist/src/api/interface/billing.update.dto.interface.d.ts +5 -3
  10. package/dist/src/constants/entity_constants.d.ts +1 -0
  11. package/dist/src/constants/entity_constants.js +5 -1
  12. package/dist/src/entities/enums/billing-transaction-action.enum.d.ts +11 -0
  13. package/dist/src/entities/enums/billing-transaction-action.enum.js +15 -0
  14. package/dist/src/entities/enums/billing-transaction-status.enum.d.ts +6 -0
  15. package/dist/src/entities/enums/billing-transaction-status.enum.js +10 -0
  16. package/dist/src/entities/index.d.ts +5 -1
  17. package/dist/src/entities/index.js +5 -1
  18. package/dist/src/entities/interface/billing-transaction-history.entity.d.ts +7 -0
  19. package/dist/src/entities/interface/billing-transaction-history.entity.js +2 -0
  20. package/dist/src/entities/interface/billing.entity.interface.d.ts +1 -0
  21. package/dist/src/entities/interface/billing_timesheet.entity.interface.d.ts +2 -2
  22. package/dist/src/entities/interface/billing_transaction.entity.interface.d.ts +7 -0
  23. package/dist/src/entities/interface/entity.utils.interface.d.ts +12 -7
  24. package/dist/src/entities/interface/entity.utils.interface.js +1 -0
  25. package/dist/src/entities/model/bank.entity.model.d.ts +4 -1
  26. package/dist/src/entities/model/bank.entity.model.js +8 -2
  27. package/dist/src/entities/model/base.entity.model.d.ts +2 -8
  28. package/dist/src/entities/model/base.entity.model.js +35 -43
  29. package/dist/src/entities/model/billing-timesheet.entity.model.d.ts +26 -0
  30. package/dist/src/entities/model/billing-timesheet.entity.model.js +36 -0
  31. package/dist/src/entities/model/billing.entity.model.d.ts +7 -1
  32. package/dist/src/entities/model/billing.entity.model.js +18 -0
  33. package/dist/src/entities/model/client-affiliate.entity.model.d.ts +19 -0
  34. package/dist/src/entities/model/client-affiliate.entity.model.js +30 -0
  35. package/dist/src/entities/model/designation.entity.model.d.ts +4 -1
  36. package/dist/src/entities/model/designation.entity.model.js +8 -2
  37. package/dist/src/entities/model/entity.model.interface.d.ts +2 -2
  38. package/dist/src/entities/model/entity.model.interface.js +12 -7
  39. package/dist/src/entities/model/holiday.entity.model.d.ts +1 -14
  40. package/dist/src/entities/model/holiday.entity.model.js +42 -25
  41. package/dist/src/entities/model/leave.entity.model.d.ts +3 -50
  42. package/dist/src/entities/model/leave.entity.model.js +21 -154
  43. package/dist/src/entities/model/task.entity.model.d.ts +4 -1
  44. package/dist/src/entities/model/task.entity.model.js +8 -2
  45. package/dist/src/entities/model/timesheet.entity.model.d.ts +4 -1
  46. package/dist/src/entities/model/timesheet.entity.model.js +8 -2
  47. package/dist/src/entities/model/user.entity.model.d.ts +4 -1
  48. package/dist/src/entities/model/user.entity.model.js +8 -2
  49. package/dist/src/utils/helper.fn.util.d.ts +28 -0
  50. package/dist/src/utils/helper.fn.util.js +47 -2
  51. package/dist/src/utils/index.d.ts +0 -2
  52. package/dist/src/utils/index.js +0 -2
  53. package/dist/src/utils/string.util.d.ts +0 -1
  54. package/dist/src/utils/string.util.js +0 -14
  55. package/package.json +33 -33
  56. package/dist/src/entities/model/leave_count.entity.model.d.ts +0 -19
  57. package/dist/src/entities/model/leave_count.entity.model.js +0 -60
  58. package/dist/src/utils/entity.flow.util.d.ts +0 -30
  59. package/dist/src/utils/entity.flow.util.js +0 -54
@@ -225,4 +225,22 @@ BillingEntityModel.relationConfigs = [
225
225
  key: "id",
226
226
  },
227
227
  },
228
+ {
229
+ name: entity_utils_interface_1.EntityEnum.BILLING_TIMESHEET,
230
+ relation: relation_type_enum_1.RelationType.MANY,
231
+ key: "billingTimesheets",
232
+ mapKeyConfig: {
233
+ relationKey: "billingId",
234
+ key: "id",
235
+ },
236
+ },
237
+ {
238
+ name: entity_utils_interface_1.EntityEnum.BANK,
239
+ relation: relation_type_enum_1.RelationType.MANY,
240
+ key: "bank",
241
+ mapKeyConfig: {
242
+ relationKey: "id",
243
+ key: "bankId",
244
+ },
245
+ },
228
246
  ];
@@ -0,0 +1,19 @@
1
+ import { IClientAffiliateApiEntity } from "../../api";
2
+ import { EntityEnum } from "../interface/entity.utils.interface";
3
+ import { BaseEntityModel } from "./base.entity.model";
4
+ export declare class ClientAffiliateEntityModel extends BaseEntityModel<EntityEnum.CLIENT_AFFILIATE> implements IClientAffiliateApiEntity {
5
+ id: number;
6
+ name: string;
7
+ address: string;
8
+ details?: string;
9
+ clientId: number;
10
+ organizationId: number;
11
+ zipCode: string;
12
+ country: string;
13
+ createdOn: string;
14
+ updatedOn: string;
15
+ createdBy: number;
16
+ updatedBy: number;
17
+ getRelationConfigs(): any;
18
+ static fromApiEntity(apiEntity: IClientAffiliateApiEntity): ClientAffiliateEntityModel;
19
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientAffiliateEntityModel = void 0;
4
+ const entity_utils_interface_1 = require("../interface/entity.utils.interface");
5
+ const base_entity_model_1 = require("./base.entity.model");
6
+ class ClientAffiliateEntityModel extends base_entity_model_1.BaseEntityModel {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.id = 0;
10
+ this.name = "";
11
+ this.address = "";
12
+ this.clientId = 0;
13
+ this.organizationId = 0;
14
+ this.zipCode = "";
15
+ this.country = "";
16
+ this.createdOn = "";
17
+ this.updatedOn = "";
18
+ this.createdBy = 0;
19
+ this.updatedBy = 0;
20
+ }
21
+ getRelationConfigs() {
22
+ return this.constructor.prototype.constructor.relationConfigs;
23
+ }
24
+ static fromApiEntity(apiEntity) {
25
+ const entity = new ClientAffiliateEntityModel(entity_utils_interface_1.EntityEnum.CLIENT_AFFILIATE);
26
+ Object.assign(entity, apiEntity);
27
+ return entity;
28
+ }
29
+ }
30
+ exports.ClientAffiliateEntityModel = ClientAffiliateEntityModel;
@@ -1,5 +1,7 @@
1
1
  import { IDesignationApiEntity } from "../interface/designation.entity.interface";
2
- export declare class DesignationEntityModel implements IDesignationApiEntity {
2
+ import { EntityEnum } from "../interface/entity.utils.interface";
3
+ import { BaseEntityModel } from "./base.entity.model";
4
+ export declare class DesignationEntityModel extends BaseEntityModel<EntityEnum.DESIGNATION> implements IDesignationApiEntity {
3
5
  id: number;
4
6
  name: string;
5
7
  description?: string;
@@ -8,4 +10,5 @@ export declare class DesignationEntityModel implements IDesignationApiEntity {
8
10
  updatedBy: number;
9
11
  updatedOn: string;
10
12
  static fromApiEntity(apiEntity: IDesignationApiEntity): DesignationEntityModel;
13
+ getRelationConfigs(): any[];
11
14
  }
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DesignationEntityModel = void 0;
4
- class DesignationEntityModel {
4
+ const entity_utils_interface_1 = require("../interface/entity.utils.interface");
5
+ const base_entity_model_1 = require("./base.entity.model");
6
+ class DesignationEntityModel extends base_entity_model_1.BaseEntityModel {
5
7
  constructor() {
8
+ super(...arguments);
6
9
  this.id = 0;
7
10
  this.name = "";
8
11
  this.createdBy = 0;
@@ -20,9 +23,12 @@ class DesignationEntityModel {
20
23
  // this.updatedOn = data.updatedOn;
21
24
  // }
22
25
  static fromApiEntity(apiEntity) {
23
- const entity = new DesignationEntityModel();
26
+ const entity = new DesignationEntityModel(entity_utils_interface_1.EntityEnum.DESIGNATION);
24
27
  Object.assign(entity, apiEntity);
25
28
  return entity;
26
29
  }
30
+ getRelationConfigs() {
31
+ return this.constructor.prototype.constructor.relationConfigs || [];
32
+ }
27
33
  }
28
34
  exports.DesignationEntityModel = DesignationEntityModel;
@@ -1,8 +1,8 @@
1
- import { EntityEnum, EntityIndexMap, EntityMap, EnumEntityType, IBaseEntityApiResponse, VirtualEntityEnum } from "../interface/entity.utils.interface";
1
+ import { EntityEnum, EntityIndexMap, EntityMap, EnumEntityType, IBaseEntityApiResponse } from "../interface/entity.utils.interface";
2
2
  export declare function mapToIndex(entityMap: EntityMap): EntityIndexMap;
3
3
  export declare function getEntityIndexMap<T extends EntityEnum>(data: IBaseEntityApiResponse<EnumEntityType<T>>, baseEntity: T, reusedConfig?: {
4
4
  existingEntityIndexMap: EntityIndexMap;
5
5
  enumEntities: EntityEnum[];
6
6
  }): EntityIndexMap;
7
7
  export declare function populateRelationsFor(entityIndexMap: EntityIndexMap, enumEntities: EntityEnum[]): void;
8
- export declare function parseEntities<T extends EnumEntityType<EntityEnum | VirtualEntityEnum>>(json: IBaseEntityApiResponse<T>, baseEntity: EntityEnum | VirtualEntityEnum, entityMap: EntityMap): EntityMap;
8
+ export declare function parseEntities<T extends EnumEntityType<EntityEnum>>(json: IBaseEntityApiResponse<T>, baseEntity: EntityEnum, entityMap: EntityMap): EntityMap;
@@ -5,17 +5,20 @@ exports.getEntityIndexMap = getEntityIndexMap;
5
5
  exports.populateRelationsFor = populateRelationsFor;
6
6
  exports.parseEntities = parseEntities;
7
7
  const entity_utils_interface_1 = require("../interface/entity.utils.interface");
8
+ const bank_entity_model_1 = require("./bank.entity.model");
8
9
  const base_entity_model_1 = require("./base.entity.model");
9
10
  const billing_reimbursement_expense_entity_model_1 = require("./billing-reimbursement-expense.entity.model");
11
+ const billing_timesheet_entity_model_1 = require("./billing-timesheet.entity.model");
10
12
  const billing_entity_model_1 = require("./billing.entity.model");
13
+ const client_affiliate_entity_model_1 = require("./client-affiliate.entity.model");
11
14
  const client_entity_model_1 = require("./client.entity.model");
12
- const holiday_entity_model_1 = require("./holiday.entity.model");
13
- const leave_entity_model_1 = require("./leave.entity.model");
14
- const leave_count_entity_model_1 = require("./leave_count.entity.model");
15
+ const configuration_model_1 = require("./configuration.model");
15
16
  const project_user_mapping_entity_model_1 = require("./project-user-mapping.entity.model");
16
17
  const project_entity_model_1 = require("./project.entity.model");
17
18
  const reimbursement_expense_entity_model_1 = require("./reimbursement-expense.entity.model");
18
19
  const reimbursement_entity_model_1 = require("./reimbursement.entity.model");
20
+ const task_entity_model_1 = require("./task.entity.model");
21
+ const timesheet_entity_model_1 = require("./timesheet.entity.model");
19
22
  const user_entity_model_1 = require("./user.entity.model");
20
23
  function mapToIndex(entityMap) {
21
24
  return Object.keys(entityMap).reduce((acc, key) => {
@@ -55,10 +58,12 @@ function parseEntities(json, baseEntity, entityMap) {
55
58
  [entity_utils_interface_1.EntityEnum.REIMBURSEMENT]: reimbursement_entity_model_1.ReimbursementEntityModel.fromApiEntity,
56
59
  [entity_utils_interface_1.EntityEnum.REIMBURSEMENT_EXPENSE]: reimbursement_expense_entity_model_1.ReimbursementExpenseEntityModel.fromApiEntity,
57
60
  [entity_utils_interface_1.EntityEnum.BILLING_REIMBURSEMENT_EXPENSE]: billing_reimbursement_expense_entity_model_1.BillingReimbursementExpneseEntityModel.fromApiEntity,
58
- [entity_utils_interface_1.EntityEnum.HOLIDAY]: holiday_entity_model_1.HolidayEntityModel.fromApiEntity,
59
- [entity_utils_interface_1.EntityEnum.LEAVE]: leave_entity_model_1.LeaveEntityModel.fromApiEntity,
60
- [entity_utils_interface_1.VirtualEntityEnum.LEAVE_COUNT]: leave_count_entity_model_1.LeaveCountVirtualEntityModel.fromApiEntity,
61
- // Add other entities here as needed
61
+ [entity_utils_interface_1.EntityEnum.CLIENT_AFFILIATE]: client_affiliate_entity_model_1.ClientAffiliateEntityModel.fromApiEntity,
62
+ [entity_utils_interface_1.EntityEnum.BANK]: bank_entity_model_1.BankEntityModel.fromApiEntity,
63
+ [entity_utils_interface_1.EntityEnum.CONFIGURATION]: configuration_model_1.ConfigurationEntityModel.fromApiEntity,
64
+ [entity_utils_interface_1.EntityEnum.TASK]: task_entity_model_1.TaskEntityModel.fromApiEntity,
65
+ [entity_utils_interface_1.EntityEnum.BILLING_TIMESHEET]: billing_timesheet_entity_model_1.BillingTimesheetEntityModel.fromApiEntity,
66
+ [entity_utils_interface_1.EntityEnum.TIMESHEET]: timesheet_entity_model_1.TimesheetEntityModel.fromApiEntity,
62
67
  };
63
68
  if (!(baseEntity in entityFromJsonMappings)) {
64
69
  throw new Error(`Unknown entity: ${baseEntity}`);
@@ -1,14 +1 @@
1
- import { IHolidayApiEntity } from "../../api";
2
- import { EntityEnum } from "../interface/entity.utils.interface";
3
- import { BaseEntityModel } from "./base.entity.model";
4
- export declare class HolidayEntityModel extends BaseEntityModel<EntityEnum.HOLIDAY> implements IHolidayApiEntity {
5
- id: number;
6
- holidayListId: number;
7
- dateCode: string;
8
- createdBy: number;
9
- updatedBy: number;
10
- createdOn: string;
11
- updatedOn: string;
12
- getRelationConfigs(): never[];
13
- static fromApiEntity(apiEntity: IHolidayApiEntity): HolidayEntityModel;
14
- }
1
+ export declare const toBeDeleted = "holiday";
@@ -1,27 +1,44 @@
1
1
  "use strict";
2
+ // import { DateCodeModel } from "../../utils";
3
+ // import { IAuditColumnEntity } from "../interface/audit-column.entity.interface";
4
+ // import { IHolidayEntity } from "../interface/holiday.entity.interface";
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HolidayEntityModel = void 0;
4
- const entity_utils_interface_1 = require("../interface/entity.utils.interface");
5
- const base_entity_model_1 = require("./base.entity.model");
6
- // import { IHolidayApiEntity } from "law-common/dist/src/api";
7
- class HolidayEntityModel extends base_entity_model_1.BaseEntityModel {
8
- constructor() {
9
- super(...arguments);
10
- this.id = 0;
11
- this.holidayListId = 0;
12
- this.dateCode = "";
13
- this.createdBy = 0;
14
- this.updatedBy = 0;
15
- this.createdOn = "";
16
- this.updatedOn = "";
17
- }
18
- getRelationConfigs() {
19
- return [];
20
- }
21
- static fromApiEntity(apiEntity) {
22
- const entity = new HolidayEntityModel(entity_utils_interface_1.EntityEnum.HOLIDAY);
23
- Object.assign(entity, apiEntity);
24
- return entity;
25
- }
26
- }
27
- exports.HolidayEntityModel = HolidayEntityModel;
6
+ exports.toBeDeleted = void 0;
7
+ // export class BaseEntityModelV1<T extends IAuditColumnEntity> {
8
+ // createdOn: Date;
9
+ // updatedOn: Date;
10
+ // createdBy: number;
11
+ // updatedBy: number;
12
+ // constructor(data: T) {
13
+ // this.createdOn = data.createdOn;
14
+ // this.updatedOn = data.updatedOn;
15
+ // this.createdBy = data.createdBy;
16
+ // this.updatedBy = data.updatedBy;
17
+ // }
18
+ // }
19
+ // export class HolidayEntityModel
20
+ // extends BaseEntityModelV1<IHolidayEntity>
21
+ // implements IHolidayEntity
22
+ // {
23
+ // id: number;
24
+ // holidayListId: number;
25
+ // dateCode: string;
26
+ // private constructor(data: IHolidayEntity) {
27
+ // super(data);
28
+ // this.id = data.id;
29
+ // this.holidayListId = data.holidayListId;
30
+ // this.dateCode = data.dateCode;
31
+ // }
32
+ // getDateCodeModel(): DateCodeModel {
33
+ // return new DateCodeModel(this.dateCode);
34
+ // }
35
+ // static fromEntity(data: IHolidayEntity): HolidayEntityModel {
36
+ // return new HolidayEntityModel(data);
37
+ // }
38
+ // static getDateCodeModelFromDate(
39
+ // models: HolidayEntityModel[]
40
+ // ): DateCodeModel[] {
41
+ // return models.map((model) => model.getDateCodeModel());
42
+ // }
43
+ // }
44
+ exports.toBeDeleted = "holiday";
@@ -3,12 +3,7 @@ import { DateCodeModel, Weekday } from "../../utils";
3
3
  import { DurationTypeEnum } from "../enums/duration-type.enum";
4
4
  import { LeaveTypeEnum } from "../enums/leave-type.enum";
5
5
  import { LeaveStatusEnum } from "../enums/leave.status.enum";
6
- import { RelationType } from "../enums/relation-type.enum";
7
- import { EntityEnum, VirtualEntityEnum } from "../interface/entity.utils.interface";
8
- import { BaseEntityModel } from "./base.entity.model";
9
- import { LeaveCountVirtualEntityModel } from "./leave_count.entity.model";
10
- import { UserEntityModel } from "./user.entity.model";
11
- export declare class LeaveEntityModel extends BaseEntityModel<EntityEnum.LEAVE> implements ILeaveApiEntity {
6
+ export declare class LeaveEntityModel implements ILeaveApiEntity {
12
7
  id: number;
13
8
  employeeId: number;
14
9
  fromDate: string;
@@ -22,55 +17,13 @@ export declare class LeaveEntityModel extends BaseEntityModel<EntityEnum.LEAVE>
22
17
  updatedOn: string;
23
18
  createdBy: number;
24
19
  updatedBy: number;
25
- leaveCount?: LeaveCountVirtualEntityModel;
26
- createdByUser?: UserEntityModel;
27
- updatedByUser?: UserEntityModel;
28
- user?: UserEntityModel;
20
+ private constructor();
29
21
  static fromEntity(data: ILeaveApiEntity): LeaveEntityModel;
22
+ isMoreThanOneDayLeave(): boolean;
30
23
  getLeaveDuration(excludeWeekdays?: Weekday[], excludeDates?: DateCodeModel[]): number;
31
24
  static getLeaveDuration(leaves: LeaveEntityModel[], excludeWeekdays?: Weekday[], excludeDates?: DateCodeModel[], leaveStatusEnum?: LeaveStatusEnum[]): number;
32
25
  getDateCodeModels(dateCodeIncludePredicates?: ((dateModel: DateCodeModel) => boolean)[], dateCodeExcludePredicates?: ((dateModel: DateCodeModel) => boolean)[]): DateCodeModel[];
33
26
  static getLeaveApprovePredicate(): (leave: LeaveEntityModel) => boolean;
34
27
  static getLeavePendingPredicate(): (leave: LeaveEntityModel) => boolean;
35
28
  static getLeavesByPredicates(leaves: LeaveEntityModel[], includePredicates?: ((leave: LeaveEntityModel) => boolean)[], excludePredicates?: ((leave: LeaveEntityModel) => boolean)[]): LeaveEntityModel[];
36
- static orderByFromDateAsc(leaves: LeaveEntityModel[]): LeaveEntityModel[];
37
- isWeekendSucceeds(): boolean;
38
- isWeekendPrecedes(): boolean;
39
- isHolidaySucceeds(holidays: DateCodeModel[]): boolean;
40
- isHolidayPrecedes(holidays: DateCodeModel[]): boolean;
41
- getRelationConfigs(): any[];
42
- static relationConfigs: ({
43
- name: VirtualEntityEnum;
44
- relation: RelationType;
45
- key: string;
46
- mapKeyConfig: {
47
- relationKey: string;
48
- key: string;
49
- };
50
- } | {
51
- name: EntityEnum;
52
- relation: RelationType;
53
- key: string;
54
- mapKeyConfig: {
55
- relationKey: string;
56
- key: string;
57
- };
58
- })[];
59
- static fromApiEntity(apiEntity: ILeaveApiEntity): LeaveEntityModel;
60
- static getPendingApprovalStatuses(): LeaveStatusEnum[];
61
- getStatusLabel(): string;
62
- getTypeLabel(): string;
63
- getLeaveCount(): number;
64
- static getLeaveCount(leaveEntities: LeaveEntityModel[]): number;
65
- isMoreThanOneDayLeave(): boolean;
66
- getFromDateLabel(): string;
67
- getToDateLabel(): string;
68
- getDateDurationLabel(): string;
69
- static getLeaveStatusPriority(): {
70
- pending_approval: number;
71
- edit_approval: number;
72
- delete_approval: number;
73
- approved: number;
74
- rejected: number;
75
- };
76
29
  }
@@ -2,33 +2,33 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LeaveEntityModel = void 0;
4
4
  const utils_1 = require("../../utils");
5
- const string_util_1 = require("../../utils/string.util");
6
5
  const duration_type_enum_1 = require("../enums/duration-type.enum");
7
- const leave_type_enum_1 = require("../enums/leave-type.enum");
8
6
  const leave_status_enum_1 = require("../enums/leave.status.enum");
9
- const relation_type_enum_1 = require("../enums/relation-type.enum");
10
- const entity_utils_interface_1 = require("../interface/entity.utils.interface");
11
- const base_entity_model_1 = require("./base.entity.model");
12
- class LeaveEntityModel extends base_entity_model_1.BaseEntityModel {
13
- constructor() {
14
- super(...arguments);
15
- this.id = 0;
16
- this.employeeId = 0;
17
- this.fromDate = "";
18
- this.toDate = "";
19
- this.reason = "";
20
- this.durationType = duration_type_enum_1.DurationTypeEnum.FULL;
21
- this.status = leave_status_enum_1.LeaveStatusEnum.DELETED;
22
- this.type = leave_type_enum_1.LeaveTypeEnum.SICK;
7
+ class LeaveEntityModel {
8
+ constructor(data) {
23
9
  this.createdOn = "";
24
10
  this.updatedOn = "";
25
- this.createdBy = 0;
26
- this.updatedBy = 0;
11
+ this.id = data.id;
12
+ this.employeeId = data.employeeId;
13
+ this.fromDate = data.fromDate;
14
+ this.toDate = data.toDate;
15
+ this.reason = data.reason;
16
+ this.durationType = data.durationType;
17
+ this.status = data.status;
18
+ this.remark = data.remark;
19
+ this.type = data.type;
20
+ this.createdOn = data.createdOn;
21
+ this.updatedOn = data.updatedOn;
22
+ this.createdBy = data.createdBy;
23
+ this.updatedBy = data.updatedBy;
27
24
  }
28
25
  static fromEntity(data) {
29
- const entity = new LeaveEntityModel(entity_utils_interface_1.EntityEnum.LEAVE);
30
- Object.assign(entity, data);
31
- return entity;
26
+ return new LeaveEntityModel(data);
27
+ }
28
+ isMoreThanOneDayLeave() {
29
+ const fromDate = new utils_1.DateCodeModel(this.fromDate);
30
+ const toDate = new utils_1.DateCodeModel(this.toDate);
31
+ return fromDate.diffInDays(toDate) > 1;
32
32
  }
33
33
  getLeaveDuration(excludeWeekdays = [], excludeDates = []) {
34
34
  if (!this.isMoreThanOneDayLeave()) {
@@ -80,138 +80,5 @@ class LeaveEntityModel extends base_entity_model_1.BaseEntityModel {
80
80
  return leaves.filter((leave) => includePredicates.every((predicate) => predicate(leave)) &&
81
81
  excludePredicates.every((predicate) => !predicate(leave)));
82
82
  }
83
- static orderByFromDateAsc(leaves) {
84
- return leaves.sort((a, b) => {
85
- const dateA = new Date(a.fromDate);
86
- const dateB = new Date(b.fromDate);
87
- return dateA.getTime() - dateB.getTime();
88
- });
89
- }
90
- isWeekendSucceeds() {
91
- const toDate = new utils_1.DateCodeModel(this.toDate);
92
- const nextDate = toDate.getByOffset(1);
93
- return nextDate.isDayPresent([utils_1.Weekday.Saturday, utils_1.Weekday.Sunday]);
94
- }
95
- isWeekendPrecedes() {
96
- const fromDate = new utils_1.DateCodeModel(this.fromDate);
97
- const prevDate = fromDate.getByOffset(-1);
98
- return prevDate.isDayPresent([utils_1.Weekday.Saturday, utils_1.Weekday.Sunday]);
99
- }
100
- isHolidaySucceeds(holidays) {
101
- const toDate = new utils_1.DateCodeModel(this.toDate);
102
- const nextDate = toDate.getByOffset(1);
103
- return holidays.some((holiday) => holiday.isSame(nextDate));
104
- }
105
- isHolidayPrecedes(holidays) {
106
- const fromDate = new utils_1.DateCodeModel(this.fromDate);
107
- const prevDate = fromDate.getByOffset(-1);
108
- return holidays.some((holiday) => holiday.isSame(prevDate));
109
- }
110
- getRelationConfigs() {
111
- return this.constructor.prototype.constructor.relationConfigs;
112
- }
113
- static fromApiEntity(apiEntity) {
114
- return LeaveEntityModel.fromEntity(apiEntity);
115
- }
116
- static getPendingApprovalStatuses() {
117
- return [
118
- leave_status_enum_1.LeaveStatusEnum.PENDING_APPROVAL,
119
- leave_status_enum_1.LeaveStatusEnum.DELETE_APPROVAL,
120
- leave_status_enum_1.LeaveStatusEnum.EDIT_APPROVAL,
121
- ];
122
- }
123
- getStatusLabel() {
124
- const pendingStatuses = LeaveEntityModel.getPendingApprovalStatuses();
125
- let statusLabel = '';
126
- if (pendingStatuses.includes(this.status)) {
127
- statusLabel = 'PENDING_APPROVAL';
128
- }
129
- else if (this.status === leave_status_enum_1.LeaveStatusEnum.RESOLVE_REJECTED) {
130
- statusLabel = 'CHANGES_REJECTED';
131
- }
132
- else {
133
- statusLabel = this.status.toString();
134
- }
135
- return (0, string_util_1.formatString)(statusLabel);
136
- }
137
- getTypeLabel() {
138
- return (0, string_util_1.formatString)(this.type.toString());
139
- }
140
- getLeaveCount() {
141
- var _a;
142
- return ((_a = this.leaveCount) === null || _a === void 0 ? void 0 : _a.count) || 0;
143
- }
144
- static getLeaveCount(leaveEntities) {
145
- return leaveEntities.reduce((acc, leave) => acc + leave.getLeaveCount(), 0);
146
- }
147
- isMoreThanOneDayLeave() {
148
- const fromDate = new utils_1.DateCodeModel(this.fromDate);
149
- const toDate = new utils_1.DateCodeModel(this.toDate);
150
- return fromDate.diffInDays(toDate) > 1;
151
- }
152
- getFromDateLabel() {
153
- const statues = [duration_type_enum_1.DurationTypeEnum.SECOND, duration_type_enum_1.DurationTypeEnum.SECOND_FULL, duration_type_enum_1.DurationTypeEnum.SECOND_FIRST];
154
- if (statues.includes(this.durationType)) {
155
- return 'Second Half';
156
- }
157
- return 'Full Day';
158
- }
159
- getToDateLabel() {
160
- const statues = [duration_type_enum_1.DurationTypeEnum.FIRST, duration_type_enum_1.DurationTypeEnum.FULL_FIRST, duration_type_enum_1.DurationTypeEnum.SECOND_FIRST];
161
- if (statues.includes(this.durationType)) {
162
- return 'First Half';
163
- }
164
- return 'Full Day';
165
- }
166
- getDateDurationLabel() {
167
- if (!this.isMoreThanOneDayLeave()) {
168
- return `${new utils_1.DateCodeModel(this.fromDate).getFormattedDateWithMonthName()} ${this.durationType === duration_type_enum_1.DurationTypeEnum.FULL ? '(Full Day)' : this.durationType === duration_type_enum_1.DurationTypeEnum.FIRST ? '(First Half)' : '(Second Half)'}`;
169
- }
170
- return `${new utils_1.DateCodeModel(this.fromDate).getFormattedDateWithMonthName()} (${this.getFromDateLabel()}) - ${new utils_1.DateCodeModel(this.toDate).getFormattedDateWithMonthName()} (${this.getToDateLabel()})`;
171
- }
172
- static getLeaveStatusPriority() {
173
- return {
174
- [leave_status_enum_1.LeaveStatusEnum.PENDING_APPROVAL]: 1,
175
- [leave_status_enum_1.LeaveStatusEnum.EDIT_APPROVAL]: 2,
176
- [leave_status_enum_1.LeaveStatusEnum.DELETE_APPROVAL]: 3,
177
- [leave_status_enum_1.LeaveStatusEnum.APPROVED]: 4,
178
- [leave_status_enum_1.LeaveStatusEnum.REJECTED]: 5,
179
- };
180
- }
181
83
  }
182
84
  exports.LeaveEntityModel = LeaveEntityModel;
183
- LeaveEntityModel.relationConfigs = [
184
- {
185
- name: entity_utils_interface_1.VirtualEntityEnum.LEAVE_COUNT,
186
- relation: relation_type_enum_1.RelationType.ONE,
187
- key: 'leaveCount',
188
- mapKeyConfig: {
189
- relationKey: 'leaveId',
190
- key: 'id',
191
- },
192
- }, {
193
- name: entity_utils_interface_1.EntityEnum.USER,
194
- relation: relation_type_enum_1.RelationType.ONE,
195
- key: 'createdByUser',
196
- mapKeyConfig: {
197
- relationKey: 'id',
198
- key: 'createdBy',
199
- },
200
- }, {
201
- name: entity_utils_interface_1.EntityEnum.USER,
202
- relation: relation_type_enum_1.RelationType.ONE,
203
- key: 'updatedByUser',
204
- mapKeyConfig: {
205
- relationKey: 'id',
206
- key: 'updatedBy',
207
- },
208
- }, {
209
- name: entity_utils_interface_1.EntityEnum.USER,
210
- relation: relation_type_enum_1.RelationType.ONE,
211
- key: 'user',
212
- mapKeyConfig: {
213
- relationKey: 'id',
214
- key: 'employeeId',
215
- },
216
- }
217
- ];
@@ -1,6 +1,8 @@
1
1
  import { ITaskApiEntity } from "../../api";
2
2
  import { TaskStatusEnum, TaskTypeEnum } from "../enums/task.entity.enum";
3
- export declare class TaskEntityModel implements ITaskApiEntity {
3
+ import { EntityEnum } from "../interface/entity.utils.interface";
4
+ import { BaseEntityModel } from "./base.entity.model";
5
+ export declare class TaskEntityModel extends BaseEntityModel<EntityEnum.TASK> implements ITaskApiEntity {
4
6
  id: number;
5
7
  name: string;
6
8
  description: string;
@@ -11,4 +13,5 @@ export declare class TaskEntityModel implements ITaskApiEntity {
11
13
  createdOn: string;
12
14
  updatedOn: string;
13
15
  static fromApiEntity(apiEntity: ITaskApiEntity): TaskEntityModel;
16
+ getRelationConfigs(): any[];
14
17
  }
@@ -2,8 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaskEntityModel = void 0;
4
4
  const task_entity_enum_1 = require("../enums/task.entity.enum");
5
- class TaskEntityModel {
5
+ const entity_utils_interface_1 = require("../interface/entity.utils.interface");
6
+ const base_entity_model_1 = require("./base.entity.model");
7
+ class TaskEntityModel extends base_entity_model_1.BaseEntityModel {
6
8
  constructor() {
9
+ super(...arguments);
7
10
  this.id = 0;
8
11
  this.name = "";
9
12
  this.description = "";
@@ -15,9 +18,12 @@ class TaskEntityModel {
15
18
  this.updatedOn = "";
16
19
  }
17
20
  static fromApiEntity(apiEntity) {
18
- const entity = new TaskEntityModel();
21
+ const entity = new TaskEntityModel(entity_utils_interface_1.EntityEnum.TASK);
19
22
  Object.assign(entity, apiEntity);
20
23
  return entity;
21
24
  }
25
+ getRelationConfigs() {
26
+ return this.constructor.prototype.constructor.relationConfigs || [];
27
+ }
22
28
  }
23
29
  exports.TaskEntityModel = TaskEntityModel;
@@ -1,6 +1,8 @@
1
1
  import { ITimesheetApiEntity } from "../../api";
2
2
  import { TimesheetStatusEnum } from "../enums/timesheet.status.enum";
3
- export declare class TimesheetEntityModel implements ITimesheetApiEntity {
3
+ import { EntityEnum } from "../interface/entity.utils.interface";
4
+ import { BaseEntityModel } from "./base.entity.model";
5
+ export declare class TimesheetEntityModel extends BaseEntityModel<EntityEnum.TIMESHEET> implements ITimesheetApiEntity {
4
6
  id: number;
5
7
  userId: number;
6
8
  projectId: number;
@@ -15,4 +17,5 @@ export declare class TimesheetEntityModel implements ITimesheetApiEntity {
15
17
  createdOn: string;
16
18
  updatedOn: string;
17
19
  static fromApiEntity(apiEntity: ITimesheetApiEntity): TimesheetEntityModel;
20
+ getRelationConfigs(): any[];
18
21
  }
@@ -2,8 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimesheetEntityModel = void 0;
4
4
  const timesheet_status_enum_1 = require("../enums/timesheet.status.enum");
5
- class TimesheetEntityModel {
5
+ const entity_utils_interface_1 = require("../interface/entity.utils.interface");
6
+ const base_entity_model_1 = require("./base.entity.model");
7
+ class TimesheetEntityModel extends base_entity_model_1.BaseEntityModel {
6
8
  constructor() {
9
+ super(...arguments);
7
10
  this.id = 0;
8
11
  this.userId = 0;
9
12
  this.projectId = 0;
@@ -17,9 +20,12 @@ class TimesheetEntityModel {
17
20
  this.updatedOn = "";
18
21
  }
19
22
  static fromApiEntity(apiEntity) {
20
- const entity = new TimesheetEntityModel();
23
+ const entity = new TimesheetEntityModel(entity_utils_interface_1.EntityEnum.TIMESHEET);
21
24
  Object.assign(entity, apiEntity);
22
25
  return entity;
23
26
  }
27
+ getRelationConfigs() {
28
+ return this.constructor.prototype.constructor.relationConfigs || [];
29
+ }
24
30
  }
25
31
  exports.TimesheetEntityModel = TimesheetEntityModel;
@@ -1,6 +1,8 @@
1
1
  import { IUserApiEntity } from "../../api";
2
2
  import { UserRoleEnum, UserStatusEnum } from "../enums/user.entity.enum";
3
- export declare class UserEntityModel implements IUserApiEntity {
3
+ import { EntityEnum } from "../interface/entity.utils.interface";
4
+ import { BaseEntityModel } from "./base.entity.model";
5
+ export declare class UserEntityModel extends BaseEntityModel<EntityEnum.USER> implements IUserApiEntity {
4
6
  id: number;
5
7
  name: string;
6
8
  email: string;
@@ -39,5 +41,6 @@ export declare class UserEntityModel implements IUserApiEntity {
39
41
  updatedBy: number;
40
42
  createdOn: string;
41
43
  updatedOn: string;
44
+ getRelationConfigs(): any[];
42
45
  static fromApiEntity(apiEntity: IUserApiEntity): UserEntityModel;
43
46
  }
@@ -2,8 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UserEntityModel = void 0;
4
4
  const user_entity_enum_1 = require("../enums/user.entity.enum");
5
- class UserEntityModel {
5
+ const entity_utils_interface_1 = require("../interface/entity.utils.interface");
6
+ const base_entity_model_1 = require("./base.entity.model");
7
+ class UserEntityModel extends base_entity_model_1.BaseEntityModel {
6
8
  constructor() {
9
+ super(...arguments);
7
10
  this.id = 0;
8
11
  this.name = "";
9
12
  this.email = "";
@@ -21,8 +24,11 @@ class UserEntityModel {
21
24
  this.createdOn = "";
22
25
  this.updatedOn = "";
23
26
  }
27
+ getRelationConfigs() {
28
+ return this.constructor.prototype.constructor.relationConfigs || [];
29
+ }
24
30
  static fromApiEntity(apiEntity) {
25
- const entity = new UserEntityModel();
31
+ const entity = new UserEntityModel(entity_utils_interface_1.EntityEnum.USER);
26
32
  Object.assign(entity, apiEntity);
27
33
  return entity;
28
34
  }