@platform-modules/civil-aviation-authority 2.3.152 → 2.3.155

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 (31) hide show
  1. package/.env +8 -0
  2. package/dist/models/DocumentMetadataModel.d.ts +45 -0
  3. package/dist/models/DocumentMetadataModel.js +171 -0
  4. package/dist/models/DocumentationDepartmentsModel.d.ts +13 -0
  5. package/dist/models/DocumentationDepartmentsModel.js +53 -0
  6. package/dist/models/FolderModel.d.ts +16 -0
  7. package/dist/models/FolderModel.js +85 -0
  8. package/dist/models/LegalComplaintRequestModel.d.ts +101 -6
  9. package/dist/models/LegalComplaintRequestModel.js +257 -5
  10. package/dist/models/PermissionModel.d.ts +18 -0
  11. package/dist/models/PermissionModel.js +68 -0
  12. package/dist/models/UUIDBaseModel.d.ts +14 -0
  13. package/dist/models/UUIDBaseModel.js +66 -0
  14. package/package.json +1 -1
  15. package/src/models/AnnualTrainingPlanRequestModel.ts +153 -153
  16. package/src/models/DepartmentsModel.ts +25 -25
  17. package/src/models/DocumentDriveModel.ts +28 -28
  18. package/src/models/DocumentFolderModel.ts +45 -45
  19. package/src/models/HousingContractCancelChatModel.ts +56 -56
  20. package/src/models/HousingContractRenewalChatModel.ts +59 -59
  21. package/src/models/ITRequestChatModel.ts +62 -62
  22. package/src/models/ItApprovalsModel.ts +84 -84
  23. package/src/models/ItWorkflowModel.ts +55 -55
  24. package/src/models/LegalComplaintRequestModel.ts +322 -8
  25. package/src/models/MissionTravelPassportExpiryNotificationConfigModel.ts +36 -36
  26. package/src/models/ResidentialUnitRentalChatModel.ts +56 -56
  27. package/src/models/ResidentialUnitRentalRequestModel.ts +218 -218
  28. package/src/models/ServicesNotificationConfigModel.ts +55 -55
  29. package/src/models/StudyLeaveRequestModel.ts +144 -144
  30. package/src/models/TrainingRoomBookingRequestModel.ts +142 -142
  31. package/src/models/TrainingRoomNotificationConfigModel.ts +30 -30
package/.env CHANGED
@@ -4,6 +4,14 @@ DB_USER=postgres_admin_user
4
4
  DB_PASS=pg_admin_user_pwd_caa_fa_$%^&OIukhjgcvbn
5
5
  DB_NAME=CAA
6
6
 
7
+ # DB_HOST=216.48.187.46
8
+ # DB_PORT=5432
9
+ # DB_USER=adminuser
10
+ # DB_PASS=postgres_caa_fm_qa_34567
11
+ # DB_NAME=CAA_QA
12
+
13
+
14
+
7
15
 
8
16
  # DB_HOST=localhost
9
17
  # DB_PORT=5432
@@ -0,0 +1,45 @@
1
+ import { Departments } from './DepartmentsModel';
2
+ import { UUIDBaseModel } from './UUIDBaseModel';
3
+ export declare enum DocumentType {
4
+ POLICY = "policy",
5
+ PROCEDURE = "procedure",
6
+ MANUAL = "manual",
7
+ TEMPLATE = "template",
8
+ REPORT = "report"
9
+ }
10
+ export declare enum DocumentStatus {
11
+ ACTIVE = "active",
12
+ ARCHIVED = "archived",
13
+ DRAFT = "draft"
14
+ }
15
+ export declare enum AccessLevel {
16
+ GENERAL = "general",
17
+ RESTRICTED = "restricted"
18
+ }
19
+ export declare class DocumentMetadata extends UUIDBaseModel {
20
+ title: string;
21
+ description?: string;
22
+ original_name: string;
23
+ mime_type: string;
24
+ size: number;
25
+ mongodb_file_id: string;
26
+ document_type: DocumentType;
27
+ access_level: AccessLevel;
28
+ status: DocumentStatus;
29
+ version: string;
30
+ tags: string[];
31
+ is_sensitive: boolean;
32
+ department: Departments;
33
+ department_id: number;
34
+ folder_id?: string | null;
35
+ folder_path: string;
36
+ uploaded_by: string;
37
+ uploaded_by_name?: string;
38
+ authorized_person?: string;
39
+ allowed_roles: string[];
40
+ allowed_users: string[];
41
+ download_count: number;
42
+ last_accessed_at?: Date;
43
+ metadata?: Record<string, any>;
44
+ constructor(title: string, original_name: string, mime_type: string, size: number, mongodb_file_id: string, document_type: DocumentType, department_id: number, uploaded_by: string, access_level?: AccessLevel, status?: DocumentStatus, version?: string, folder_path?: string, created_by?: string, description?: string, folder_id?: string | null, uploaded_by_name?: string, authorized_person?: string, tags?: string[], allowed_roles?: string[], allowed_users?: string[], is_sensitive?: boolean, download_count?: number, last_accessed_at?: Date, metadata?: Record<string, any>);
45
+ }
@@ -0,0 +1,171 @@
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.DocumentMetadata = exports.AccessLevel = exports.DocumentStatus = exports.DocumentType = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const DepartmentsModel_1 = require("./DepartmentsModel");
15
+ const UUIDBaseModel_1 = require("./UUIDBaseModel");
16
+ var DocumentType;
17
+ (function (DocumentType) {
18
+ DocumentType["POLICY"] = "policy";
19
+ DocumentType["PROCEDURE"] = "procedure";
20
+ DocumentType["MANUAL"] = "manual";
21
+ DocumentType["TEMPLATE"] = "template";
22
+ DocumentType["REPORT"] = "report";
23
+ })(DocumentType || (exports.DocumentType = DocumentType = {}));
24
+ var DocumentStatus;
25
+ (function (DocumentStatus) {
26
+ DocumentStatus["ACTIVE"] = "active";
27
+ DocumentStatus["ARCHIVED"] = "archived";
28
+ DocumentStatus["DRAFT"] = "draft";
29
+ })(DocumentStatus || (exports.DocumentStatus = DocumentStatus = {}));
30
+ var AccessLevel;
31
+ (function (AccessLevel) {
32
+ AccessLevel["GENERAL"] = "general";
33
+ AccessLevel["RESTRICTED"] = "restricted";
34
+ })(AccessLevel || (exports.AccessLevel = AccessLevel = {}));
35
+ let DocumentMetadata = class DocumentMetadata extends UUIDBaseModel_1.UUIDBaseModel {
36
+ constructor(title, original_name, mime_type, size, mongodb_file_id, document_type, department_id, uploaded_by, access_level = AccessLevel.GENERAL, status = DocumentStatus.ACTIVE, version = '1.0.0', folder_path = '/', created_by, description, folder_id, uploaded_by_name, authorized_person, tags, allowed_roles, allowed_users, is_sensitive = false, download_count = 0, last_accessed_at, metadata) {
37
+ super();
38
+ this.title = title;
39
+ this.original_name = original_name;
40
+ this.mime_type = mime_type;
41
+ this.size = size;
42
+ this.mongodb_file_id = mongodb_file_id;
43
+ this.document_type = document_type;
44
+ this.department_id = department_id;
45
+ this.uploaded_by = uploaded_by;
46
+ this.access_level = access_level;
47
+ this.status = status;
48
+ this.version = version;
49
+ this.folder_path = folder_path;
50
+ this.description = description;
51
+ this.folder_id = folder_id;
52
+ this.uploaded_by_name = uploaded_by_name;
53
+ this.authorized_person = authorized_person;
54
+ this.tags = tags || [];
55
+ this.allowed_roles = allowed_roles || [];
56
+ this.allowed_users = allowed_users || [];
57
+ this.is_sensitive = is_sensitive;
58
+ this.download_count = download_count;
59
+ this.last_accessed_at = last_accessed_at;
60
+ this.metadata = metadata;
61
+ if (created_by) {
62
+ this.created_by = created_by;
63
+ }
64
+ }
65
+ };
66
+ exports.DocumentMetadata = DocumentMetadata;
67
+ __decorate([
68
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500 }),
69
+ (0, typeorm_1.Index)(),
70
+ __metadata("design:type", String)
71
+ ], DocumentMetadata.prototype, "title", void 0);
72
+ __decorate([
73
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
74
+ __metadata("design:type", String)
75
+ ], DocumentMetadata.prototype, "description", void 0);
76
+ __decorate([
77
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255 }),
78
+ __metadata("design:type", String)
79
+ ], DocumentMetadata.prototype, "original_name", void 0);
80
+ __decorate([
81
+ (0, typeorm_1.Column)({ type: 'varchar', length: 100 }),
82
+ __metadata("design:type", String)
83
+ ], DocumentMetadata.prototype, "mime_type", void 0);
84
+ __decorate([
85
+ (0, typeorm_1.Column)({ type: 'bigint' }),
86
+ __metadata("design:type", Number)
87
+ ], DocumentMetadata.prototype, "size", void 0);
88
+ __decorate([
89
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, unique: true }),
90
+ __metadata("design:type", String)
91
+ ], DocumentMetadata.prototype, "mongodb_file_id", void 0);
92
+ __decorate([
93
+ (0, typeorm_1.Column)({ type: 'enum', enum: DocumentType }),
94
+ (0, typeorm_1.Index)(),
95
+ __metadata("design:type", String)
96
+ ], DocumentMetadata.prototype, "document_type", void 0);
97
+ __decorate([
98
+ (0, typeorm_1.Column)({ type: 'enum', enum: AccessLevel, default: AccessLevel.GENERAL }),
99
+ (0, typeorm_1.Index)(),
100
+ __metadata("design:type", String)
101
+ ], DocumentMetadata.prototype, "access_level", void 0);
102
+ __decorate([
103
+ (0, typeorm_1.Column)({ type: 'enum', enum: DocumentStatus, default: DocumentStatus.ACTIVE }),
104
+ (0, typeorm_1.Index)(),
105
+ __metadata("design:type", String)
106
+ ], DocumentMetadata.prototype, "status", void 0);
107
+ __decorate([
108
+ (0, typeorm_1.Column)({ type: 'varchar', length: 50, default: '1.0.0' }),
109
+ __metadata("design:type", String)
110
+ ], DocumentMetadata.prototype, "version", void 0);
111
+ __decorate([
112
+ (0, typeorm_1.Column)({ type: 'text', array: true, default: [] }),
113
+ __metadata("design:type", Array)
114
+ ], DocumentMetadata.prototype, "tags", void 0);
115
+ __decorate([
116
+ (0, typeorm_1.Column)({ type: 'boolean', default: false }),
117
+ __metadata("design:type", Boolean)
118
+ ], DocumentMetadata.prototype, "is_sensitive", void 0);
119
+ __decorate([
120
+ (0, typeorm_1.ManyToOne)('Departments', { eager: true }),
121
+ (0, typeorm_1.JoinColumn)({ name: 'department_id' }),
122
+ __metadata("design:type", DepartmentsModel_1.Departments)
123
+ ], DocumentMetadata.prototype, "department", void 0);
124
+ __decorate([
125
+ (0, typeorm_1.Column)({ type: 'integer' }),
126
+ __metadata("design:type", Number)
127
+ ], DocumentMetadata.prototype, "department_id", void 0);
128
+ __decorate([
129
+ (0, typeorm_1.Column)({ type: 'uuid', nullable: true }),
130
+ __metadata("design:type", Object)
131
+ ], DocumentMetadata.prototype, "folder_id", void 0);
132
+ __decorate([
133
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, default: '/' }),
134
+ __metadata("design:type", String)
135
+ ], DocumentMetadata.prototype, "folder_path", void 0);
136
+ __decorate([
137
+ (0, typeorm_1.Column)({ type: 'uuid' }),
138
+ __metadata("design:type", String)
139
+ ], DocumentMetadata.prototype, "uploaded_by", void 0);
140
+ __decorate([
141
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
142
+ __metadata("design:type", String)
143
+ ], DocumentMetadata.prototype, "uploaded_by_name", void 0);
144
+ __decorate([
145
+ (0, typeorm_1.Column)({ type: 'uuid', nullable: true }),
146
+ __metadata("design:type", String)
147
+ ], DocumentMetadata.prototype, "authorized_person", void 0);
148
+ __decorate([
149
+ (0, typeorm_1.Column)({ type: 'text', array: true, default: [] }),
150
+ __metadata("design:type", Array)
151
+ ], DocumentMetadata.prototype, "allowed_roles", void 0);
152
+ __decorate([
153
+ (0, typeorm_1.Column)({ type: 'text', array: true, default: [] }),
154
+ __metadata("design:type", Array)
155
+ ], DocumentMetadata.prototype, "allowed_users", void 0);
156
+ __decorate([
157
+ (0, typeorm_1.Column)({ type: 'int', default: 0 }),
158
+ __metadata("design:type", Number)
159
+ ], DocumentMetadata.prototype, "download_count", void 0);
160
+ __decorate([
161
+ (0, typeorm_1.Column)({ type: 'timestamp', nullable: true }),
162
+ __metadata("design:type", Date)
163
+ ], DocumentMetadata.prototype, "last_accessed_at", void 0);
164
+ __decorate([
165
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
166
+ __metadata("design:type", Object)
167
+ ], DocumentMetadata.prototype, "metadata", void 0);
168
+ exports.DocumentMetadata = DocumentMetadata = __decorate([
169
+ (0, typeorm_1.Entity)({ name: 'document_metadata' }),
170
+ __metadata("design:paramtypes", [String, String, String, Number, String, String, Number, String, String, String, String, String, String, String, Object, String, String, Array, Array, Array, Boolean, Number, Date, Object])
171
+ ], DocumentMetadata);
@@ -0,0 +1,13 @@
1
+ import { BaseModel } from './BaseModel';
2
+ /**
3
+ * Documentation Service specific department configuration
4
+ * Links departments with authorized persons for document management
5
+ */
6
+ export declare class DocumentationDepartments extends BaseModel {
7
+ department_id: number;
8
+ authorized_person_id: string;
9
+ authorized_person_name?: string;
10
+ authorized_person_email?: string;
11
+ is_active: boolean;
12
+ constructor(department_id: number, authorized_person_id: string, authorized_person_name: string, authorized_person_email: string, is_active?: boolean);
13
+ }
@@ -0,0 +1,53 @@
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.DocumentationDepartments = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ /**
16
+ * Documentation Service specific department configuration
17
+ * Links departments with authorized persons for document management
18
+ */
19
+ let DocumentationDepartments = class DocumentationDepartments extends BaseModel_1.BaseModel {
20
+ constructor(department_id, authorized_person_id, authorized_person_name, authorized_person_email, is_active = true) {
21
+ super();
22
+ this.department_id = department_id;
23
+ this.authorized_person_id = authorized_person_id;
24
+ this.authorized_person_name = authorized_person_name;
25
+ this.authorized_person_email = authorized_person_email;
26
+ this.is_active = is_active;
27
+ }
28
+ };
29
+ exports.DocumentationDepartments = DocumentationDepartments;
30
+ __decorate([
31
+ (0, typeorm_1.Column)({ type: 'integer' }),
32
+ __metadata("design:type", Number)
33
+ ], DocumentationDepartments.prototype, "department_id", void 0);
34
+ __decorate([
35
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255 }),
36
+ __metadata("design:type", String)
37
+ ], DocumentationDepartments.prototype, "authorized_person_id", void 0);
38
+ __decorate([
39
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
40
+ __metadata("design:type", String)
41
+ ], DocumentationDepartments.prototype, "authorized_person_name", void 0);
42
+ __decorate([
43
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
44
+ __metadata("design:type", String)
45
+ ], DocumentationDepartments.prototype, "authorized_person_email", void 0);
46
+ __decorate([
47
+ (0, typeorm_1.Column)({ type: 'boolean', default: true }),
48
+ __metadata("design:type", Boolean)
49
+ ], DocumentationDepartments.prototype, "is_active", void 0);
50
+ exports.DocumentationDepartments = DocumentationDepartments = __decorate([
51
+ (0, typeorm_1.Entity)({ name: 'documentation_departments' }),
52
+ __metadata("design:paramtypes", [Number, String, String, String, Boolean])
53
+ ], DocumentationDepartments);
@@ -0,0 +1,16 @@
1
+ import { Departments } from './DepartmentsModel';
2
+ import { UUIDBaseModel } from './UUIDBaseModel';
3
+ export declare class Folder extends UUIDBaseModel {
4
+ name: string;
5
+ path: string;
6
+ parent_path?: string;
7
+ department: Departments;
8
+ department_id: number;
9
+ description?: string;
10
+ access_level: 'general' | 'restricted';
11
+ allowed_roles: string[];
12
+ allowed_users: string[];
13
+ created_by_name?: string;
14
+ is_active: boolean;
15
+ constructor(name: string, path: string, department_id: number, created_by: string, access_level?: 'general' | 'restricted', parent_path?: string, description?: string, created_by_name?: string, allowed_roles?: string[], allowed_users?: string[], is_active?: boolean);
16
+ }
@@ -0,0 +1,85 @@
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.Folder = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const DepartmentsModel_1 = require("./DepartmentsModel");
15
+ const UUIDBaseModel_1 = require("./UUIDBaseModel");
16
+ // Note: DocumentMetadata import removed to avoid circular dependency
17
+ // Use lazy loading or query builder when needed
18
+ let Folder = class Folder extends UUIDBaseModel_1.UUIDBaseModel {
19
+ constructor(name, path, department_id, created_by, access_level = 'general', parent_path, description, created_by_name, allowed_roles, allowed_users, is_active = true) {
20
+ super();
21
+ this.name = name;
22
+ this.path = path;
23
+ this.department_id = department_id;
24
+ this.created_by = created_by;
25
+ this.access_level = access_level;
26
+ this.parent_path = parent_path;
27
+ this.description = description;
28
+ this.created_by_name = created_by_name;
29
+ this.allowed_roles = allowed_roles || [];
30
+ this.allowed_users = allowed_users || [];
31
+ this.is_active = is_active;
32
+ }
33
+ };
34
+ exports.Folder = Folder;
35
+ __decorate([
36
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255 }),
37
+ __metadata("design:type", String)
38
+ ], Folder.prototype, "name", void 0);
39
+ __decorate([
40
+ (0, typeorm_1.Column)({ type: 'varchar', length: 1000 }),
41
+ __metadata("design:type", String)
42
+ ], Folder.prototype, "path", void 0);
43
+ __decorate([
44
+ (0, typeorm_1.Column)({ type: 'varchar', length: 1000, nullable: true }),
45
+ __metadata("design:type", String)
46
+ ], Folder.prototype, "parent_path", void 0);
47
+ __decorate([
48
+ (0, typeorm_1.ManyToOne)('Departments', { eager: true }),
49
+ (0, typeorm_1.JoinColumn)({ name: 'department_id' }),
50
+ __metadata("design:type", DepartmentsModel_1.Departments)
51
+ ], Folder.prototype, "department", void 0);
52
+ __decorate([
53
+ (0, typeorm_1.Column)({ type: 'integer' }),
54
+ __metadata("design:type", Number)
55
+ ], Folder.prototype, "department_id", void 0);
56
+ __decorate([
57
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
58
+ __metadata("design:type", String)
59
+ ], Folder.prototype, "description", void 0);
60
+ __decorate([
61
+ (0, typeorm_1.Column)({ type: 'enum', enum: ['general', 'restricted'], default: 'general' }),
62
+ (0, typeorm_1.Index)(),
63
+ __metadata("design:type", String)
64
+ ], Folder.prototype, "access_level", void 0);
65
+ __decorate([
66
+ (0, typeorm_1.Column)({ type: 'text', array: true, default: [] }),
67
+ __metadata("design:type", Array)
68
+ ], Folder.prototype, "allowed_roles", void 0);
69
+ __decorate([
70
+ (0, typeorm_1.Column)({ type: 'text', array: true, default: [] }),
71
+ __metadata("design:type", Array)
72
+ ], Folder.prototype, "allowed_users", void 0);
73
+ __decorate([
74
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
75
+ __metadata("design:type", String)
76
+ ], Folder.prototype, "created_by_name", void 0);
77
+ __decorate([
78
+ (0, typeorm_1.Column)({ type: 'boolean', default: true }),
79
+ (0, typeorm_1.Index)(),
80
+ __metadata("design:type", Boolean)
81
+ ], Folder.prototype, "is_active", void 0);
82
+ exports.Folder = Folder = __decorate([
83
+ (0, typeorm_1.Entity)({ name: 'folders' }),
84
+ __metadata("design:paramtypes", [String, String, Number, String, String, String, String, String, Array, Array, Boolean])
85
+ ], Folder);
@@ -5,16 +5,111 @@ export declare enum LegalComplaintRequestStatus {
5
5
  Rejected = "Rejected",
6
6
  RFC = "RFC"
7
7
  }
8
+ /** Step 2 — Complaint details (individuals, time, incident date, location, events, other details). */
9
+ export interface LegalComplaintIncidentInput {
10
+ incident_time?: string | null;
11
+ /** Date of the incident (step 2); distinct from request `complaint_date` / `date` on the body. */
12
+ incident_date?: string | null;
13
+ incident_location?: string | null;
14
+ individuals_involved?: string | null;
15
+ /** Events / narrative (UI “Events”). */
16
+ incident_events?: string | null;
17
+ /** “Any other details related to complaint”. */
18
+ incident_other_details?: string | null;
19
+ /** Optional combined narrative; if omitted, parser may derive from events + other_details. */
20
+ incident_description?: string;
21
+ }
22
+ /** Step 3 — Complainant: Name / Position / Employee ID / Directorate / Department / Section. */
23
+ export interface LegalComplaintComplainantInput {
24
+ name: string;
25
+ position?: string | null;
26
+ employee_id?: string | null;
27
+ directorate?: string | null;
28
+ department_id?: number | null;
29
+ section_id?: number | null;
30
+ /** When UI sends department as text instead of id. */
31
+ department_name?: string | null;
32
+ section_name?: string | null;
33
+ }
34
+ /** Step 4 — Subject of complaint: Name / Position / Salary grade / Directorate / Department / Section. */
35
+ export interface LegalComplaintSubjectEmployeeInput {
36
+ name: string;
37
+ position?: string | null;
38
+ salary_grade?: string | null;
39
+ directorate?: string | null;
40
+ department_id?: number | null;
41
+ section_id?: number | null;
42
+ department_name?: string | null;
43
+ section_name?: string | null;
44
+ }
45
+ export interface LegalComplaintStructuredCreateFields {
46
+ incident_time: string | null;
47
+ incident_date: string | null;
48
+ incident_location: string | null;
49
+ individuals_involved: string | null;
50
+ incident_events: string | null;
51
+ incident_other_details: string | null;
52
+ incident_description: string;
53
+ complainant_name: string;
54
+ complainant_position: string | null;
55
+ complainant_employee_id: string | null;
56
+ complainant_directorate: string | null;
57
+ complainant_department_id: number | null;
58
+ complainant_department_name: string | null;
59
+ complainant_section_id: number | null;
60
+ complainant_section_name: string | null;
61
+ complained_employee_name: string;
62
+ complained_employee_position: string | null;
63
+ complained_employee_salary_grade: string | null;
64
+ complained_employee_directorate: string | null;
65
+ complained_employee_department_id: number | null;
66
+ complained_employee_department_name: string | null;
67
+ complained_employee_section_id: number | null;
68
+ complained_employee_section_name: string | null;
69
+ }
70
+ export type LegalComplaintCreateFieldParseResult = {
71
+ ok: true;
72
+ fields: LegalComplaintStructuredCreateFields;
73
+ } | {
74
+ ok: false;
75
+ message: string;
76
+ };
77
+ /**
78
+ * Maps API / Conductor `requestData` to DB columns.
79
+ * Preferred: `complaint_incident`, `complainant`, `complained_employee` objects.
80
+ * Legacy: `complaint_details`, `complainant_details`, `complained_employee_details` non-empty strings.
81
+ */
82
+ export declare function parseLegalComplaintCreateFields(body: Record<string, any>): LegalComplaintCreateFieldParseResult;
8
83
  export declare class LegalComplaintRequest extends BaseModel {
9
84
  complaint_date: Date;
10
85
  title: string;
11
86
  description: string;
12
- /** Times, dates, locations, individuals, events, etc. */
13
- complaint_details: string;
14
- /** Name / Position / Employee ID / Directorate / Department / Section (structured text or JSON) */
15
- complainant_details: string;
16
- /** Subject of complaint: Name / Position / Salary Grade / Directorate / Department / Section */
17
- complained_employee_details: string;
87
+ incident_time: string | null;
88
+ incident_location: string | null;
89
+ individuals_involved: string | null;
90
+ /** Date of the incident (wizard step 2); request submission date remains `complaint_date`. */
91
+ incident_date: Date | null;
92
+ /** UI “Events”. */
93
+ incident_events: string | null;
94
+ /** “Any other details related to complaint”. */
95
+ incident_other_details: string | null;
96
+ incident_description: string;
97
+ complainant_name: string;
98
+ complainant_position: string | null;
99
+ complainant_employee_id: string | null;
100
+ complainant_directorate: string | null;
101
+ complainant_department_id: number | null;
102
+ complainant_department_name: string | null;
103
+ complainant_section_id: number | null;
104
+ complainant_section_name: string | null;
105
+ complained_employee_name: string;
106
+ complained_employee_position: string | null;
107
+ complained_employee_salary_grade: string | null;
108
+ complained_employee_directorate: string | null;
109
+ complained_employee_department_id: number | null;
110
+ complained_employee_department_name: string | null;
111
+ complained_employee_section_id: number | null;
112
+ complained_employee_section_name: string | null;
18
113
  req_user_department_id: number | null;
19
114
  req_user_section_id: number | null;
20
115
  status: string;