@platform-modules/civil-aviation-authority 2.3.75 → 2.3.77

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/.env CHANGED
@@ -1,12 +1,17 @@
1
- # DB_HOST=164.52.222.169
2
- # DB_PORT=5432
3
- # DB_USER=postgres_admin_user
4
- # DB_PASS=pg_admin_user_pwd_caa_fa_$%^&OIukhjgcvbn
1
+ # DB_HOST=localhost
2
+ # DB_PORT=5433
3
+ # DB_USER=postgres
4
+ # DB_PASS=123
5
5
  # DB_NAME=CAA
6
6
 
7
+ DB_HOST=164.52.222.169
8
+ DB_PORT=5432
9
+ DB_USER=postgres_admin_user
10
+ DB_PASS=pg_admin_user_pwd_caa_fa_$%^&OIukhjgcvbn
11
+ DB_NAME=CAA
7
12
 
8
- DB_HOST=localhost
9
- DB_PORT=5432
10
- DB_USER=postgres
11
- DB_PASS=stevejobs
12
- DB_NAME=CAA
13
+ # DB_HOST=216.48.187.46
14
+ # DB_PORT=5432
15
+ # DB_USER=adminuser
16
+ # DB_PASS=postgres_caa_fm_qa_34567
17
+ # DB_NAME=CAA_QA
@@ -127,6 +127,7 @@ const RequestForCoverageAttachmentModel_1 = require("./models/RequestForCoverage
127
127
  const CashAllowanceLeaveRequestModel_1 = require("./models/CashAllowanceLeaveRequestModel");
128
128
  const PromotionRequestModel_1 = require("./models/PromotionRequestModel");
129
129
  const AnnualIncrementRequestModel_1 = require("./models/AnnualIncrementRequestModel");
130
+ const CityMasterModel_1 = require("./models/CityMasterModel");
130
131
  exports.AppDataSource = new typeorm_1.DataSource({
131
132
  type: 'postgres',
132
133
  host: process.env.DB_HOST || 'localhost',
@@ -257,6 +258,7 @@ exports.AppDataSource = new typeorm_1.DataSource({
257
258
  AssignTasksEmpChatModel_1.AssignTasksEmpRequestChat,
258
259
  CashAllowanceLeaveRequestModel_1.CashAllowanceLeaveRequest,
259
260
  PromotionRequestModel_1.PromotionRequest,
260
- AnnualIncrementRequestModel_1.AnnualIncrementRequest
261
+ AnnualIncrementRequestModel_1.AnnualIncrementRequest,
262
+ CityMasterModel_1.CityMaster
261
263
  ],
262
264
  });
package/dist/index.d.ts CHANGED
@@ -188,6 +188,7 @@ export { JobTransferRequestStatus } from './models/JobTransferRequestModel';
188
188
  export * from './models/NewResourceRequestModel';
189
189
  export { NewResourceRequestStatus } from './models/NewResourceRequestModel';
190
190
  export * from './models/CountryMasterModel';
191
+ export * from './models/CityMasterModel';
191
192
  export * from './models/LocationModel';
192
193
  export * from './models/FinancialGradeModel';
193
194
  export * from './models/NationalityMasterModel';
package/dist/index.js CHANGED
@@ -279,6 +279,8 @@ var NewResourceRequestModel_1 = require("./models/NewResourceRequestModel");
279
279
  Object.defineProperty(exports, "NewResourceRequestStatus", { enumerable: true, get: function () { return NewResourceRequestModel_1.NewResourceRequestStatus; } });
280
280
  // Country Master
281
281
  __exportStar(require("./models/CountryMasterModel"), exports);
282
+ // City Master
283
+ __exportStar(require("./models/CityMasterModel"), exports);
282
284
  // Location Master
283
285
  __exportStar(require("./models/LocationModel"), exports);
284
286
  // Financial Grade Master
@@ -0,0 +1,8 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare class CityMaster extends BaseModel {
3
+ country_id: number | null;
4
+ city_name: string;
5
+ city_code: string | null;
6
+ description: string | null;
7
+ constructor(city_name: string);
8
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CityMaster = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ let CityMaster = class CityMaster extends BaseModel_1.BaseModel {
16
+ constructor(city_name) {
17
+ super();
18
+ this.city_name = city_name;
19
+ }
20
+ };
21
+ exports.CityMaster = CityMaster;
22
+ __decorate([
23
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
24
+ __metadata("design:type", Object)
25
+ ], CityMaster.prototype, "country_id", void 0);
26
+ __decorate([
27
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: false }),
28
+ __metadata("design:type", String)
29
+ ], CityMaster.prototype, "city_name", void 0);
30
+ __decorate([
31
+ (0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
32
+ __metadata("design:type", Object)
33
+ ], CityMaster.prototype, "city_code", void 0);
34
+ __decorate([
35
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
36
+ __metadata("design:type", Object)
37
+ ], CityMaster.prototype, "description", void 0);
38
+ exports.CityMaster = CityMaster = __decorate([
39
+ (0, typeorm_1.Entity)({ name: 'city_master' }),
40
+ __metadata("design:paramtypes", [String])
41
+ ], CityMaster);
@@ -61,5 +61,6 @@ export declare class DutyMissionRequests extends BaseModel {
61
61
  vehicle_required: VehicleRequired | null;
62
62
  remarks: string | null;
63
63
  decision_number: string | null;
64
- constructor(req_user_department_id: number | null, req_user_section_id: number | null, service_id: number, sub_service_id: number, user_id: number, trip_type: TripType, choose_type: ChooseType, mission_sponsored_by: MissionSponsoredBy, mission_purpose: string, mission_number: string, mission_start_date: Date, mission_end_date: Date, travelling_area_from: string, travelling_area_to: string, from_country: string, to_country: string, travel_place: string, travel_start_date: Date, travel_return_date: Date, status: DutyMissionStatus, request_id?: string | null, mission_id?: string | null, mission_days?: number | null, distance?: string | null, if_sponsored?: string | null, allowance_percentage?: string | null, air_ticket_required?: AirTicketRequired | null, vehicle_required?: VehicleRequired | null, remarks?: string | null, decision_number?: string | null, workflow_execution_id?: string | null);
64
+ decision_date: Date | null;
65
+ constructor(req_user_department_id: number | null, req_user_section_id: number | null, service_id: number, sub_service_id: number, user_id: number, trip_type: TripType, choose_type: ChooseType, mission_sponsored_by: MissionSponsoredBy, mission_purpose: string, mission_number: string, mission_start_date: Date, mission_end_date: Date, travelling_area_from: string, travelling_area_to: string, from_country: string, to_country: string, travel_place: string, travel_start_date: Date, travel_return_date: Date, status: DutyMissionStatus, request_id?: string | null, mission_id?: string | null, mission_days?: number | null, distance?: string | null, if_sponsored?: string | null, allowance_percentage?: string | null, air_ticket_required?: AirTicketRequired | null, vehicle_required?: VehicleRequired | null, remarks?: string | null, decision_number?: string | null, decision_date?: Date | null, workflow_execution_id?: string | null);
65
66
  }
@@ -49,7 +49,7 @@ var DutyMissionStatus;
49
49
  DutyMissionStatus["REJECTED"] = "Rejected";
50
50
  })(DutyMissionStatus || (exports.DutyMissionStatus = DutyMissionStatus = {}));
51
51
  let DutyMissionRequests = class DutyMissionRequests extends BaseModel_1.BaseModel {
52
- constructor(req_user_department_id, req_user_section_id, service_id, sub_service_id, user_id, trip_type, choose_type, mission_sponsored_by, mission_purpose, mission_number, mission_start_date, mission_end_date, travelling_area_from, travelling_area_to, from_country, to_country, travel_place, travel_start_date, travel_return_date, status, request_id, mission_id, mission_days, distance, if_sponsored, allowance_percentage, air_ticket_required, vehicle_required, remarks, decision_number, workflow_execution_id) {
52
+ constructor(req_user_department_id, req_user_section_id, service_id, sub_service_id, user_id, trip_type, choose_type, mission_sponsored_by, mission_purpose, mission_number, mission_start_date, mission_end_date, travelling_area_from, travelling_area_to, from_country, to_country, travel_place, travel_start_date, travel_return_date, status, request_id, mission_id, mission_days, distance, if_sponsored, allowance_percentage, air_ticket_required, vehicle_required, remarks, decision_number, decision_date, workflow_execution_id) {
53
53
  super();
54
54
  this.req_user_department_id = req_user_department_id ?? null;
55
55
  this.req_user_section_id = req_user_section_id ?? null;
@@ -81,6 +81,7 @@ let DutyMissionRequests = class DutyMissionRequests extends BaseModel_1.BaseMode
81
81
  this.vehicle_required = vehicle_required ?? null;
82
82
  this.remarks = remarks ?? null;
83
83
  this.decision_number = decision_number ?? null;
84
+ this.decision_date = decision_date ?? null;
84
85
  this.workflow_execution_id = workflow_execution_id ?? null;
85
86
  }
86
87
  };
@@ -234,9 +235,13 @@ __decorate([
234
235
  (0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true }),
235
236
  __metadata("design:type", Object)
236
237
  ], DutyMissionRequests.prototype, "decision_number", void 0);
238
+ __decorate([
239
+ (0, typeorm_1.Column)({ type: 'timestamp', nullable: true }),
240
+ __metadata("design:type", Object)
241
+ ], DutyMissionRequests.prototype, "decision_date", void 0);
237
242
  exports.DutyMissionRequests = DutyMissionRequests = __decorate([
238
243
  (0, typeorm_1.Entity)({ name: 'duty_mission_requests' }),
239
244
  __metadata("design:paramtypes", [Object, Object, Number, Number, Number, String, String, String, String, String, Date,
240
245
  Date, String, String, String, String, String, Date,
241
- Date, String, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object])
246
+ Date, String, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object])
242
247
  ], DutyMissionRequests);
@@ -27,6 +27,6 @@ export declare class JobTransferRequest extends BaseModel {
27
27
  current_job_position: string;
28
28
  position_to_be_transferred: string;
29
29
  effective_from_date: Date;
30
- decision_number: number | null;
30
+ decision_number: string | null;
31
31
  constructor(user_id: number, status?: JobTransferRequestStatus, service_id?: number | null, sub_service_id?: number | null, req_user_department_id?: number | null, req_user_section_id?: number | null, req_user_position_id?: number | null, description?: string | null, reviewer_user_id?: number | null, assigned_to_user_id?: number | null, assigned_at?: Date | null, workflow_execution_id?: string | null, reason_for_request?: string, assigned_employee_name?: string, civil_id_card_number?: string | null, employee_id?: string, current_job_position?: string, position_to_be_transferred?: string, effective_from_date?: Date);
32
32
  }
@@ -123,7 +123,7 @@ __decorate([
123
123
  __metadata("design:type", Date)
124
124
  ], JobTransferRequest.prototype, "effective_from_date", void 0);
125
125
  __decorate([
126
- (0, typeorm_1.Column)({ type: "integer", nullable: true }),
126
+ (0, typeorm_1.Column)({ type: "varchar", nullable: true }),
127
127
  __metadata("design:type", Object)
128
128
  ], JobTransferRequest.prototype, "decision_number", void 0);
129
129
  exports.JobTransferRequest = JobTransferRequest = __decorate([
@@ -1,9 +0,0 @@
1
- import { BaseModel } from './BaseModel';
2
- export declare class Workflows extends BaseModel {
3
- name: string;
4
- service_id: number;
5
- sub_service_id: number;
6
- request_for: string;
7
- levels: number;
8
- constructor(name: string, service_id: number, sub_service_id: number, request_for: string, levels: number);
9
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platform-modules/civil-aviation-authority",
3
- "version": "2.3.75",
3
+ "version": "2.3.77",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -125,6 +125,7 @@ import { RequestForCoverageRequestAttachment } from './models/RequestForCoverage
125
125
  import { CashAllowanceLeaveRequest } from './models/CashAllowanceLeaveRequestModel';
126
126
  import { PromotionRequest } from './models/PromotionRequestModel';
127
127
  import { AnnualIncrementRequest } from './models/AnnualIncrementRequestModel';
128
+ import { CityMaster } from './models/CityMasterModel';
128
129
 
129
130
  export const AppDataSource = new DataSource({
130
131
  type: 'postgres',
@@ -256,6 +257,7 @@ export const AppDataSource = new DataSource({
256
257
  AssignTasksEmpRequestChat,
257
258
  CashAllowanceLeaveRequest,
258
259
  PromotionRequest,
259
- AnnualIncrementRequest
260
+ AnnualIncrementRequest,
261
+ CityMaster
260
262
  ],
261
263
  });
package/src/index.ts CHANGED
@@ -202,6 +202,9 @@ export {NewResourceRequestStatus} from './models/NewResourceRequestModel';
202
202
  // Country Master
203
203
  export * from './models/CountryMasterModel';
204
204
 
205
+ // City Master
206
+ export * from './models/CityMasterModel';
207
+
205
208
  // Location Master
206
209
  export * from './models/LocationModel';
207
210
 
@@ -0,0 +1,22 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ @Entity({ name: 'city_master' })
5
+ export class CityMaster extends BaseModel {
6
+ @Column({ type: 'int', nullable: true })
7
+ country_id: number | null;
8
+
9
+ @Column({ type: 'varchar', length: 255, nullable: false })
10
+ city_name: string;
11
+
12
+ @Column({ type: 'varchar', length: 50, nullable: true })
13
+ city_code: string | null;
14
+
15
+ @Column({ type: 'text', nullable: true })
16
+ description: string | null;
17
+
18
+ constructor(city_name: string) {
19
+ super();
20
+ this.city_name = city_name;
21
+ }
22
+ }
@@ -160,6 +160,9 @@ export class DutyMissionRequests extends BaseModel {
160
160
  @Column({ type: 'varchar', length: 100, nullable: true })
161
161
  decision_number: string | null;
162
162
 
163
+ @Column({ type: 'timestamp', nullable: true })
164
+ decision_date: Date | null;
165
+
163
166
  constructor(
164
167
  req_user_department_id: number | null,
165
168
  req_user_section_id: number | null,
@@ -191,6 +194,7 @@ export class DutyMissionRequests extends BaseModel {
191
194
  vehicle_required?: VehicleRequired | null,
192
195
  remarks?: string | null,
193
196
  decision_number?: string | null,
197
+ decision_date?: Date | null,
194
198
  workflow_execution_id?: string | null,
195
199
  ) {
196
200
  super();
@@ -224,6 +228,7 @@ export class DutyMissionRequests extends BaseModel {
224
228
  this.vehicle_required = vehicle_required ?? null;
225
229
  this.remarks = remarks ?? null;
226
230
  this.decision_number = decision_number ?? null;
231
+ this.decision_date = decision_date ?? null;
227
232
  this.workflow_execution_id = workflow_execution_id ?? null;
228
233
  }
229
234
  }
@@ -1,193 +1,193 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from "./BaseModel";
3
-
4
- export enum HrServiceRequestStatus {
5
- PENDING = "Pending",
6
- ASSIGNED = "Assigned",
7
- IN_PROGRESS = "In Progress",
8
- COMPLETED = "Completed",
9
- APPROVED = "Approved",
10
- REJECTED = "Rejected"
11
- }
12
-
13
- @Entity({ name: "hr_service_requests" })
14
- export class HrServiceRequest extends BaseModel {
15
- @Column({ type: "integer", nullable: true })
16
- req_user_department_id: number | null;
17
-
18
- @Column({ type: "integer", nullable: true })
19
- req_user_section_id: number | null;
20
-
21
- @Column({ type: "integer", nullable: true })
22
- req_user_position_id: number | null;
23
-
24
- @Column({ type: "integer", nullable: true })
25
- service_id: number | null;
26
-
27
- @Column({ type: "integer", nullable: true })
28
- sub_service_id: number | null;
29
-
30
- @Column({ type: "integer", nullable: false })
31
- user_id: number;
32
-
33
- @Column({ type: "text", nullable: true })
34
- description: string | null;
35
-
36
- @Column({ type: "enum", enum: HrServiceRequestStatus, default: HrServiceRequestStatus.PENDING, nullable: false })
37
- status: HrServiceRequestStatus;
38
-
39
- @Column({ type: "integer", nullable: true })
40
- reviewer_user_id: number | null;
41
-
42
- @Column({ type: "integer", nullable: true })
43
- assigned_to_user_id: number | null;
44
-
45
- @Column({ type: "timestamp", nullable: true })
46
- assigned_at: Date | null;
47
-
48
- @Column({ type: "varchar", length: 255, nullable: true })
49
- workflow_execution_id: string | null;
50
-
51
- // Assignment Decision specific fields
52
- @Column({ type: "varchar", length: 255, nullable: false })
53
- assigned_employee_name: string;
54
-
55
- @Column({ type: "varchar", length: 50, nullable: true })
56
- civil_id_card_number: string | null;
57
-
58
- @Column({ type: "varchar", length: 100, nullable: false })
59
- employee_id: string;
60
-
61
- @Column({ type: "varchar", length: 255, nullable: false })
62
- current_job_position: string;
63
-
64
- @Column({ type: "varchar", length: 255, nullable: false })
65
- assigned_job_position: string;
66
-
67
- @Column({ type: "date", nullable: false })
68
- start_date: Date;
69
-
70
- @Column({ type: "date", nullable: false })
71
- end_date: Date;
72
-
73
- @Column({ type: "decimal", precision: 5, scale: 2, nullable: true })
74
- assignment_allowance: number | null; // 0-100 percentage
75
-
76
- @Column({ type: "varchar", length: 20, nullable: false })
77
- phone_number: string;
78
-
79
- @Column({ type: "text", nullable: false })
80
- reason_for_request: string;
81
-
82
- // Replacement tracking fields - Store REPLACEMENT details (ORIGINAL details above remain unchanged)
83
- @Column({ type: "boolean", default: false, nullable: false })
84
- is_replaced: boolean;
85
-
86
- @Column({ type: "varchar", length: 255, nullable: true })
87
- replacement_employee_name: string | null;
88
-
89
- @Column({ type: "varchar", length: 100, nullable: true })
90
- replacement_employee_id: string | null;
91
-
92
- @Column({ type: "varchar", length: 50, nullable: true })
93
- replacement_civil_id_card_number: string | null;
94
-
95
- @Column({ type: "varchar", length: 255, nullable: true })
96
- replacement_current_job_position: string | null;
97
-
98
- @Column({ type: "varchar", length: 255, nullable: true })
99
- replacement_assigned_job_position: string | null;
100
-
101
- @Column({ type: "date", nullable: true })
102
- replacement_start_date: Date | null;
103
-
104
- @Column({ type: "date", nullable: true })
105
- replacement_end_date: Date | null;
106
-
107
- @Column({ type: "decimal", precision: 5, scale: 2, nullable: true })
108
- replacement_assignment_allowance: number | null;
109
-
110
- @Column({ type: "text", nullable: true })
111
- replacement_reason: string | null;
112
-
113
- @Column({ type: "integer", nullable: true })
114
- replaced_by_user_id: number | null;
115
-
116
- @Column({ type: "timestamp", nullable: true })
117
- replaced_at: Date | null;
118
-
119
- constructor(
120
- user_id: number,
121
- status: HrServiceRequestStatus = HrServiceRequestStatus.PENDING,
122
- service_id?: number | null,
123
- sub_service_id?: number | null,
124
- req_user_department_id?: number | null,
125
- req_user_section_id?: number | null,
126
- req_user_position_id?: number | null,
127
- description?: string | null,
128
- reviewer_user_id?: number | null,
129
- assigned_to_user_id?: number | null,
130
- assigned_at?: Date | null,
131
- workflow_execution_id?: string | null,
132
- assigned_employee_name?: string,
133
- civil_id_card_number?: string | null,
134
- employee_id?: string,
135
- current_job_position?: string,
136
- assigned_job_position?: string,
137
- start_date?: Date,
138
- end_date?: Date,
139
- assignment_allowance?: number | null,
140
- phone_number?: string,
141
- reason_for_request?: string,
142
- is_replaced?: boolean,
143
- replacement_employee_name?: string | null,
144
- replacement_employee_id?: string | null,
145
- replacement_civil_id_card_number?: string | null,
146
- replacement_current_job_position?: string | null,
147
- replacement_assigned_job_position?: string | null,
148
- replacement_start_date?: Date | null,
149
- replacement_end_date?: Date | null,
150
- replacement_assignment_allowance?: number | null,
151
- replacement_reason?: string | null,
152
- replaced_by_user_id?: number | null,
153
- replaced_at?: Date | null
154
- ) {
155
- super();
156
- this.user_id = user_id;
157
- this.status = status;
158
- this.service_id = service_id || null;
159
- this.sub_service_id = sub_service_id || null;
160
- this.req_user_department_id = req_user_department_id || null;
161
- this.req_user_section_id = req_user_section_id || null;
162
- this.req_user_position_id = req_user_position_id || null;
163
- this.description = description || null;
164
- this.reviewer_user_id = reviewer_user_id || null;
165
- this.assigned_to_user_id = assigned_to_user_id || null;
166
- this.assigned_at = assigned_at || null;
167
- this.workflow_execution_id = workflow_execution_id || null;
168
- this.assigned_employee_name = assigned_employee_name || "";
169
- this.civil_id_card_number = civil_id_card_number || null;
170
- this.employee_id = employee_id || "";
171
- this.current_job_position = current_job_position || "";
172
- this.assigned_job_position = assigned_job_position || "";
173
- this.start_date = start_date || new Date();
174
- this.end_date = end_date || new Date();
175
- this.assignment_allowance = assignment_allowance || null;
176
- this.phone_number = phone_number || "";
177
- this.reason_for_request = reason_for_request || "";
178
- // Replacement fields initialization
179
- this.is_replaced = is_replaced || false;
180
- this.replacement_employee_name = replacement_employee_name || null;
181
- this.replacement_employee_id = replacement_employee_id || null;
182
- this.replacement_civil_id_card_number = replacement_civil_id_card_number || null;
183
- this.replacement_current_job_position = replacement_current_job_position || null;
184
- this.replacement_assigned_job_position = replacement_assigned_job_position || null;
185
- this.replacement_start_date = replacement_start_date || null;
186
- this.replacement_end_date = replacement_end_date || null;
187
- this.replacement_assignment_allowance = replacement_assignment_allowance || null;
188
- this.replacement_reason = replacement_reason || null;
189
- this.replaced_by_user_id = replaced_by_user_id || null;
190
- this.replaced_at = replaced_at || null;
191
- }
192
- }
193
-
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum HrServiceRequestStatus {
5
+ PENDING = "Pending",
6
+ ASSIGNED = "Assigned",
7
+ IN_PROGRESS = "In Progress",
8
+ COMPLETED = "Completed",
9
+ APPROVED = "Approved",
10
+ REJECTED = "Rejected"
11
+ }
12
+
13
+ @Entity({ name: "hr_service_requests" })
14
+ export class HrServiceRequest extends BaseModel {
15
+ @Column({ type: "integer", nullable: true })
16
+ req_user_department_id: number | null;
17
+
18
+ @Column({ type: "integer", nullable: true })
19
+ req_user_section_id: number | null;
20
+
21
+ @Column({ type: "integer", nullable: true })
22
+ req_user_position_id: number | null;
23
+
24
+ @Column({ type: "integer", nullable: true })
25
+ service_id: number | null;
26
+
27
+ @Column({ type: "integer", nullable: true })
28
+ sub_service_id: number | null;
29
+
30
+ @Column({ type: "integer", nullable: false })
31
+ user_id: number;
32
+
33
+ @Column({ type: "text", nullable: true })
34
+ description: string | null;
35
+
36
+ @Column({ type: "enum", enum: HrServiceRequestStatus, default: HrServiceRequestStatus.PENDING, nullable: false })
37
+ status: HrServiceRequestStatus;
38
+
39
+ @Column({ type: "integer", nullable: true })
40
+ reviewer_user_id: number | null;
41
+
42
+ @Column({ type: "integer", nullable: true })
43
+ assigned_to_user_id: number | null;
44
+
45
+ @Column({ type: "timestamp", nullable: true })
46
+ assigned_at: Date | null;
47
+
48
+ @Column({ type: "varchar", length: 255, nullable: true })
49
+ workflow_execution_id: string | null;
50
+
51
+ // Assignment Decision specific fields
52
+ @Column({ type: "varchar", length: 255, nullable: false })
53
+ assigned_employee_name: string;
54
+
55
+ @Column({ type: "varchar", length: 50, nullable: true })
56
+ civil_id_card_number: string | null;
57
+
58
+ @Column({ type: "varchar", length: 100, nullable: false })
59
+ employee_id: string;
60
+
61
+ @Column({ type: "varchar", length: 255, nullable: false })
62
+ current_job_position: string;
63
+
64
+ @Column({ type: "varchar", length: 255, nullable: false })
65
+ assigned_job_position: string;
66
+
67
+ @Column({ type: "date", nullable: false })
68
+ start_date: Date;
69
+
70
+ @Column({ type: "date", nullable: false })
71
+ end_date: Date;
72
+
73
+ @Column({ type: "decimal", precision: 5, scale: 2, nullable: true })
74
+ assignment_allowance: number | null; // 0-100 percentage
75
+
76
+ @Column({ type: "varchar", length: 20, nullable: false })
77
+ phone_number: string;
78
+
79
+ @Column({ type: "text", nullable: false })
80
+ reason_for_request: string;
81
+
82
+ // Replacement tracking fields - Store REPLACEMENT details (ORIGINAL details above remain unchanged)
83
+ @Column({ type: "boolean", default: false, nullable: false })
84
+ is_replaced: boolean;
85
+
86
+ @Column({ type: "varchar", length: 255, nullable: true })
87
+ replacement_employee_name: string | null;
88
+
89
+ @Column({ type: "varchar", length: 100, nullable: true })
90
+ replacement_employee_id: string | null;
91
+
92
+ @Column({ type: "varchar", length: 50, nullable: true })
93
+ replacement_civil_id_card_number: string | null;
94
+
95
+ @Column({ type: "varchar", length: 255, nullable: true })
96
+ replacement_current_job_position: string | null;
97
+
98
+ @Column({ type: "varchar", length: 255, nullable: true })
99
+ replacement_assigned_job_position: string | null;
100
+
101
+ @Column({ type: "date", nullable: true })
102
+ replacement_start_date: Date | null;
103
+
104
+ @Column({ type: "date", nullable: true })
105
+ replacement_end_date: Date | null;
106
+
107
+ @Column({ type: "decimal", precision: 5, scale: 2, nullable: true })
108
+ replacement_assignment_allowance: number | null;
109
+
110
+ @Column({ type: "text", nullable: true })
111
+ replacement_reason: string | null;
112
+
113
+ @Column({ type: "integer", nullable: true })
114
+ replaced_by_user_id: number | null;
115
+
116
+ @Column({ type: "timestamp", nullable: true })
117
+ replaced_at: Date | null;
118
+
119
+ constructor(
120
+ user_id: number,
121
+ status: HrServiceRequestStatus = HrServiceRequestStatus.PENDING,
122
+ service_id?: number | null,
123
+ sub_service_id?: number | null,
124
+ req_user_department_id?: number | null,
125
+ req_user_section_id?: number | null,
126
+ req_user_position_id?: number | null,
127
+ description?: string | null,
128
+ reviewer_user_id?: number | null,
129
+ assigned_to_user_id?: number | null,
130
+ assigned_at?: Date | null,
131
+ workflow_execution_id?: string | null,
132
+ assigned_employee_name?: string,
133
+ civil_id_card_number?: string | null,
134
+ employee_id?: string,
135
+ current_job_position?: string,
136
+ assigned_job_position?: string,
137
+ start_date?: Date,
138
+ end_date?: Date,
139
+ assignment_allowance?: number | null,
140
+ phone_number?: string,
141
+ reason_for_request?: string,
142
+ is_replaced?: boolean,
143
+ replacement_employee_name?: string | null,
144
+ replacement_employee_id?: string | null,
145
+ replacement_civil_id_card_number?: string | null,
146
+ replacement_current_job_position?: string | null,
147
+ replacement_assigned_job_position?: string | null,
148
+ replacement_start_date?: Date | null,
149
+ replacement_end_date?: Date | null,
150
+ replacement_assignment_allowance?: number | null,
151
+ replacement_reason?: string | null,
152
+ replaced_by_user_id?: number | null,
153
+ replaced_at?: Date | null
154
+ ) {
155
+ super();
156
+ this.user_id = user_id;
157
+ this.status = status;
158
+ this.service_id = service_id || null;
159
+ this.sub_service_id = sub_service_id || null;
160
+ this.req_user_department_id = req_user_department_id || null;
161
+ this.req_user_section_id = req_user_section_id || null;
162
+ this.req_user_position_id = req_user_position_id || null;
163
+ this.description = description || null;
164
+ this.reviewer_user_id = reviewer_user_id || null;
165
+ this.assigned_to_user_id = assigned_to_user_id || null;
166
+ this.assigned_at = assigned_at || null;
167
+ this.workflow_execution_id = workflow_execution_id || null;
168
+ this.assigned_employee_name = assigned_employee_name || "";
169
+ this.civil_id_card_number = civil_id_card_number || null;
170
+ this.employee_id = employee_id || "";
171
+ this.current_job_position = current_job_position || "";
172
+ this.assigned_job_position = assigned_job_position || "";
173
+ this.start_date = start_date || new Date();
174
+ this.end_date = end_date || new Date();
175
+ this.assignment_allowance = assignment_allowance || null;
176
+ this.phone_number = phone_number || "";
177
+ this.reason_for_request = reason_for_request || "";
178
+ // Replacement fields initialization
179
+ this.is_replaced = is_replaced || false;
180
+ this.replacement_employee_name = replacement_employee_name || null;
181
+ this.replacement_employee_id = replacement_employee_id || null;
182
+ this.replacement_civil_id_card_number = replacement_civil_id_card_number || null;
183
+ this.replacement_current_job_position = replacement_current_job_position || null;
184
+ this.replacement_assigned_job_position = replacement_assigned_job_position || null;
185
+ this.replacement_start_date = replacement_start_date || null;
186
+ this.replacement_end_date = replacement_end_date || null;
187
+ this.replacement_assignment_allowance = replacement_assignment_allowance || null;
188
+ this.replacement_reason = replacement_reason || null;
189
+ this.replaced_by_user_id = replaced_by_user_id || null;
190
+ this.replaced_at = replaced_at || null;
191
+ }
192
+ }
193
+
@@ -70,8 +70,8 @@ export class JobTransferRequest extends BaseModel {
70
70
  @Column({ type: "date", nullable: false })
71
71
  effective_from_date: Date;
72
72
 
73
- @Column({ type: "integer", nullable: true })
74
- decision_number : number | null;
73
+ @Column({ type: "varchar", nullable: true })
74
+ decision_number : string | null;
75
75
 
76
76
 
77
77
  constructor(