@platform-modules/civil-aviation-authority 2.3.170 → 2.3.171

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 (56) hide show
  1. package/.env +9 -17
  2. package/dist/models/ITApprovalSettings.d.ts +7 -0
  3. package/dist/models/ITApprovalSettings.js +40 -0
  4. package/dist/models/ITServicesTypesMuscatModel.d.ts +6 -0
  5. package/dist/models/ITServicesTypesMuscatModel.js +34 -0
  6. package/dist/models/ITServicesTypesSalalahModel.d.ts +6 -0
  7. package/dist/models/ITServicesTypesSalalahModel.js +34 -0
  8. package/dist/models/Workflows.d.ts +9 -0
  9. package/dist/models/Workflows.js +31 -0
  10. package/dist/models/user.d.ts +1 -1
  11. package/dist/models/user.js +1 -1
  12. package/package.json +1 -1
  13. package/src/models/AccommodationApprovalModel.ts +8 -8
  14. package/src/models/AccommodationRequestModel.ts +8 -8
  15. package/src/models/AnnualIncrementRequestEmployeeModel.ts +65 -65
  16. package/src/models/AnnualIncrementRequestModel.ts +25 -25
  17. package/src/models/AnnualTrainingPlanRequestModel.ts +153 -153
  18. package/src/models/AppealAgainstAdministrativeDecisionRequestModel.ts +23 -23
  19. package/src/models/CAAServices.ts +33 -33
  20. package/src/models/CAASubServices.ts +33 -33
  21. package/src/models/CAIRatingMasterModel.ts +39 -39
  22. package/src/models/CSRMBusinessImpactRatingMasterModel.ts +25 -25
  23. package/src/models/CSRMLikelihoodMasterModel.ts +25 -25
  24. package/src/models/CashAllowanceLeaveRequestModel.ts +11 -11
  25. package/src/models/CyberSecurityAuditRequestModel.ts +32 -32
  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/HousingContractCancelChatModel.ts +56 -56
  30. package/src/models/HousingContractRenewalChatModel.ts +59 -59
  31. package/src/models/HrServiceRequestModel.ts +193 -193
  32. package/src/models/ItApprovalsModel.ts +84 -84
  33. package/src/models/ItWorkflowModel.ts +55 -55
  34. package/src/models/MissionTravelPassportExpiryNotificationConfigModel.ts +36 -36
  35. package/src/models/PerformanceCyclePeriodModel.ts +26 -26
  36. package/src/models/PerformanceGoalMasterModel.ts +27 -27
  37. package/src/models/PerformanceManagementRequestGoalModel.ts +46 -46
  38. package/src/models/PerformanceManagementRequestModel.ts +14 -14
  39. package/src/models/PromotionRequestModel.ts +11 -11
  40. package/src/models/ResidentialUnitRentalChatModel.ts +56 -56
  41. package/src/models/ServicesNotificationConfigModel.ts +55 -55
  42. package/src/models/StudyLeaveRequestModel.ts +144 -144
  43. package/src/models/TrainingRoomBookingRequestModel.ts +142 -142
  44. package/src/models/TrainingRoomNotificationConfigModel.ts +30 -30
  45. package/src/models/UserSkillModel.ts +56 -56
  46. package/src/models/user.ts +2 -2
  47. package/dist/models/DocumentMetadataModel.d.ts +0 -45
  48. package/dist/models/DocumentMetadataModel.js +0 -171
  49. package/dist/models/DocumentationDepartmentsModel.d.ts +0 -13
  50. package/dist/models/DocumentationDepartmentsModel.js +0 -53
  51. package/dist/models/FolderModel.d.ts +0 -16
  52. package/dist/models/FolderModel.js +0 -85
  53. package/dist/models/PermissionModel.d.ts +0 -18
  54. package/dist/models/PermissionModel.js +0 -68
  55. package/dist/models/UUIDBaseModel.d.ts +0 -14
  56. package/dist/models/UUIDBaseModel.js +0 -66
@@ -1,25 +1,25 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from "./BaseModel";
3
-
4
- @Entity({ name: "csrm_likelihood_master" })
5
- export class CSRMLikelihoodMaster extends BaseModel {
6
- @Column({ type: "text", nullable: false })
7
- guidelines: string;
8
-
9
- @Column({ type: "varchar", length: 100, nullable: false })
10
- rating: string;
11
-
12
- @Column({ type: "varchar", length: 100, nullable: false })
13
- value: string;
14
-
15
- @Column({ type: "boolean", default: true })
16
- is_active: boolean;
17
-
18
- constructor(guidelines: string, rating: string, value: string) {
19
- super();
20
- this.guidelines = guidelines;
21
- this.rating = rating;
22
- this.value = value;
23
- this.is_active = true;
24
- }
25
- }
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ @Entity({ name: "csrm_likelihood_master" })
5
+ export class CSRMLikelihoodMaster extends BaseModel {
6
+ @Column({ type: "text", nullable: false })
7
+ guidelines: string;
8
+
9
+ @Column({ type: "varchar", length: 100, nullable: false })
10
+ rating: string;
11
+
12
+ @Column({ type: "varchar", length: 100, nullable: false })
13
+ value: string;
14
+
15
+ @Column({ type: "boolean", default: true })
16
+ is_active: boolean;
17
+
18
+ constructor(guidelines: string, rating: string, value: string) {
19
+ super();
20
+ this.guidelines = guidelines;
21
+ this.rating = rating;
22
+ this.value = value;
23
+ this.is_active = true;
24
+ }
25
+ }
@@ -45,12 +45,12 @@ export class CashAllowanceLeaveRequest extends BaseModel {
45
45
  @Column({ type: "timestamp", nullable: true })
46
46
  assigned_at: Date | null;
47
47
 
48
- @Column({ type: "varchar", length: 255, nullable: true })
49
- workflow_execution_id: string | null;
50
-
51
- @Column({ type: "varchar", length: 255, nullable: true })
52
- reference_number: string | null;
53
-
48
+ @Column({ type: "varchar", length: 255, nullable: true })
49
+ workflow_execution_id: string | null;
50
+
51
+ @Column({ type: "varchar", length: 255, nullable: true })
52
+ reference_number: string | null;
53
+
54
54
  // Cash Allowance for Leave specific fields
55
55
  @Column({ type: "varchar", length: 255, nullable: false })
56
56
  employee_name: string;
@@ -112,11 +112,11 @@ export class CashAllowanceLeaveRequest extends BaseModel {
112
112
  this.req_user_position_id = req_user_position_id || null;
113
113
  this.description = description || null;
114
114
  this.reviewer_user_id = reviewer_user_id || null;
115
- this.assigned_to_user_id = assigned_to_user_id || null;
116
- this.assigned_at = assigned_at || null;
117
- this.workflow_execution_id = workflow_execution_id || null;
118
- this.reference_number = null;
119
- this.employee_name = employee_name || "";
115
+ this.assigned_to_user_id = assigned_to_user_id || null;
116
+ this.assigned_at = assigned_at || null;
117
+ this.workflow_execution_id = workflow_execution_id || null;
118
+ this.reference_number = null;
119
+ this.employee_name = employee_name || "";
120
120
  this.employee_id = employee_id || "";
121
121
  this.job_title = job_title || "";
122
122
  this.salary_grade = salary_grade || "";
@@ -23,21 +23,21 @@ export enum CyberSecurityAuditApplicationType {
23
23
  }
24
24
 
25
25
  @Entity({ name: "cyber_security_audit_requests" })
26
- export class CyberSecurityAuditRequest extends BaseModel {
27
- @Column({ type: "integer", nullable: true })
28
- req_user_department_id: number | null;
29
-
30
- @Column({ type: "integer", nullable: true })
31
- req_user_section_id: number | null;
32
-
33
- @Column({ type: "integer", nullable: true })
34
- requesting_to_department_id: number | null;
35
-
36
- @Column({ type: "integer", nullable: true })
37
- requesting_to_section_id: number | null;
38
-
39
- @Column({ type: "integer", nullable: true })
40
- req_user_position_id: number | null;
26
+ export class CyberSecurityAuditRequest extends BaseModel {
27
+ @Column({ type: "integer", nullable: true })
28
+ req_user_department_id: number | null;
29
+
30
+ @Column({ type: "integer", nullable: true })
31
+ req_user_section_id: number | null;
32
+
33
+ @Column({ type: "integer", nullable: true })
34
+ requesting_to_department_id: number | null;
35
+
36
+ @Column({ type: "integer", nullable: true })
37
+ requesting_to_section_id: number | null;
38
+
39
+ @Column({ type: "integer", nullable: true })
40
+ req_user_position_id: number | null;
41
41
 
42
42
  @Column({ type: "integer", nullable: true })
43
43
  service_id: number | null;
@@ -87,15 +87,15 @@ export class CyberSecurityAuditRequest extends BaseModel {
87
87
  application_to_be_audited: CyberSecurityAuditApplicationType,
88
88
  submission_date: Date,
89
89
  status: CyberSecurityAuditRequestStatus = CyberSecurityAuditRequestStatus.PENDING,
90
- service_id?: number | null,
91
- sub_service_id?: number | null,
92
- req_user_department_id?: number | null,
93
- req_user_section_id?: number | null,
94
- requesting_to_department_id?: number | null,
95
- requesting_to_section_id?: number | null,
96
- req_user_position_id?: number | null,
97
- description?: string | null,
98
- reviewer_user_id?: number | null,
90
+ service_id?: number | null,
91
+ sub_service_id?: number | null,
92
+ req_user_department_id?: number | null,
93
+ req_user_section_id?: number | null,
94
+ requesting_to_department_id?: number | null,
95
+ requesting_to_section_id?: number | null,
96
+ req_user_position_id?: number | null,
97
+ description?: string | null,
98
+ reviewer_user_id?: number | null,
99
99
  assigned_to_user_id?: number | null,
100
100
  assigned_at?: Date | null,
101
101
  workflow_execution_id?: string | null,
@@ -108,14 +108,14 @@ export class CyberSecurityAuditRequest extends BaseModel {
108
108
  this.application_to_be_audited = application_to_be_audited;
109
109
  this.submission_date = submission_date;
110
110
  this.status = status;
111
- this.service_id = service_id || null;
112
- this.sub_service_id = sub_service_id || null;
113
- this.req_user_department_id = req_user_department_id || null;
114
- this.req_user_section_id = req_user_section_id || null;
115
- this.requesting_to_department_id = requesting_to_department_id || null;
116
- this.requesting_to_section_id = requesting_to_section_id || null;
117
- this.req_user_position_id = req_user_position_id || null;
118
- this.description = description || null;
111
+ this.service_id = service_id || null;
112
+ this.sub_service_id = sub_service_id || null;
113
+ this.req_user_department_id = req_user_department_id || null;
114
+ this.req_user_section_id = req_user_section_id || null;
115
+ this.requesting_to_department_id = requesting_to_department_id || null;
116
+ this.requesting_to_section_id = requesting_to_section_id || null;
117
+ this.req_user_position_id = req_user_position_id || null;
118
+ this.description = description || null;
119
119
  this.reviewer_user_id = reviewer_user_id || null;
120
120
  this.assigned_to_user_id = assigned_to_user_id || null;
121
121
  this.assigned_at = assigned_at || null;
@@ -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
  }
@@ -1,28 +1,28 @@
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
-
6
- @Entity({ name: "document_drives" })
7
- export class DocumentDrive extends BaseModel {
8
- @Column({ type: "integer", nullable: false })
9
- department_id: number;
10
-
11
- @Column({ type: "varchar", length: 255, nullable: false })
12
- name: string;
13
-
14
- @Column({ type: "text", nullable: true })
15
- description: string | null;
16
-
17
- @Column({ type: "boolean", nullable: false, default: true })
18
- is_active: boolean;
19
-
20
- @ManyToOne(() => Departments)
21
- @JoinColumn({ name: "department_id" })
22
- department?: Departments;
23
-
24
- @OneToMany(() => DocumentFolder, (folder) => folder.drive)
25
- folders?: DocumentFolder[];
26
-
27
-
28
- }
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
+
6
+ @Entity({ name: "document_drives" })
7
+ export class DocumentDrive extends BaseModel {
8
+ @Column({ type: "integer", nullable: false })
9
+ department_id: number;
10
+
11
+ @Column({ type: "varchar", length: 255, nullable: false })
12
+ name: string;
13
+
14
+ @Column({ type: "text", nullable: true })
15
+ description: string | null;
16
+
17
+ @Column({ type: "boolean", nullable: false, default: true })
18
+ is_active: boolean;
19
+
20
+ @ManyToOne(() => Departments)
21
+ @JoinColumn({ name: "department_id" })
22
+ department?: Departments;
23
+
24
+ @OneToMany(() => DocumentFolder, (folder) => folder.drive)
25
+ folders?: DocumentFolder[];
26
+
27
+
28
+ }
@@ -1,45 +1,45 @@
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
- import { DocumentDrive } from './DocumentDriveModel';
6
-
7
- @Entity({ name: 'document_folders' })
8
- export class DocumentFolder extends BaseModel {
9
-
10
- @Column({ type: 'varchar', length: 100, nullable: false })
11
- name: string;
12
-
13
- @Column({ type: 'integer', nullable: false })
14
- department_id: number;
15
-
16
- @Column({ type: 'integer', nullable: true })
17
- drive_id: number | null;
18
-
19
- @ManyToOne(() => DocumentDrive, (d) => d.folders, { nullable: true })
20
- @JoinColumn({ name: 'drive_id' })
21
- drive?: DocumentDrive;
22
-
23
- @Column({ type: 'integer', nullable: true })
24
- parent_folder_id?: number;
25
-
26
- @Column({ type: 'text', nullable: true })
27
- description?: string;
28
-
29
- @Column({ type: 'boolean', nullable: false, default: true })
30
- is_active: boolean;
31
-
32
- @ManyToOne(() => Departments)
33
- @JoinColumn({ name: 'department_id' })
34
- department?: Departments;
35
-
36
- @ManyToOne(() => DocumentFolder, { nullable: true })
37
- @JoinColumn({ name: 'parent_folder_id' })
38
- parentFolder?: DocumentFolder;
39
-
40
- @OneToMany(() => DocumentFolder, folder => folder.parentFolder)
41
- subFolders?: DocumentFolder[];
42
-
43
- @OneToMany(() => Document, document => document.folder)
44
- documents?: Document[];
45
- }
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
+ import { DocumentDrive } from './DocumentDriveModel';
6
+
7
+ @Entity({ name: 'document_folders' })
8
+ export class DocumentFolder extends BaseModel {
9
+
10
+ @Column({ type: 'varchar', length: 100, nullable: false })
11
+ name: string;
12
+
13
+ @Column({ type: 'integer', nullable: false })
14
+ department_id: number;
15
+
16
+ @Column({ type: 'integer', nullable: true })
17
+ drive_id: number | null;
18
+
19
+ @ManyToOne(() => DocumentDrive, (d) => d.folders, { nullable: true })
20
+ @JoinColumn({ name: 'drive_id' })
21
+ drive?: DocumentDrive;
22
+
23
+ @Column({ type: 'integer', nullable: true })
24
+ parent_folder_id?: number;
25
+
26
+ @Column({ type: 'text', nullable: true })
27
+ description?: string;
28
+
29
+ @Column({ type: 'boolean', nullable: false, default: true })
30
+ is_active: boolean;
31
+
32
+ @ManyToOne(() => Departments)
33
+ @JoinColumn({ name: 'department_id' })
34
+ department?: Departments;
35
+
36
+ @ManyToOne(() => DocumentFolder, { nullable: true })
37
+ @JoinColumn({ name: 'parent_folder_id' })
38
+ parentFolder?: DocumentFolder;
39
+
40
+ @OneToMany(() => DocumentFolder, folder => folder.parentFolder)
41
+ subFolders?: DocumentFolder[];
42
+
43
+ @OneToMany(() => Document, document => document.folder)
44
+ documents?: Document[];
45
+ }
@@ -1,56 +1,56 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from "./BaseModel";
3
-
4
- export enum HousingContractCancelMessageType {
5
- text = 'text',
6
- image = 'image',
7
- video = 'video',
8
- file = 'file',
9
- link = 'link'
10
- }
11
-
12
- export enum HousingContractCancelChatStatus {
13
- Pending = 'Pending',
14
- Received = 'Received',
15
- Approved = 'Approved',
16
- Rejected = 'Rejected',
17
- InProgress = 'In Progress',
18
- }
19
-
20
- @Entity({ name: 'housing_contract_cancel_chat' })
21
- export class HousingContractCancelChat extends BaseModel {
22
-
23
- @Column({ type: 'int', nullable: false })
24
- request_id: number;
25
-
26
- @Column({ type: 'int', nullable: false })
27
- service_id: number;
28
-
29
- @Column({ type: 'int', nullable: false })
30
- sub_service_id: number;
31
-
32
- @Column({ type: 'int', nullable: false })
33
- user_id: number;
34
-
35
- @Column({ type: 'text', nullable: false })
36
- message: string;
37
-
38
- @Column({ type: 'int', nullable: true })
39
- approver_role_id: number | null;
40
-
41
- @Column({ type: 'varchar', length: 255, nullable: false, default: 'Pending' })
42
- status: string;
43
-
44
- @Column({ type: 'varchar', length: 20, nullable: false })
45
- message_type: string;
46
-
47
- @Column({ type: 'boolean', nullable: false, default: false })
48
- is_internal: boolean;
49
-
50
- @Column({ type: 'int', nullable: false })
51
- created_by: number;
52
-
53
- constructor() {
54
- super();
55
- }
56
- }
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum HousingContractCancelMessageType {
5
+ text = 'text',
6
+ image = 'image',
7
+ video = 'video',
8
+ file = 'file',
9
+ link = 'link'
10
+ }
11
+
12
+ export enum HousingContractCancelChatStatus {
13
+ Pending = 'Pending',
14
+ Received = 'Received',
15
+ Approved = 'Approved',
16
+ Rejected = 'Rejected',
17
+ InProgress = 'In Progress',
18
+ }
19
+
20
+ @Entity({ name: 'housing_contract_cancel_chat' })
21
+ export class HousingContractCancelChat extends BaseModel {
22
+
23
+ @Column({ type: 'int', nullable: false })
24
+ request_id: number;
25
+
26
+ @Column({ type: 'int', nullable: false })
27
+ service_id: number;
28
+
29
+ @Column({ type: 'int', nullable: false })
30
+ sub_service_id: number;
31
+
32
+ @Column({ type: 'int', nullable: false })
33
+ user_id: number;
34
+
35
+ @Column({ type: 'text', nullable: false })
36
+ message: string;
37
+
38
+ @Column({ type: 'int', nullable: true })
39
+ approver_role_id: number | null;
40
+
41
+ @Column({ type: 'varchar', length: 255, nullable: false, default: 'Pending' })
42
+ status: string;
43
+
44
+ @Column({ type: 'varchar', length: 20, nullable: false })
45
+ message_type: string;
46
+
47
+ @Column({ type: 'boolean', nullable: false, default: false })
48
+ is_internal: boolean;
49
+
50
+ @Column({ type: 'int', nullable: false })
51
+ created_by: number;
52
+
53
+ constructor() {
54
+ super();
55
+ }
56
+ }
@@ -1,59 +1,59 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from "./BaseModel";
3
-
4
- export enum HousingContractRenewalMessageType {
5
- text = 'text',
6
- image = 'image',
7
- video = 'video',
8
- file = 'file',
9
- link = 'link'
10
- }
11
-
12
- /** Aligns with request-for-coverage / accommodation chat `status` usage */
13
- export enum HousingContractRenewalChatStatus {
14
- Pending = 'Pending',
15
- Received = 'Received',
16
- Approved = 'Approved',
17
- Rejected = 'Rejected',
18
- InProgress = 'In Progress',
19
- }
20
-
21
- @Entity({ name: 'housing_contract_renewal_chat' })
22
- export class HousingContractRenewalChat extends BaseModel {
23
-
24
- @Column({ type: 'int', nullable: false })
25
- request_id: number;
26
-
27
- @Column({ type: 'int', nullable: false })
28
- service_id: number;
29
-
30
- @Column({ type: 'int', nullable: false })
31
- sub_service_id: number;
32
-
33
- /** Message author (same pattern as request_for_coverage_request_chat.user_id) */
34
- @Column({ type: 'int', nullable: false })
35
- user_id: number;
36
-
37
- @Column({ type: 'text', nullable: false })
38
- message: string;
39
-
40
- /** Role context for the chat line (e.g. active role when message was posted) */
41
- @Column({ type: 'int', nullable: true })
42
- approver_role_id: number | null;
43
-
44
- @Column({ type: 'varchar', length: 255, nullable: false, default: 'Pending' })
45
- status: string;
46
-
47
- @Column({ type: 'varchar', length: 20, nullable: false })
48
- message_type: string;
49
-
50
- @Column({ type: 'boolean', nullable: false, default: false })
51
- is_internal: boolean;
52
-
53
- @Column({ type: 'int', nullable: false })
54
- created_by: number;
55
-
56
- constructor() {
57
- super();
58
- }
59
- }
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum HousingContractRenewalMessageType {
5
+ text = 'text',
6
+ image = 'image',
7
+ video = 'video',
8
+ file = 'file',
9
+ link = 'link'
10
+ }
11
+
12
+ /** Aligns with request-for-coverage / accommodation chat `status` usage */
13
+ export enum HousingContractRenewalChatStatus {
14
+ Pending = 'Pending',
15
+ Received = 'Received',
16
+ Approved = 'Approved',
17
+ Rejected = 'Rejected',
18
+ InProgress = 'In Progress',
19
+ }
20
+
21
+ @Entity({ name: 'housing_contract_renewal_chat' })
22
+ export class HousingContractRenewalChat extends BaseModel {
23
+
24
+ @Column({ type: 'int', nullable: false })
25
+ request_id: number;
26
+
27
+ @Column({ type: 'int', nullable: false })
28
+ service_id: number;
29
+
30
+ @Column({ type: 'int', nullable: false })
31
+ sub_service_id: number;
32
+
33
+ /** Message author (same pattern as request_for_coverage_request_chat.user_id) */
34
+ @Column({ type: 'int', nullable: false })
35
+ user_id: number;
36
+
37
+ @Column({ type: 'text', nullable: false })
38
+ message: string;
39
+
40
+ /** Role context for the chat line (e.g. active role when message was posted) */
41
+ @Column({ type: 'int', nullable: true })
42
+ approver_role_id: number | null;
43
+
44
+ @Column({ type: 'varchar', length: 255, nullable: false, default: 'Pending' })
45
+ status: string;
46
+
47
+ @Column({ type: 'varchar', length: 20, nullable: false })
48
+ message_type: string;
49
+
50
+ @Column({ type: 'boolean', nullable: false, default: false })
51
+ is_internal: boolean;
52
+
53
+ @Column({ type: 'int', nullable: false })
54
+ created_by: number;
55
+
56
+ constructor() {
57
+ super();
58
+ }
59
+ }