@platform-modules/civil-aviation-authority 2.3.64 → 2.3.69

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 (51) hide show
  1. package/.env +17 -9
  2. package/dist/data-source.js +12 -6
  3. package/dist/index.d.ts +0 -203
  4. package/dist/index.js +0 -305
  5. package/dist/models/DepartmentDocumentOwnerModel.d.ts +10 -0
  6. package/dist/models/DepartmentDocumentOwnerModel.js +44 -0
  7. package/dist/models/DocumentAuditLogModel.d.ts +13 -0
  8. package/dist/models/DocumentAuditLogModel.js +60 -0
  9. package/dist/models/DocumentFolderModel.d.ts +14 -0
  10. package/dist/models/DocumentFolderModel.js +60 -0
  11. package/dist/models/DocumentMetadataModel.d.ts +45 -0
  12. package/dist/models/DocumentMetadataModel.js +171 -0
  13. package/dist/models/DocumentModel.d.ts +25 -0
  14. package/dist/models/DocumentModel.js +96 -0
  15. package/dist/models/DocumentPermissionModel.d.ts +11 -0
  16. package/dist/models/DocumentPermissionModel.js +52 -0
  17. package/dist/models/DocumentTypeModel.d.ts +8 -0
  18. package/dist/models/{ITServicesTypesSalalahModel.js → DocumentTypeModel.js} +19 -16
  19. package/dist/models/DocumentationDepartmentsModel.d.ts +13 -0
  20. package/dist/models/DocumentationDepartmentsModel.js +53 -0
  21. package/dist/models/FolderModel.d.ts +16 -0
  22. package/dist/models/FolderModel.js +85 -0
  23. package/dist/models/PermissionModel.d.ts +18 -0
  24. package/dist/models/PermissionModel.js +68 -0
  25. package/dist/models/UUIDBaseModel.d.ts +14 -0
  26. package/dist/models/UUIDBaseModel.js +66 -0
  27. package/package.json +1 -1
  28. package/src/data-source.ts +267 -261
  29. package/src/index.ts +0 -231
  30. package/src/models/DepartmentDocumentOwnerModel.ts +25 -0
  31. package/src/models/DepartmentsModel.ts +25 -25
  32. package/src/models/DocumentAuditLogModel.ts +38 -0
  33. package/src/models/DocumentFolderModel.ts +37 -0
  34. package/src/models/DocumentModel.ts +65 -0
  35. package/src/models/DocumentPermissionModel.ts +32 -0
  36. package/src/models/DocumentTypeModel.ts +19 -0
  37. package/src/models/HrServiceRequestModel.ts +167 -167
  38. package/src/models/ITRequestChatModel.ts +62 -62
  39. package/src/models/ItApprovalsModel.ts +84 -84
  40. package/src/models/ItWorkflowModel.ts +55 -55
  41. package/src/models/MissionTravelPassportExpiryNotificationConfigModel.ts +36 -36
  42. package/src/models/RequestForCoverageRequestModel.ts +174 -174
  43. package/src/models/ServicesNotificationConfigModel.ts +55 -55
  44. package/src/models/TrainingRoomNotificationConfigModel.ts +30 -30
  45. package/dist/models/ITApprovalSettings.d.ts +0 -7
  46. package/dist/models/ITApprovalSettings.js +0 -40
  47. package/dist/models/ITServicesTypesMuscatModel.d.ts +0 -6
  48. package/dist/models/ITServicesTypesMuscatModel.js +0 -34
  49. package/dist/models/ITServicesTypesSalalahModel.d.ts +0 -6
  50. package/dist/models/Workflows.d.ts +0 -9
  51. package/dist/models/Workflows.js +0 -31
package/src/index.ts CHANGED
@@ -1,231 +0,0 @@
1
- import { JobTransferRequestStatus } from './models/JobTransferRequestModel';
2
-
3
- export * from './models/user';
4
- export * from './models/role';
5
- export * from './models/user-sessions';
6
- export * from './models/ITHelpDeskModel';
7
- // export * from './models/ITServicesTypesSalalahModel'; // REMOVED - table no longer used
8
- // export * from './models/ITServicesTypesMuscatModel'; // REMOVED - table no longer used
9
- export * from './models/ServiceTypeModel';
10
- export * from './models/CAAServices';
11
- export * from './models/CAASubServices';
12
- // export * from './models/ITApprovalSettings'; // REMOVED - table no longer used
13
- // export * from './models/Workflows'; // REMOVED - table no longer used
14
- export * from './models/ItApprovalsModel';
15
- export * from './models/ItWorkflowModel';
16
- export * from './models/WorkflowDefinitions';
17
- export * from './models/WorkflowTask';
18
- export * from './models/DepartmentsModel';
19
- export * from './models/SectionModel';
20
- export * from './models/WorkflowHierarchy';
21
- export * from './models/WorkflowTaskNames';
22
- export * from './models/DirectorateModel';
23
- export * from './models/PositionModel';
24
- export * from './models/serviceBookmarksModel';
25
- export * from './models/contactInfoModel';
26
- export * from './models/userRolesModel';
27
- export * from './models/roleRightsModel';
28
- export * from './models/NotificationModel';
29
- export * from './models/ITRequestChatModel';
30
- export * from './models/ITRequestAttachmentModel';
31
- export * from './models/LogisticsModel';
32
- export * from './models/LogisticsForeignVehicleModel';
33
- export * from './models/LogisticsForeignVehiclePassengerModel';
34
- export * from './models/LogisticsApprovalModel';
35
- export * from './models/LogisticsChatModel';
36
- export * from './models/LogisticsAttachmentModel';
37
- export * from './models/importantLinksModel';
38
- export * from './models/LogisticsWorkflowModel';
39
- export * from './models/LogisticsVehicleMaintenanceRequestModel';
40
- export * from './models/LogisticsVehicleMaintenanceApprovalModel';
41
- export * from './models/LogisticsVehicleMaintenanceAttachmentModel';
42
- export * from './models/LogisticsVehicleMaintenanceChatModel';
43
- export * from './models/LogisticsVehicleMaintenanceWorkflowModel';
44
- export { VehicleMaintenanceType, VehicleMaintenanceStatus } from './models/LogisticsVehicleMaintenanceRequestModel';
45
- export { LogisticsVehicleMaintenanceApprovalStatus } from './models/LogisticsVehicleMaintenanceApprovalModel';
46
- export { LogisticsVehicleMaintenanceMessageType } from './models/LogisticsVehicleMaintenanceChatModel';
47
- export { LogisticsVehicleMaintenanceWorkFlowStatus } from './models/LogisticsVehicleMaintenanceWorkflowModel';
48
- export * from './models/AccessCardRequestModel';
49
- export * from './models/AccessCardApprovalModel';
50
- export * from './models/AccessCardAttachmentModel';
51
- export * from './models/AccessCardChatModel';
52
- export * from './models/AccessCardWorkflowModel';
53
- export * from './models/DelegateSettingsModel';
54
- export * from './models/feedbackModel';
55
- export * from './models/PortalFeedbackModel';
56
- export * from './models/VpnRequestModel';
57
- export * from './models/VpnApprovalModel';
58
- export * from './models/VpnWorkflowModel';
59
- export * from './models/VpnRequestChatModel';
60
- export * from './models/VpnRequestAttachmentModel';
61
- export * from './models/HotelreservationModel';
62
- export * from './models/HotelApprovalModel';
63
- export * from './models/HotelWorkFlowModel';
64
- export * from './models/HotelChatModel';
65
- export * from './models/HotelAttachedModel';
66
- export * from './models/SecurityThreatRequestModel';
67
- export * from './models/SecurityThreatApprovalModel';
68
- export * from './models/SecurityThreatAttachmentModel';
69
- export * from './models/SecurityThreatChatModel';
70
- export * from './models/SecurityThreatWorkflowModel';
71
- export * from './models/SecurityAwarenessRequestModel';
72
- export * from './models/SecurityAwarenessApprovalModel';
73
- export * from './models/SecurityAwarenessAttachmentModel';
74
- export * from './models/SecurityAwarenessChatModel';
75
- export * from './models/SecurityAwarenessWorkflowModel';
76
- export * from './models/AirportEntryPermitModel';
77
- export * from './models/AirportEntryPermitApprovalModel';
78
- export * from './models/AirportEntryPermitWorkflowModel';
79
- export * from './models/AirportEntryPermitChatModel';
80
- export * from './models/AirportEntryPermitAttachmentModel';
81
- export * from './models/GroupNamesModel';
82
- export * from './models/GroupModel';
83
- export * from './models/HrServiceRequestModel';
84
- export * from './models/HrServiceApprovalModel';
85
- export * from './models/HrServiceWorkflowModel';
86
- export * from './models/HrServiceAttachmentModel';
87
- export * from './models/HrServiceChatModel';
88
- export * from './models/TrainingRequestModel';
89
- export * from './models/TrainingWorkflowModel';
90
- export * from './models/TrainingApprovalModel';
91
- export * from './models/TrainingChatModel';
92
- export * from './models/TrainingAttachmentModel';
93
- export * from './models/StudyLeaveRequestModel';
94
- export * from './models/StudyLeaveWorkflowModel';
95
- export * from './models/StudyLeaveApprovalModel';
96
- export * from './models/StudyLeaveChatModel';
97
- export * from './models/StudyLeaveAttachmentModel';
98
- export {HrServiceRequestStatus} from './models/HrServiceRequestModel';
99
- export {HrServiceApprovalStatus} from './models/HrServiceApprovalModel';
100
- export {HrServiceWorkFlowStatus} from './models/HrServiceWorkflowModel';
101
- export {HrServiceRequestAttachment} from './models/HrServiceAttachmentModel';
102
- export {HrServiceRequestChat} from './models/HrServiceChatModel';
103
- export {HrServiceMessageType} from './models/HrServiceChatModel';
104
- export {HrServiceChatStatus} from './models/HrServiceChatModel';
105
- export {TrainingRequestStatus} from './models/TrainingRequestModel';
106
- export {TrainingApprovalStatus} from './models/TrainingApprovalModel';
107
- export {TrainingWorkFlowStatus} from './models/TrainingWorkflowModel';
108
- export {TrainingRequestAttachment} from './models/TrainingAttachmentModel';
109
- export {TrainingRequestChat} from './models/TrainingChatModel';
110
- export {TrainingMessageType} from './models/TrainingChatModel';
111
- export {StudyLeaveRequestStatus} from './models/StudyLeaveRequestModel';
112
- export {StudyLeaveApprovalStatus} from './models/StudyLeaveApprovalModel';
113
- export {StudyLeaveWorkFlowStatus} from './models/StudyLeaveWorkflowModel';
114
- export {StudyLeaveRequestAttachment} from './models/StudyLeaveAttachmentModel';
115
- export {StudyLeaveRequestChat} from './models/StudyLeaveChatModel';
116
- export {StudyLeaveMessageType} from './models/StudyLeaveChatModel';
117
- export {StudyLeaveChatStatus} from './models/StudyLeaveChatModel';
118
- export * from './models/AnnualTrainingPlanRequestModel';
119
- export * from './models/AnnualTrainingPlanWorkflowModel';
120
- export * from './models/AnnualTrainingPlanApprovalModel';
121
- export * from './models/AnnualTrainingPlanChatModel';
122
- export * from './models/AnnualTrainingPlanAttachmentModel';
123
- export {AnnualTrainingPlanRequestStatus, AnnualTrainingPlanPlace} from './models/AnnualTrainingPlanRequestModel';
124
- export {AnnualTrainingPlanApprovalStatus} from './models/AnnualTrainingPlanApprovalModel';
125
- export {AnnualTrainingPlanWorkFlowStatus} from './models/AnnualTrainingPlanWorkflowModel';
126
- export {AnnualTrainingPlanRequestAttachment} from './models/AnnualTrainingPlanAttachmentModel';
127
- export {AnnualTrainingPlanRequestChat} from './models/AnnualTrainingPlanChatModel';
128
- export {AnnualTrainingPlanMessageType} from './models/AnnualTrainingPlanChatModel';
129
- export {AnnualTrainingPlanChatStatus} from './models/AnnualTrainingPlanChatModel';
130
- export * from './models/TrainingRoomBookingRequestModel';
131
- export * from './models/TrainingRoomBookingWorkflowModel';
132
- export * from './models/TrainingRoomBookingApprovalModel';
133
- export * from './models/TrainingRoomBookingChatModel';
134
- export * from './models/TrainingRoomBookingAttachmentModel';
135
- export {TrainingRoomBookingRequestStatus, TrainingRoomBookingRoomType} from './models/TrainingRoomBookingRequestModel';
136
- export {TrainingRoomBookingApprovalStatus} from './models/TrainingRoomBookingApprovalModel';
137
- export {TrainingRoomBookingWorkFlowStatus} from './models/TrainingRoomBookingWorkflowModel';
138
- export {TrainingRoomBookingRequestAttachment} from './models/TrainingRoomBookingAttachmentModel';
139
- export {TrainingRoomBookingRequestChat} from './models/TrainingRoomBookingChatModel';
140
- export {TrainingRoomBookingMessageType} from './models/TrainingRoomBookingChatModel';
141
- export {TrainingRoomBookingChatStatus} from './models/TrainingRoomBookingChatModel';
142
- export * from './models/SecondmentRequestModel';
143
- export {SecondmentRequestStatus} from './models/SecondmentRequestModel';
144
- export * from './models/TemporaryAssignmentRequestModel';
145
- export {TemporaryAssignmentRequestStatus, TemporaryAssignmentRequestType} from './models/TemporaryAssignmentRequestModel';
146
- export * from './models/ServiceTransferRequestModel';
147
- export {ServiceTransferRequestStatus, SalaryDetailsType, ServiceTransferRequestType} from './models/ServiceTransferRequestModel';
148
- export * from './models/DutyMissionRequestModel';
149
- export * from './models/DutyMissionApprovalModel';
150
- export * from './models/DutyMissionWorkflowModel';
151
- export * from './models/DutyMissionAttachmentModel';
152
- export * from './models/DutyMissionChatModel';
153
- export * from './models/DutyMissionEmployeeDetailsModel';
154
- export * from './models/DutyMissionAirTicketDetailsModel';
155
- export * from './models/RequestForCoverageRequestModel';
156
- export * from './models/RequestForCoverageWorkflowModel';
157
- export * from './models/RequestForCoverageApprovalModel';
158
- export * from './models/RequestForCoverageChatModel';
159
- export * from './models/RequestForCoverageAttachmentModel';
160
- export {RequestForCoverageRequestStatus, RequestForCoverageNewsSize} from './models/RequestForCoverageRequestModel';
161
- export {RequestForCoverageWorkFlowStatus} from './models/RequestForCoverageWorkflowModel';
162
- export {RequestForCoverageApprovalStatus} from './models/RequestForCoverageApprovalModel';
163
- export {RequestForCoverageRequestChat} from './models/RequestForCoverageChatModel';
164
- export {RequestForCoverageMessageType, RequestForCoverageChatStatus} from './models/RequestForCoverageChatModel';
165
- export {RequestForCoverageRequestAttachment} from './models/RequestForCoverageAttachmentModel';
166
- export * from './models/DutyMissionRequestModel';
167
- export * from './models/DutyMissionApprovalModel';
168
- export * from './models/DutyMissionWorkflowModel';
169
- export * from './models/DutyMissionAttachmentModel';
170
- export * from './models/DutyMissionChatModel';
171
- export * from './models/DutyMissionChatModel';
172
- export * from './models/DutyMissionEmployeeDetailsModel';
173
- export * from './models/DutyMissionAirTicketDetailsModel';
174
- export * from './models/RequestForCoverageRequestModel';
175
- export * from './models/RequestForCoverageWorkflowModel';
176
- export * from './models/RequestForCoverageApprovalModel';
177
- export * from './models/RequestForCoverageChatModel';
178
- export * from './models/RequestForCoverageAttachmentModel';
179
- export * from './models/AssignTasksEmpRequestModel';
180
- export * from './models/AssignTasksEmpApprovalModel';
181
- export * from './models/AssignTasksEmpWorkflowModel';
182
- export * from './models/AssignTasksEmpAttachmentModel';
183
- export * from './models/AssignTasksEmpChatModel';
184
- export {AssignTasksEmpStatus, AssignTasksEmpPriority} from './models/AssignTasksEmpRequestModel';
185
- export {AssignTasksEmpApprovalStatus} from './models/AssignTasksEmpApprovalModel';
186
- export {AssignTasksEmpWorkFlowStatus} from './models/AssignTasksEmpWorkflowModel';
187
- export {AssignTasksEmpRequestAttachment} from './models/AssignTasksEmpAttachmentModel';
188
- export {AssignTasksEmpRequestChat} from './models/AssignTasksEmpChatModel';
189
- export {AssignTasksEmpMessageType} from './models/AssignTasksEmpChatModel';
190
-
191
- export * from './models/ShiftAllowanceRequestModel';
192
- export {ShiftAllowanceRequestStatus, ShiftAllowanceValue} from './models/ShiftAllowanceRequestModel';
193
-
194
- // Job Transfer (Transfer from One Job to Another Job Nature) Service
195
- export * from './models/JobTransferRequestModel';
196
- export {JobTransferRequestStatus} from './models/JobTransferRequestModel';
197
-
198
- // New Resource (Request for New Resource) Service
199
- export * from './models/NewResourceRequestModel';
200
- export {NewResourceRequestStatus} from './models/NewResourceRequestModel';
201
-
202
- // Country Master
203
- export * from './models/CountryMasterModel';
204
-
205
- // Location Master
206
- export * from './models/LocationModel';
207
-
208
- // Nationality Master
209
- export * from './models/NationalityMasterModel';
210
-
211
- // Services Notification Configuration
212
- export * from './models/ServicesNotificationConfigModel';
213
- export { ServicesNotificationTriggerType } from './models/ServicesNotificationConfigModel';
214
-
215
- // Training Room Notification Configuration (deprecated - use ServicesNotificationConfigModel)
216
- export * from './models/TrainingRoomNotificationConfigModel';
217
- export {NotificationFrequency} from './models/TrainingRoomNotificationConfigModel';
218
-
219
- // Mission Travel Passport Expiry Notification Configuration
220
- export * from './models/MissionTravelPassportExpiryNotificationConfigModel';
221
-
222
- export * from './models/CashAllowanceLeaveRequestModel'
223
- export { CashAllowanceLeaveRequestStatus } from './models/CashAllowanceLeaveRequestModel'
224
-
225
- // Promotion Request Service
226
- export * from './models/PromotionRequestModel';
227
- export { PromotionRequestStatus } from './models/PromotionRequestModel';
228
-
229
- // Annual Increment (Periodic Allowance) Request Service
230
- export * from './models/AnnualIncrementRequestModel';
231
- export { AnnualIncrementRequestStatus } from './models/AnnualIncrementRequestModel';
@@ -0,0 +1,25 @@
1
+ import { Column, Entity, ManyToOne, JoinColumn } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+ import { Departments } from './DepartmentsModel';
4
+ import { User } from './user';
5
+
6
+ @Entity({ name: 'department_document_owners' })
7
+ export class DepartmentDocumentOwner extends BaseModel {
8
+
9
+ @Column({ type: 'integer', nullable: false, unique: true })
10
+ department_id: number;
11
+
12
+ @Column({ type: 'integer', nullable: false })
13
+ user_id: number;
14
+
15
+ @Column({ type: 'boolean', nullable: false, default: true })
16
+ is_active: boolean;
17
+
18
+ @ManyToOne(() => Departments)
19
+ @JoinColumn({ name: 'department_id' })
20
+ department?: Departments;
21
+
22
+ @ManyToOne(() => User)
23
+ @JoinColumn({ name: 'user_id' })
24
+ user?: User;
25
+ }
@@ -1,26 +1,26 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- @Entity({ name: 'departments' })
5
- export class Departments extends BaseModel {
6
-
7
- @Column({ type: 'varchar', length: 64, nullable: false})
8
- department_name: string;
9
-
10
- @Column({ type: 'varchar', length: 64, nullable: false})
11
- department_code: string;
12
-
13
- @Column({ nullable: false })
14
- department_description: string;
15
-
16
- constructor(
17
- department_name: string,
18
- department_code: string,
19
- department_description: string,
20
- ) {
21
- super();
22
- this.department_name = department_name
23
- this.department_code = department_code
24
- this.department_description = department_description
25
- }
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ @Entity({ name: 'departments' })
5
+ export class Departments extends BaseModel {
6
+
7
+ @Column({ type: 'varchar', length: 64, nullable: false})
8
+ department_name: string;
9
+
10
+ @Column({ type: 'varchar', length: 64, nullable: false})
11
+ department_code: string;
12
+
13
+ @Column({ nullable: false })
14
+ department_description: string;
15
+
16
+ constructor(
17
+ department_name: string,
18
+ department_code: string,
19
+ department_description: string,
20
+ ) {
21
+ super();
22
+ this.department_name = department_name
23
+ this.department_code = department_code
24
+ this.department_description = department_description
25
+ }
26
26
  }
@@ -0,0 +1,38 @@
1
+ import { Column, Entity, ManyToOne, JoinColumn } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+ import { User } from './user';
4
+ import { Document } from './DocumentModel';
5
+
6
+ @Entity({ name: 'document_audit_logs' })
7
+ export class DocumentAuditLog extends BaseModel {
8
+
9
+ @Column({ type: 'integer', nullable: false })
10
+ document_id: number;
11
+
12
+ @Column({ type: 'integer', nullable: false })
13
+ user_id: number;
14
+
15
+ @Column({
16
+ type: 'varchar',
17
+ length: 50,
18
+ nullable: false
19
+ })
20
+ action_type: string;
21
+
22
+ @Column({ type: 'jsonb', nullable: true })
23
+ action_details?: any;
24
+
25
+ @Column({ type: 'varchar', length: 45, nullable: true })
26
+ ip_address?: string;
27
+
28
+ @Column({ type: 'text', nullable: true })
29
+ user_agent?: string;
30
+
31
+ @ManyToOne(() => Document)
32
+ @JoinColumn({ name: 'document_id' })
33
+ document?: Document;
34
+
35
+ @ManyToOne(() => User)
36
+ @JoinColumn({ name: 'user_id' })
37
+ user?: User;
38
+ }
@@ -0,0 +1,37 @@
1
+ import { Column, Entity, ManyToOne, JoinColumn, OneToMany } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+ import { Departments } from './DepartmentsModel';
4
+ import { Document } from './DocumentModel';
5
+
6
+ @Entity({ name: 'document_folders' })
7
+ export class DocumentFolder extends BaseModel {
8
+
9
+ @Column({ type: 'varchar', length: 100, nullable: false })
10
+ name: string;
11
+
12
+ @Column({ type: 'integer', nullable: false })
13
+ department_id: number;
14
+
15
+ @Column({ type: 'integer', nullable: true })
16
+ parent_folder_id?: number;
17
+
18
+ @Column({ type: 'text', nullable: true })
19
+ description?: string;
20
+
21
+ @Column({ type: 'boolean', nullable: false, default: true })
22
+ is_active: boolean;
23
+
24
+ @ManyToOne(() => Departments)
25
+ @JoinColumn({ name: 'department_id' })
26
+ department?: Departments;
27
+
28
+ @ManyToOne(() => DocumentFolder, { nullable: true })
29
+ @JoinColumn({ name: 'parent_folder_id' })
30
+ parentFolder?: DocumentFolder;
31
+
32
+ @OneToMany(() => DocumentFolder, folder => folder.parentFolder)
33
+ subFolders?: DocumentFolder[];
34
+
35
+ @OneToMany(() => Document, document => document.folder)
36
+ documents?: Document[];
37
+ }
@@ -0,0 +1,65 @@
1
+ import { Column, Entity, ManyToOne, JoinColumn, OneToMany } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+ import { Departments } from './DepartmentsModel';
4
+ import { DocumentFolder } from './DocumentFolderModel';
5
+ import { DocumentType } from './DocumentTypeModel';
6
+ import { DocumentPermission } from './DocumentPermissionModel';
7
+ import { DocumentAuditLog } from './DocumentAuditLogModel';
8
+
9
+ @Entity({ name: 'documents' })
10
+ export class Document extends BaseModel {
11
+
12
+ @Column({ type: 'varchar', length: 200, nullable: false })
13
+ title: string;
14
+
15
+ @Column({ type: 'integer', nullable: false })
16
+ department_id: number;
17
+
18
+ @Column({ type: 'integer', nullable: false })
19
+ document_type_id: number;
20
+
21
+ @Column({ type: 'integer', nullable: true })
22
+ folder_id?: number;
23
+
24
+ @Column({ type: 'varchar', length: 255, nullable: false })
25
+ mongodb_file_id: string;
26
+
27
+ @Column({ type: 'varchar', length: 255, nullable: false })
28
+ file_name: string;
29
+
30
+ @Column({ type: 'bigint', nullable: false })
31
+ file_size: number;
32
+
33
+ @Column({ type: 'varchar', length: 100, nullable: true })
34
+ file_type?: string;
35
+
36
+ @Column({ type: 'integer', nullable: false, default: 1 })
37
+ version: number;
38
+
39
+ @Column({ type: 'text', nullable: true })
40
+ description?: string;
41
+
42
+ @Column({ type: 'boolean', nullable: false, default: false })
43
+ is_sensitive: boolean;
44
+
45
+ @Column({ type: 'boolean', nullable: false, default: true })
46
+ is_active: boolean;
47
+
48
+ @ManyToOne(() => Departments)
49
+ @JoinColumn({ name: 'department_id' })
50
+ department?: Departments;
51
+
52
+ @ManyToOne(() => DocumentType)
53
+ @JoinColumn({ name: 'document_type_id' })
54
+ documentType?: DocumentType;
55
+
56
+ @ManyToOne(() => DocumentFolder, { nullable: true })
57
+ @JoinColumn({ name: 'folder_id' })
58
+ folder?: DocumentFolder;
59
+
60
+ @OneToMany(() => DocumentPermission, permission => permission.document)
61
+ permissions?: DocumentPermission[];
62
+
63
+ @OneToMany(() => DocumentAuditLog, log => log.document)
64
+ auditLogs?: DocumentAuditLog[];
65
+ }
@@ -0,0 +1,32 @@
1
+ import { Column, Entity, ManyToOne, JoinColumn } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+ import { Role } from './role';
4
+ import { Document } from './DocumentModel';
5
+
6
+ @Entity({ name: 'document_permissions' })
7
+ export class DocumentPermission extends BaseModel {
8
+
9
+ @Column({ type: 'integer', nullable: false })
10
+ document_id: number;
11
+
12
+ @Column({ type: 'integer', nullable: false })
13
+ role_id: number;
14
+
15
+ @Column({
16
+ type: 'varchar',
17
+ length: 50,
18
+ nullable: false
19
+ })
20
+ permission_type: string;
21
+
22
+ @Column({ type: 'boolean', nullable: false, default: true })
23
+ is_active: boolean;
24
+
25
+ @ManyToOne(() => Document)
26
+ @JoinColumn({ name: 'document_id' })
27
+ document?: Document;
28
+
29
+ @ManyToOne(() => Role)
30
+ @JoinColumn({ name: 'role_id' })
31
+ role?: Role;
32
+ }
@@ -0,0 +1,19 @@
1
+ import { Column, Entity, OneToMany } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+ import { Document } from './DocumentModel';
4
+
5
+ @Entity({ name: 'document_types' })
6
+ export class DocumentType extends BaseModel {
7
+
8
+ @Column({ type: 'varchar', length: 100, nullable: false, unique: true })
9
+ name: string;
10
+
11
+ @Column({ type: 'text', nullable: true })
12
+ description?: string;
13
+
14
+ @Column({ type: 'boolean', nullable: false, default: true })
15
+ is_active: boolean;
16
+
17
+ @OneToMany(() => Document, document => document.documentType)
18
+ documents?: Document[];
19
+ }