@platform-modules/civil-aviation-authority 2.3.201 → 2.3.205

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 (100) hide show
  1. package/.env +22 -7
  2. package/dist/index.d.ts +5 -0
  3. package/dist/index.js +5 -0
  4. package/dist/models/ComplaintLostPropertyReportApprovalModel.d.ts +23 -0
  5. package/dist/models/ComplaintLostPropertyReportApprovalModel.js +88 -0
  6. package/dist/models/ComplaintLostPropertyReportAttachmentModel.d.ts +12 -0
  7. package/dist/models/ComplaintLostPropertyReportAttachmentModel.js +56 -0
  8. package/dist/models/ComplaintLostPropertyReportChatModel.d.ts +21 -0
  9. package/dist/models/ComplaintLostPropertyReportChatModel.js +78 -0
  10. package/dist/models/ComplaintLostPropertyReportRequestModel.d.ts +23 -0
  11. package/dist/models/ComplaintLostPropertyReportRequestModel.js +88 -0
  12. package/dist/models/ComplaintLostPropertyReportWorkflowModel.d.ts +18 -0
  13. package/dist/models/ComplaintLostPropertyReportWorkflowModel.js +80 -0
  14. package/dist/models/DocumentMetadataModel.d.ts +45 -0
  15. package/dist/models/DocumentMetadataModel.js +171 -0
  16. package/dist/models/DocumentationDepartmentsModel.d.ts +13 -0
  17. package/dist/models/DocumentationDepartmentsModel.js +53 -0
  18. package/dist/models/FolderModel.d.ts +16 -0
  19. package/dist/models/FolderModel.js +85 -0
  20. package/dist/models/ImportExportMaterialModels.d.ts +92 -0
  21. package/dist/models/ImportExportMaterialModels.js +307 -0
  22. package/dist/models/PermissionModel.d.ts +18 -0
  23. package/dist/models/PermissionModel.js +68 -0
  24. package/dist/models/SecurityAccessApprovalModel.d.ts +23 -0
  25. package/dist/models/SecurityAccessApprovalModel.js +82 -0
  26. package/dist/models/SecurityAccessAttachmentModel.d.ts +12 -0
  27. package/dist/models/SecurityAccessAttachmentModel.js +56 -0
  28. package/dist/models/SecurityAccessChatModel.d.ts +12 -0
  29. package/dist/models/SecurityAccessChatModel.js +56 -0
  30. package/dist/models/SecurityAccessRequestModel.d.ts +25 -0
  31. package/dist/models/SecurityAccessRequestModel.js +80 -0
  32. package/dist/models/SecurityAccessWorkflowModel.d.ts +24 -0
  33. package/dist/models/SecurityAccessWorkflowModel.js +84 -0
  34. package/dist/models/ServiceExtensionAfterAge60Models.d.ts +93 -0
  35. package/dist/models/ServiceExtensionAfterAge60Models.js +312 -0
  36. package/dist/models/UUIDBaseModel.d.ts +14 -0
  37. package/dist/models/UUIDBaseModel.js +66 -0
  38. package/dist/models/WorkingHoursExtensionModels.d.ts +88 -0
  39. package/dist/models/WorkingHoursExtensionModels.js +295 -0
  40. package/package.json +1 -1
  41. package/src/data-source.ts +419 -419
  42. package/src/index.ts +5 -0
  43. package/src/models/AccessCardRequestModel.ts +135 -135
  44. package/src/models/AccommodationApprovalModel.ts +8 -8
  45. package/src/models/AccommodationRequestModel.ts +8 -8
  46. package/src/models/AirportEntryPermitModel.ts +276 -276
  47. package/src/models/AnnualIncrementRequestEmployeeModel.ts +65 -65
  48. package/src/models/AnnualIncrementRequestModel.ts +25 -25
  49. package/src/models/AnnualTrainingPlanRequestModel.ts +153 -153
  50. package/src/models/AppealAgainstAdministrativeDecisionRequestModel.ts +23 -23
  51. package/src/models/CAAServices.ts +33 -33
  52. package/src/models/CAASubServices.ts +33 -33
  53. package/src/models/CAIRatingMasterModel.ts +39 -39
  54. package/src/models/CSRMBusinessImpactRatingMasterModel.ts +25 -25
  55. package/src/models/CSRMLikelihoodMasterModel.ts +25 -25
  56. package/src/models/CashAllowanceLeaveRequestModel.ts +11 -11
  57. package/src/models/ComplaintLostPropertyReportApprovalModel.ts +60 -0
  58. package/src/models/ComplaintLostPropertyReportAttachmentModel.ts +33 -0
  59. package/src/models/ComplaintLostPropertyReportChatModel.ts +53 -0
  60. package/src/models/ComplaintLostPropertyReportRequestModel.ts +60 -0
  61. package/src/models/ComplaintLostPropertyReportWorkflowModel.ts +51 -0
  62. package/src/models/DepartmentsModel.ts +25 -25
  63. package/src/models/DocumentDriveModel.ts +28 -28
  64. package/src/models/DocumentFolderModel.ts +45 -45
  65. package/src/models/HousingContractCancelApprovalModel.ts +64 -64
  66. package/src/models/HousingContractCancelChatModel.ts +56 -56
  67. package/src/models/HousingContractRenewalApprovalModel.ts +64 -64
  68. package/src/models/HousingContractRenewalChatModel.ts +59 -59
  69. package/src/models/HrServiceRequestModel.ts +193 -193
  70. package/src/models/ITRequestAttachmentModel.ts +73 -73
  71. package/src/models/ITRequestChatModel.ts +74 -74
  72. package/src/models/ItApprovalsModel.ts +84 -84
  73. package/src/models/ItWorkflowModel.ts +55 -55
  74. package/src/models/LegalConsultationApprovalModel.ts +65 -65
  75. package/src/models/MissionTravelPassportExpiryNotificationConfigModel.ts +36 -36
  76. package/src/models/PerformanceCyclePeriodModel.ts +26 -26
  77. package/src/models/PerformanceGoalMasterModel.ts +27 -27
  78. package/src/models/PerformanceManagementRequestGoalModel.ts +46 -46
  79. package/src/models/PerformanceManagementRequestModel.ts +14 -14
  80. package/src/models/PromotionRequestModel.ts +11 -11
  81. package/src/models/ResidentialUnitRentalApprovalModel.ts +143 -143
  82. package/src/models/ResidentialUnitRentalChatModel.ts +56 -56
  83. package/src/models/ResidentialUnitRentalRequestModel.ts +218 -218
  84. package/src/models/RespondToEnquiriesRequestModel.ts +31 -31
  85. package/src/models/ServicesNotificationConfigModel.ts +55 -55
  86. package/src/models/StudyLeaveRequestModel.ts +144 -144
  87. package/src/models/TrainingRequestModel.ts +164 -164
  88. package/src/models/TrainingRoomBookingRequestModel.ts +142 -142
  89. package/src/models/TrainingRoomNotificationConfigModel.ts +30 -30
  90. package/src/models/UserSkillModel.ts +56 -56
  91. package/src/models/role.ts +34 -34
  92. package/src/models/user.ts +233 -233
  93. package/dist/models/ITApprovalSettings.d.ts +0 -7
  94. package/dist/models/ITApprovalSettings.js +0 -40
  95. package/dist/models/ITServicesTypesMuscatModel.d.ts +0 -6
  96. package/dist/models/ITServicesTypesMuscatModel.js +0 -34
  97. package/dist/models/ITServicesTypesSalalahModel.d.ts +0 -6
  98. package/dist/models/ITServicesTypesSalalahModel.js +0 -34
  99. package/dist/models/Workflows.d.ts +0 -9
  100. package/dist/models/Workflows.js +0 -31
@@ -1,276 +1,276 @@
1
- import { Entity, Column } from 'typeorm';
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum AirportEntryPermitCategory {
5
- ISSUING_NEW_PERMIT = "Issuing New Permit",
6
- RENEWAL_OF_PERMIT = "Renewal of Permit",
7
- AMENDING = "Amending",
8
- REPLACING_LOST = "Replacing lost",
9
- CANCELLING_AIRPORT_SECURITY_PERMITS = "Cancelling airport security permits"
10
- }
11
-
12
- export enum AirportEntryPermitType {
13
- PERMANENT = "Permanent",
14
- TEMPORARY = "Temporary"
15
- }
16
-
17
- export enum AirportEntryPermitLocation {
18
- MUSCAT = "Muscat",
19
- SALALAH = "Salalah",
20
- MARMUL = "Marmul",
21
- DURUM = "Durum",
22
- SOHAR = "Sohar",
23
- FUHUD = "Fuhud",
24
- MUKHAZINA = "Mukhazina"
25
- }
26
-
27
- export enum AirportEntryPermitArea {
28
- PURPLE = "VIP Building",
29
- HEAVENLY = "Cargo Building (Imports & Exports)",
30
- ORANGE = "Arrivals Hall / Arrivals Building",
31
- GREEN = "Departures Hall / Departures Building",
32
- YELLOW = "Information Center / Control Tower",
33
- BLUE = "Aircraft Parking Area, Aircraft Maintenance Building, Vehicle Repair Workshop, Fire Station, and Fueling Stations",
34
- PINK = "Baggage Sorting Area",
35
- GRAY = "Catering Building",
36
- BLACK = "Aircraft Maintenance Building",
37
- GOLD = "Gold Building",
38
- RED = "All Civil Airports"
39
- }
40
-
41
- export enum AirportEntryPermitStatus {
42
- PENDING = "Pending",
43
- APPROVED = "Approved",
44
- REJECTED = "Rejected",
45
- IN_PROGRESS = "In Progress"
46
- }
47
-
48
- export enum VisitorOption {
49
- VISA_TYPE = "Visa Type",
50
- VISA_NO = "Visa No",
51
- DATE_EXPIRY_VISA = "Date Expiry Visa"
52
- }
53
-
54
- export enum AdditionalServices {
55
- LAPTOP_TABLET = "Laptop / Tablet",
56
- BOARDING_THE_AIRCRAFT = "Boarding the Aircraft",
57
- EMPLOYEE_ASSISTING_PEOPLE_WITH_SPECIAL_NEEDS = "Employee Assisting People with Special Needs"
58
- }
59
-
60
- @Entity({ name: 'airport_entry_permits' })
61
- export class AirportEntryPermit extends BaseModel {
62
- // Workflow fields
63
- @Column({ type: 'int', nullable: true })
64
- req_user_department_id: number | null;
65
-
66
- @Column({ type: 'int', nullable: true })
67
- req_user_section_id: number | null;
68
-
69
- @Column({ type: 'int', nullable: true })
70
- service_id: number | null;
71
-
72
- @Column({ type: 'int', nullable: true })
73
- sub_service_id: number | null;
74
-
75
- @Column({ type: 'varchar', length: 20, nullable: true })
76
- service_type: string | null;
77
-
78
- @Column({ type: 'varchar', nullable: true })
79
- workflow_execution_id: string | null;
80
-
81
- @Column({
82
- type: "enum",
83
- enum: AirportEntryPermitStatus,
84
- default: AirportEntryPermitStatus.PENDING,
85
- nullable: false,
86
- })
87
- status: AirportEntryPermitStatus;
88
-
89
- @Column({ nullable: false })
90
- user_id: number;
91
-
92
- // Request ID - Auto generated
93
- @Column({ type: 'varchar', length: 50, nullable: true, unique: true })
94
- request_id: string | null;
95
-
96
- // User fields from requirements
97
- @Column({ type: 'varchar', length: 255, nullable: false })
98
- name_full_family_name: string;
99
-
100
- @Column({ type: 'varchar', length: 100, nullable: false })
101
- nationality: string;
102
-
103
- @Column({ type: 'date', nullable: false })
104
- dob: Date;
105
-
106
- @Column({ type: 'varchar', length: 255, nullable: false })
107
- place: string;
108
-
109
- @Column({ type: 'varchar', length: 50, nullable: false })
110
- passport_id_card_no: string;
111
-
112
- @Column({
113
- type: "enum",
114
- enum: AirportEntryPermitCategory,
115
- nullable: false,
116
- })
117
- category_of_permit: AirportEntryPermitCategory;
118
-
119
- @Column({ type: 'date', nullable: false })
120
- date_of_submission: Date;
121
-
122
- @Column({ type: 'varchar', length: 20, nullable: false })
123
- phone_number: string;
124
-
125
- @Column({
126
- type: "enum",
127
- enum: AirportEntryPermitLocation,
128
- nullable: false,
129
- })
130
- location: AirportEntryPermitLocation;
131
-
132
- @Column({
133
- type: "enum",
134
- enum: AirportEntryPermitType,
135
- nullable: false,
136
- })
137
- type_of_permit: AirportEntryPermitType;
138
-
139
- @Column({ type: 'date', nullable: true })
140
- temporary_start_time: Date | null;
141
-
142
- @Column({ type: 'varchar', length: 100, nullable: true })
143
- temporary_duration: string | null;
144
-
145
- @Column({ type: 'jsonb', nullable: true })
146
- permission_to_required_areas: Array<{ permit: string; text: string }>;
147
-
148
- @Column({ type: 'text', nullable: true })
149
- attachment_url: string | null;
150
-
151
- @Column({ type: 'text', nullable: false })
152
- details: string;
153
-
154
- @Column({ type: 'varchar', length: 255, nullable: false })
155
- occupation_staff: string;
156
-
157
- // Visitor fields (optional)
158
- @Column({ type: 'text', array: true, nullable: true })
159
- for_visitor: VisitorOption[] | null;
160
-
161
- // Additional Services (optional)
162
- @Column({ type: 'text', array: true, nullable: true })
163
- additional_services: AdditionalServices[] | null;
164
-
165
- // Acknowledgement fields (from form checkboxes)
166
- @Column({ type: 'boolean', default: false })
167
- acknowledge_security_policies: boolean;
168
-
169
- @Column({ type: 'boolean', default: false })
170
- acknowledge_disciplinary_action: boolean;
171
-
172
- // Consent fields (for approvers - not in create form)
173
- @Column({ type: 'boolean', default: false })
174
- consent_approve_to_issue_permit: boolean;
175
-
176
- @Column({ type: 'boolean', default: false })
177
- consent_do_not_approve_to_issue_permit: boolean;
178
-
179
- @Column({ type: 'text', nullable: true })
180
- consent_justification: string | null;
181
-
182
- @Column({ type: 'varchar', length: 100, nullable: false })
183
- requested_by: string;
184
-
185
- @Column({ type: 'date', nullable: true })
186
- expiration_date: Date | null;
187
-
188
- @Column({ type: 'timestamptz', nullable: true })
189
- end_date: Date | null;
190
-
191
- @Column({ type: 'varchar', length: 255, nullable: true })
192
- device_serial_number: string | null;
193
-
194
- @Column({ type: 'varchar', length: 500, nullable: true })
195
- new_permit_issuance_file: string | null;
196
-
197
- @Column({ type: 'varchar', length: 500, nullable: true })
198
- forms_attachment_file: string | null;
199
-
200
- @Column({ type: 'varchar', length: 500, nullable: true })
201
- permit_renewal_file: string | null;
202
-
203
- constructor(
204
- name_full_family_name: string,
205
- nationality: string,
206
- dob: Date,
207
- place: string,
208
- passport_id_card_no: string,
209
- category_of_permit: AirportEntryPermitCategory,
210
- date_of_submission: Date,
211
- phone_number: string,
212
- location: AirportEntryPermitLocation,
213
- type_of_permit: AirportEntryPermitType,
214
- permission_to_required_areas: Array<{ permit: string; text: string }>,
215
- details: string,
216
- occupation_staff: string,
217
- requested_by: string,
218
- user_id: number,
219
- status: AirportEntryPermitStatus = AirportEntryPermitStatus.PENDING,
220
- service_id?: number | null,
221
- sub_service_id?: number | null,
222
- service_type?: string | null,
223
- workflow_execution_id?: string | null,
224
- req_user_department_id?: number | null,
225
- req_user_section_id?: number | null,
226
- attachment_url?: string | null,
227
- temporary_start_time?: Date | null,
228
- temporary_duration?: string | null,
229
- for_visitor?: VisitorOption[] | null,
230
- additional_services?: AdditionalServices[] | null,
231
- acknowledge_security_policies: boolean = false,
232
- acknowledge_disciplinary_action: boolean = false,
233
- consent_approve_to_issue_permit: boolean = false,
234
- consent_do_not_approve_to_issue_permit: boolean = false,
235
- consent_justification?: string | null,
236
- request_id?: string | null,
237
- expiration_date?: Date | null
238
- ) {
239
- super();
240
- this.name_full_family_name = name_full_family_name;
241
- this.nationality = nationality;
242
- this.dob = dob;
243
- this.place = place;
244
- this.passport_id_card_no = passport_id_card_no;
245
- this.category_of_permit = category_of_permit;
246
- this.date_of_submission = date_of_submission;
247
- this.phone_number = phone_number;
248
- this.location = location;
249
- this.type_of_permit = type_of_permit;
250
- this.permission_to_required_areas = permission_to_required_areas;
251
- this.details = details;
252
- this.occupation_staff = occupation_staff;
253
- this.requested_by = requested_by;
254
- this.user_id = user_id;
255
- this.status = status;
256
- this.service_id = service_id ?? null;
257
- this.sub_service_id = sub_service_id ?? null;
258
- this.service_type = service_type ?? null;
259
- this.workflow_execution_id = workflow_execution_id ?? null;
260
- this.req_user_department_id = req_user_department_id ?? null;
261
- this.req_user_section_id = req_user_section_id ?? null;
262
- this.attachment_url = attachment_url ?? null;
263
- this.temporary_start_time = temporary_start_time ?? null;
264
- this.temporary_duration = temporary_duration ?? null;
265
- this.for_visitor = for_visitor ?? null;
266
- this.additional_services = additional_services ?? null;
267
- this.acknowledge_security_policies = acknowledge_security_policies;
268
- this.acknowledge_disciplinary_action = acknowledge_disciplinary_action;
269
- this.consent_approve_to_issue_permit = consent_approve_to_issue_permit;
270
- this.consent_do_not_approve_to_issue_permit = consent_do_not_approve_to_issue_permit;
271
- this.consent_justification = consent_justification ?? null;
272
- this.request_id = request_id ?? null;
273
- this.expiration_date = expiration_date ?? null;
274
- }
275
- }
276
-
1
+ import { Entity, Column } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum AirportEntryPermitCategory {
5
+ ISSUING_NEW_PERMIT = "Issuing New Permit",
6
+ RENEWAL_OF_PERMIT = "Renewal of Permit",
7
+ AMENDING = "Amending",
8
+ REPLACING_LOST = "Replacing lost",
9
+ CANCELLING_AIRPORT_SECURITY_PERMITS = "Cancelling airport security permits"
10
+ }
11
+
12
+ export enum AirportEntryPermitType {
13
+ PERMANENT = "Permanent",
14
+ TEMPORARY = "Temporary"
15
+ }
16
+
17
+ export enum AirportEntryPermitLocation {
18
+ MUSCAT = "Muscat",
19
+ SALALAH = "Salalah",
20
+ MARMUL = "Marmul",
21
+ DURUM = "Durum",
22
+ SOHAR = "Sohar",
23
+ FUHUD = "Fuhud",
24
+ MUKHAZINA = "Mukhazina"
25
+ }
26
+
27
+ export enum AirportEntryPermitArea {
28
+ PURPLE = "VIP Building",
29
+ HEAVENLY = "Cargo Building (Imports & Exports)",
30
+ ORANGE = "Arrivals Hall / Arrivals Building",
31
+ GREEN = "Departures Hall / Departures Building",
32
+ YELLOW = "Information Center / Control Tower",
33
+ BLUE = "Aircraft Parking Area, Aircraft Maintenance Building, Vehicle Repair Workshop, Fire Station, and Fueling Stations",
34
+ PINK = "Baggage Sorting Area",
35
+ GRAY = "Catering Building",
36
+ BLACK = "Aircraft Maintenance Building",
37
+ GOLD = "Gold Building",
38
+ RED = "All Civil Airports"
39
+ }
40
+
41
+ export enum AirportEntryPermitStatus {
42
+ PENDING = "Pending",
43
+ APPROVED = "Approved",
44
+ REJECTED = "Rejected",
45
+ IN_PROGRESS = "In Progress"
46
+ }
47
+
48
+ export enum VisitorOption {
49
+ VISA_TYPE = "Visa Type",
50
+ VISA_NO = "Visa No",
51
+ DATE_EXPIRY_VISA = "Date Expiry Visa"
52
+ }
53
+
54
+ export enum AdditionalServices {
55
+ LAPTOP_TABLET = "Laptop / Tablet",
56
+ BOARDING_THE_AIRCRAFT = "Boarding the Aircraft",
57
+ EMPLOYEE_ASSISTING_PEOPLE_WITH_SPECIAL_NEEDS = "Employee Assisting People with Special Needs"
58
+ }
59
+
60
+ @Entity({ name: 'airport_entry_permits' })
61
+ export class AirportEntryPermit extends BaseModel {
62
+ // Workflow fields
63
+ @Column({ type: 'int', nullable: true })
64
+ req_user_department_id: number | null;
65
+
66
+ @Column({ type: 'int', nullable: true })
67
+ req_user_section_id: number | null;
68
+
69
+ @Column({ type: 'int', nullable: true })
70
+ service_id: number | null;
71
+
72
+ @Column({ type: 'int', nullable: true })
73
+ sub_service_id: number | null;
74
+
75
+ @Column({ type: 'varchar', length: 20, nullable: true })
76
+ service_type: string | null;
77
+
78
+ @Column({ type: 'varchar', nullable: true })
79
+ workflow_execution_id: string | null;
80
+
81
+ @Column({
82
+ type: "enum",
83
+ enum: AirportEntryPermitStatus,
84
+ default: AirportEntryPermitStatus.PENDING,
85
+ nullable: false,
86
+ })
87
+ status: AirportEntryPermitStatus;
88
+
89
+ @Column({ nullable: false })
90
+ user_id: number;
91
+
92
+ // Request ID - Auto generated
93
+ @Column({ type: 'varchar', length: 50, nullable: true, unique: true })
94
+ request_id: string | null;
95
+
96
+ // User fields from requirements
97
+ @Column({ type: 'varchar', length: 255, nullable: false })
98
+ name_full_family_name: string;
99
+
100
+ @Column({ type: 'varchar', length: 100, nullable: false })
101
+ nationality: string;
102
+
103
+ @Column({ type: 'date', nullable: false })
104
+ dob: Date;
105
+
106
+ @Column({ type: 'varchar', length: 255, nullable: false })
107
+ place: string;
108
+
109
+ @Column({ type: 'varchar', length: 50, nullable: false })
110
+ passport_id_card_no: string;
111
+
112
+ @Column({
113
+ type: "enum",
114
+ enum: AirportEntryPermitCategory,
115
+ nullable: false,
116
+ })
117
+ category_of_permit: AirportEntryPermitCategory;
118
+
119
+ @Column({ type: 'date', nullable: false })
120
+ date_of_submission: Date;
121
+
122
+ @Column({ type: 'varchar', length: 20, nullable: false })
123
+ phone_number: string;
124
+
125
+ @Column({
126
+ type: "enum",
127
+ enum: AirportEntryPermitLocation,
128
+ nullable: false,
129
+ })
130
+ location: AirportEntryPermitLocation;
131
+
132
+ @Column({
133
+ type: "enum",
134
+ enum: AirportEntryPermitType,
135
+ nullable: false,
136
+ })
137
+ type_of_permit: AirportEntryPermitType;
138
+
139
+ @Column({ type: 'date', nullable: true })
140
+ temporary_start_time: Date | null;
141
+
142
+ @Column({ type: 'varchar', length: 100, nullable: true })
143
+ temporary_duration: string | null;
144
+
145
+ @Column({ type: 'jsonb', nullable: true })
146
+ permission_to_required_areas: Array<{ permit: string; text: string }>;
147
+
148
+ @Column({ type: 'text', nullable: true })
149
+ attachment_url: string | null;
150
+
151
+ @Column({ type: 'text', nullable: false })
152
+ details: string;
153
+
154
+ @Column({ type: 'varchar', length: 255, nullable: false })
155
+ occupation_staff: string;
156
+
157
+ // Visitor fields (optional)
158
+ @Column({ type: 'text', array: true, nullable: true })
159
+ for_visitor: VisitorOption[] | null;
160
+
161
+ // Additional Services (optional)
162
+ @Column({ type: 'text', array: true, nullable: true })
163
+ additional_services: AdditionalServices[] | null;
164
+
165
+ // Acknowledgement fields (from form checkboxes)
166
+ @Column({ type: 'boolean', default: false })
167
+ acknowledge_security_policies: boolean;
168
+
169
+ @Column({ type: 'boolean', default: false })
170
+ acknowledge_disciplinary_action: boolean;
171
+
172
+ // Consent fields (for approvers - not in create form)
173
+ @Column({ type: 'boolean', default: false })
174
+ consent_approve_to_issue_permit: boolean;
175
+
176
+ @Column({ type: 'boolean', default: false })
177
+ consent_do_not_approve_to_issue_permit: boolean;
178
+
179
+ @Column({ type: 'text', nullable: true })
180
+ consent_justification: string | null;
181
+
182
+ @Column({ type: 'varchar', length: 100, nullable: false })
183
+ requested_by: string;
184
+
185
+ @Column({ type: 'date', nullable: true })
186
+ expiration_date: Date | null;
187
+
188
+ @Column({ type: 'timestamptz', nullable: true })
189
+ end_date: Date | null;
190
+
191
+ @Column({ type: 'varchar', length: 255, nullable: true })
192
+ device_serial_number: string | null;
193
+
194
+ @Column({ type: 'varchar', length: 500, nullable: true })
195
+ new_permit_issuance_file: string | null;
196
+
197
+ @Column({ type: 'varchar', length: 500, nullable: true })
198
+ forms_attachment_file: string | null;
199
+
200
+ @Column({ type: 'varchar', length: 500, nullable: true })
201
+ permit_renewal_file: string | null;
202
+
203
+ constructor(
204
+ name_full_family_name: string,
205
+ nationality: string,
206
+ dob: Date,
207
+ place: string,
208
+ passport_id_card_no: string,
209
+ category_of_permit: AirportEntryPermitCategory,
210
+ date_of_submission: Date,
211
+ phone_number: string,
212
+ location: AirportEntryPermitLocation,
213
+ type_of_permit: AirportEntryPermitType,
214
+ permission_to_required_areas: Array<{ permit: string; text: string }>,
215
+ details: string,
216
+ occupation_staff: string,
217
+ requested_by: string,
218
+ user_id: number,
219
+ status: AirportEntryPermitStatus = AirportEntryPermitStatus.PENDING,
220
+ service_id?: number | null,
221
+ sub_service_id?: number | null,
222
+ service_type?: string | null,
223
+ workflow_execution_id?: string | null,
224
+ req_user_department_id?: number | null,
225
+ req_user_section_id?: number | null,
226
+ attachment_url?: string | null,
227
+ temporary_start_time?: Date | null,
228
+ temporary_duration?: string | null,
229
+ for_visitor?: VisitorOption[] | null,
230
+ additional_services?: AdditionalServices[] | null,
231
+ acknowledge_security_policies: boolean = false,
232
+ acknowledge_disciplinary_action: boolean = false,
233
+ consent_approve_to_issue_permit: boolean = false,
234
+ consent_do_not_approve_to_issue_permit: boolean = false,
235
+ consent_justification?: string | null,
236
+ request_id?: string | null,
237
+ expiration_date?: Date | null
238
+ ) {
239
+ super();
240
+ this.name_full_family_name = name_full_family_name;
241
+ this.nationality = nationality;
242
+ this.dob = dob;
243
+ this.place = place;
244
+ this.passport_id_card_no = passport_id_card_no;
245
+ this.category_of_permit = category_of_permit;
246
+ this.date_of_submission = date_of_submission;
247
+ this.phone_number = phone_number;
248
+ this.location = location;
249
+ this.type_of_permit = type_of_permit;
250
+ this.permission_to_required_areas = permission_to_required_areas;
251
+ this.details = details;
252
+ this.occupation_staff = occupation_staff;
253
+ this.requested_by = requested_by;
254
+ this.user_id = user_id;
255
+ this.status = status;
256
+ this.service_id = service_id ?? null;
257
+ this.sub_service_id = sub_service_id ?? null;
258
+ this.service_type = service_type ?? null;
259
+ this.workflow_execution_id = workflow_execution_id ?? null;
260
+ this.req_user_department_id = req_user_department_id ?? null;
261
+ this.req_user_section_id = req_user_section_id ?? null;
262
+ this.attachment_url = attachment_url ?? null;
263
+ this.temporary_start_time = temporary_start_time ?? null;
264
+ this.temporary_duration = temporary_duration ?? null;
265
+ this.for_visitor = for_visitor ?? null;
266
+ this.additional_services = additional_services ?? null;
267
+ this.acknowledge_security_policies = acknowledge_security_policies;
268
+ this.acknowledge_disciplinary_action = acknowledge_disciplinary_action;
269
+ this.consent_approve_to_issue_permit = consent_approve_to_issue_permit;
270
+ this.consent_do_not_approve_to_issue_permit = consent_do_not_approve_to_issue_permit;
271
+ this.consent_justification = consent_justification ?? null;
272
+ this.request_id = request_id ?? null;
273
+ this.expiration_date = expiration_date ?? null;
274
+ }
275
+ }
276
+