@platform-modules/civil-aviation-authority 2.3.249 → 2.3.251

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 (85) hide show
  1. package/.env +0 -15
  2. package/dist/index.d.ts +8 -0
  3. package/dist/index.js +9 -0
  4. package/dist/models/EmployeeSecurityDriveMasterModel.d.ts +13 -0
  5. package/dist/models/EmployeeSecurityDriveMasterModel.js +52 -0
  6. package/dist/models/EmployeeSecurityDriveModel.d.ts +8 -0
  7. package/dist/models/EmployeeSecurityDriveModel.js +37 -0
  8. package/dist/models/EmployeeSecurityFileAccessModel.d.ts +18 -0
  9. package/dist/models/EmployeeSecurityFileAccessModel.js +68 -0
  10. package/dist/models/EmployeeSecurityFileAuditLogModel.d.ts +9 -0
  11. package/dist/models/EmployeeSecurityFileAuditLogModel.js +44 -0
  12. package/dist/models/EmployeeSecurityFileModel.d.ts +18 -0
  13. package/dist/models/EmployeeSecurityFileModel.js +80 -0
  14. package/dist/models/EmployeeSecurityFileTypeModel.d.ts +6 -0
  15. package/dist/models/EmployeeSecurityFileTypeModel.js +32 -0
  16. package/dist/models/EmployeeSecurityFileVersionModel.d.ts +10 -0
  17. package/dist/models/EmployeeSecurityFileVersionModel.js +48 -0
  18. package/dist/models/EmployeeSecurityFolderModel.d.ts +11 -0
  19. package/dist/models/{SecurityAccessChatModel.js → EmployeeSecurityFolderModel.js} +23 -27
  20. package/migrations/add_sla_approval_mirror_columns.sql +11 -0
  21. package/package.json +1 -2
  22. package/src/index.ts +10 -0
  23. package/src/models/AccessCardRequestModel.ts +135 -135
  24. package/src/models/AirportEntryPermitModel.ts +276 -276
  25. package/src/models/AnnualTrainingPlanRequestModel.ts +153 -153
  26. package/src/models/DepartmentsModel.ts +25 -25
  27. package/src/models/DocumentDriveModel.ts +28 -28
  28. package/src/models/DocumentFolderModel.ts +45 -45
  29. package/src/models/EmployeeSecurityDriveMasterModel.ts +31 -0
  30. package/src/models/EmployeeSecurityDriveModel.ts +18 -0
  31. package/src/models/EmployeeSecurityFileAccessModel.ts +42 -0
  32. package/src/models/EmployeeSecurityFileAuditLogModel.ts +23 -0
  33. package/src/models/EmployeeSecurityFileModel.ts +50 -0
  34. package/src/models/EmployeeSecurityFileTypeModel.ts +14 -0
  35. package/src/models/EmployeeSecurityFileVersionModel.ts +26 -0
  36. package/src/models/EmployeeSecurityFolderModel.ts +29 -0
  37. package/src/models/HotelApprovalModel.ts +83 -83
  38. package/src/models/HousingContractCancelApprovalModel.ts +64 -64
  39. package/src/models/HousingContractCancelChatModel.ts +56 -56
  40. package/src/models/HousingContractRenewalApprovalModel.ts +64 -64
  41. package/src/models/HousingContractRenewalChatModel.ts +59 -59
  42. package/src/models/ITRequestAttachmentModel.ts +73 -73
  43. package/src/models/ITRequestChatModel.ts +74 -74
  44. package/src/models/ItApprovalsModel.ts +84 -84
  45. package/src/models/ItWorkflowModel.ts +55 -55
  46. package/src/models/LegalConsultationApprovalModel.ts +65 -65
  47. package/src/models/MissionTravelPassportExpiryNotificationConfigModel.ts +36 -36
  48. package/src/models/NotificationModel.ts +89 -89
  49. package/src/models/ResidentialUnitRentalApprovalModel.ts +143 -143
  50. package/src/models/ResidentialUnitRentalChatModel.ts +56 -56
  51. package/src/models/ResidentialUnitRentalRequestModel.ts +218 -218
  52. package/src/models/ServiceExtensionAfter60ApprovalModel.ts +87 -87
  53. package/src/models/ServicesNotificationConfigModel.ts +55 -55
  54. package/src/models/SlaRequestModel.ts +65 -65
  55. package/src/models/StudyLeaveRequestModel.ts +144 -144
  56. package/src/models/TrainingRequestModel.ts +164 -164
  57. package/src/models/TrainingRoomBookingRequestModel.ts +142 -142
  58. package/src/models/TrainingRoomNotificationConfigModel.ts +30 -30
  59. package/src/models/role.ts +34 -34
  60. package/src/models/user.ts +233 -233
  61. package/dist/models/DocumentMetadataModel.d.ts +0 -45
  62. package/dist/models/DocumentMetadataModel.js +0 -171
  63. package/dist/models/DocumentationDepartmentsModel.d.ts +0 -13
  64. package/dist/models/DocumentationDepartmentsModel.js +0 -53
  65. package/dist/models/FolderModel.d.ts +0 -16
  66. package/dist/models/FolderModel.js +0 -85
  67. package/dist/models/ImportExportMaterialModels.d.ts +0 -92
  68. package/dist/models/ImportExportMaterialModels.js +0 -307
  69. package/dist/models/PermissionModel.d.ts +0 -18
  70. package/dist/models/PermissionModel.js +0 -68
  71. package/dist/models/SecurityAccessApprovalModel.d.ts +0 -23
  72. package/dist/models/SecurityAccessApprovalModel.js +0 -82
  73. package/dist/models/SecurityAccessAttachmentModel.d.ts +0 -12
  74. package/dist/models/SecurityAccessAttachmentModel.js +0 -56
  75. package/dist/models/SecurityAccessChatModel.d.ts +0 -12
  76. package/dist/models/SecurityAccessRequestModel.d.ts +0 -25
  77. package/dist/models/SecurityAccessRequestModel.js +0 -80
  78. package/dist/models/SecurityAccessWorkflowModel.d.ts +0 -24
  79. package/dist/models/SecurityAccessWorkflowModel.js +0 -84
  80. package/dist/models/ServiceExtensionAfterAge60Models.d.ts +0 -93
  81. package/dist/models/ServiceExtensionAfterAge60Models.js +0 -312
  82. package/dist/models/UUIDBaseModel.d.ts +0 -14
  83. package/dist/models/UUIDBaseModel.js +0 -66
  84. package/dist/models/WorkingHoursExtensionModels.d.ts +0 -88
  85. package/dist/models/WorkingHoursExtensionModels.js +0 -295
@@ -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
+