@platform-modules/civil-aviation-authority 2.3.178 → 2.3.179

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 (48) hide show
  1. package/.env +10 -10
  2. package/dist/data-source.js +11 -1
  3. package/dist/index.d.ts +10 -0
  4. package/dist/index.js +23 -1
  5. package/dist/models/ITApprovalSettings.d.ts +7 -0
  6. package/dist/models/ITApprovalSettings.js +40 -0
  7. package/dist/models/ITServicesTypesMuscatModel.d.ts +6 -0
  8. package/dist/models/ITServicesTypesMuscatModel.js +34 -0
  9. package/dist/models/ITServicesTypesSalalahModel.d.ts +6 -0
  10. package/dist/models/ITServicesTypesSalalahModel.js +34 -0
  11. package/dist/models/RespondToEnquiriesApprovalModel.d.ts +27 -0
  12. package/dist/models/RespondToEnquiriesApprovalModel.js +118 -0
  13. package/dist/models/RespondToEnquiriesAttachmentModel.d.ts +13 -0
  14. package/dist/models/RespondToEnquiriesAttachmentModel.js +69 -0
  15. package/dist/models/RespondToEnquiriesChatModel.d.ts +29 -0
  16. package/dist/models/RespondToEnquiriesChatModel.js +99 -0
  17. package/dist/models/RespondToEnquiriesRequestModel.d.ts +42 -0
  18. package/dist/models/RespondToEnquiriesRequestModel.js +175 -0
  19. package/dist/models/RespondToEnquiriesWorkflowModel.d.ts +19 -0
  20. package/dist/models/RespondToEnquiriesWorkflowModel.js +82 -0
  21. package/dist/models/Workflows.d.ts +9 -0
  22. package/dist/models/Workflows.js +31 -0
  23. package/package.json +1 -1
  24. package/src/data-source.ts +385 -375
  25. package/src/index.ts +413 -393
  26. package/src/models/AccommodationApprovalModel.ts +8 -8
  27. package/src/models/AccommodationRequestModel.ts +8 -8
  28. package/src/models/AnnualIncrementRequestEmployeeModel.ts +65 -65
  29. package/src/models/AnnualIncrementRequestModel.ts +25 -25
  30. package/src/models/AppealAgainstAdministrativeDecisionRequestModel.ts +23 -23
  31. package/src/models/CAAServices.ts +33 -33
  32. package/src/models/CAASubServices.ts +33 -33
  33. package/src/models/CAIRatingMasterModel.ts +39 -39
  34. package/src/models/CSRMBusinessImpactRatingMasterModel.ts +25 -25
  35. package/src/models/CSRMLikelihoodMasterModel.ts +25 -25
  36. package/src/models/CashAllowanceLeaveRequestModel.ts +11 -11
  37. package/src/models/HrServiceRequestModel.ts +193 -193
  38. package/src/models/PerformanceCyclePeriodModel.ts +26 -26
  39. package/src/models/PerformanceGoalMasterModel.ts +27 -27
  40. package/src/models/PerformanceManagementRequestGoalModel.ts +46 -46
  41. package/src/models/PerformanceManagementRequestModel.ts +14 -14
  42. package/src/models/PromotionRequestModel.ts +11 -11
  43. package/src/models/RespondToEnquiriesApprovalModel.ts +104 -0
  44. package/src/models/RespondToEnquiriesAttachmentModel.ts +55 -0
  45. package/src/models/RespondToEnquiriesChatModel.ts +85 -0
  46. package/src/models/RespondToEnquiriesRequestModel.ts +160 -0
  47. package/src/models/RespondToEnquiriesWorkflowModel.ts +68 -0
  48. package/src/models/UserSkillModel.ts +56 -56
@@ -45,12 +45,12 @@ export class PromotionRequest 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
  // Promotion Decision specific fields
55
55
  @Column({ type: "varchar", length: 255, nullable: false })
56
56
  employee_name: string;
@@ -108,11 +108,11 @@ export class PromotionRequest extends BaseModel {
108
108
  this.req_user_position_id = req_user_position_id || null;
109
109
  this.description = description || null;
110
110
  this.reviewer_user_id = reviewer_user_id || null;
111
- this.assigned_to_user_id = assigned_to_user_id || null;
112
- this.assigned_at = assigned_at || null;
113
- this.workflow_execution_id = workflow_execution_id || null;
114
- this.reference_number = null;
115
- this.employee_name = employee_name || "";
111
+ this.assigned_to_user_id = assigned_to_user_id || null;
112
+ this.assigned_at = assigned_at || null;
113
+ this.workflow_execution_id = workflow_execution_id || null;
114
+ this.reference_number = null;
115
+ this.employee_name = employee_name || "";
116
116
  this.employee_id = employee_id || "";
117
117
  this.current_job_title = current_job_title || "";
118
118
  this.proposed_job_title = proposed_job_title || "";
@@ -0,0 +1,104 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum RespondToEnquiriesApprovalStatus {
5
+ PENDING = "Pending",
6
+ IN_PROGRESS = "In Progress",
7
+ APPROVED = "Approved",
8
+ REJECTED = "Rejected",
9
+ ASSIGNED = "Assigned"
10
+ }
11
+
12
+ @Entity({ name: "respond_to_enquiries_approvals" })
13
+ export class RespondToEnquiriesApprovalDetails extends BaseModel {
14
+ @Column({ type: "integer", nullable: false })
15
+ request_id: number;
16
+
17
+ @Column({ type: "integer", nullable: true })
18
+ service_id: number | null;
19
+
20
+ @Column({ type: "integer", nullable: true })
21
+ sub_service_id: number | null;
22
+
23
+ @Column({ type: "integer", nullable: false })
24
+ level: number;
25
+
26
+ @Column({ type: "integer", nullable: true })
27
+ approver_user_id: number | null;
28
+
29
+ @Column({ type: "integer", nullable: true })
30
+ approver_role_id: number | null;
31
+
32
+ @Column({ type: "integer", nullable: true })
33
+ department_id: number | null;
34
+
35
+ @Column({ type: "integer", nullable: true })
36
+ section_id: number | null;
37
+
38
+ @Column({ type: "integer", nullable: true })
39
+ delegate_user_id: number | null;
40
+
41
+ @Column({ type: "integer", nullable: true })
42
+ approved_by: number | null;
43
+
44
+ @Column({ type: "varchar", length: 255, nullable: true, default: "" })
45
+ comment: string;
46
+
47
+ @Column({
48
+ type: "enum",
49
+ enum: RespondToEnquiriesApprovalStatus,
50
+ default: RespondToEnquiriesApprovalStatus.PENDING,
51
+ nullable: false,
52
+ enumName: "respond_to_enquiries_approval_status_en"
53
+ })
54
+ approval_status: RespondToEnquiriesApprovalStatus;
55
+
56
+ @Column({ type: "boolean", default: null, nullable: true })
57
+ is_manager: boolean;
58
+
59
+ @Column({ type: "boolean", default: false, nullable: true })
60
+ is_president: boolean;
61
+
62
+ @Column({ type: "boolean", default: false, nullable: true })
63
+ is_replace: boolean;
64
+
65
+ @Column({ type: "boolean", default: true, nullable: false })
66
+ is_allowed: boolean;
67
+
68
+ constructor(
69
+ request_id: number,
70
+ approver_user_id: number | null,
71
+ approver_role_id: number | null,
72
+ comment: string,
73
+ approval_status: RespondToEnquiriesApprovalStatus,
74
+ level: number,
75
+ service_id?: number | null,
76
+ sub_service_id?: number | null,
77
+ department_id?: number | null,
78
+ section_id?: number | null,
79
+ delegate_user_id?: number | null,
80
+ approved_by?: number | null,
81
+ is_manager?: boolean,
82
+ is_president?: boolean,
83
+ is_replace?: boolean,
84
+ is_allowed?: boolean
85
+ ) {
86
+ super();
87
+ this.request_id = request_id;
88
+ this.service_id = service_id || null;
89
+ this.sub_service_id = sub_service_id || null;
90
+ this.approver_user_id = approver_user_id;
91
+ this.approver_role_id = approver_role_id;
92
+ this.comment = comment;
93
+ this.approval_status = approval_status;
94
+ this.level = level;
95
+ this.department_id = department_id || null;
96
+ this.section_id = section_id || null;
97
+ this.delegate_user_id = delegate_user_id || null;
98
+ this.approved_by = approved_by || null;
99
+ this.is_manager = is_manager ?? false;
100
+ this.is_president = is_president ?? false;
101
+ this.is_replace = is_replace ?? false;
102
+ this.is_allowed = is_allowed !== undefined ? is_allowed : true;
103
+ }
104
+ }
@@ -0,0 +1,55 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ @Entity({ name: "respond_to_enquiries_request_attachments" })
5
+ export class RespondToEnquiriesRequestAttachment extends BaseModel {
6
+ @Column({ type: "integer", nullable: false })
7
+ request_id: number;
8
+
9
+ @Column({ type: "integer", nullable: true })
10
+ service_id: number | null;
11
+
12
+ @Column({ type: "integer", nullable: true })
13
+ sub_service_id: number | null;
14
+
15
+ @Column({ type: "integer", nullable: false })
16
+ uploaded_by: number;
17
+
18
+ @Column({ type: "varchar", length: 500, nullable: false })
19
+ file_url: string;
20
+
21
+ @Column({ type: "varchar", length: 255, nullable: true })
22
+ file_name: string;
23
+
24
+ @Column({ type: "varchar", length: 100, nullable: true })
25
+ file_type: string;
26
+
27
+ @Column({ type: "bigint", nullable: true })
28
+ file_size: number | null;
29
+
30
+ @Column({ type: "text", nullable: true })
31
+ description: string;
32
+
33
+ constructor(
34
+ request_id: number,
35
+ uploaded_by: number,
36
+ file_url: string,
37
+ service_id?: number | null,
38
+ sub_service_id?: number | null,
39
+ file_name?: string,
40
+ file_type?: string,
41
+ file_size?: number,
42
+ description?: string
43
+ ) {
44
+ super();
45
+ this.request_id = request_id;
46
+ this.service_id = service_id || null;
47
+ this.sub_service_id = sub_service_id || null;
48
+ this.uploaded_by = uploaded_by;
49
+ this.file_url = file_url;
50
+ this.file_name = file_name || "";
51
+ this.file_type = file_type || "";
52
+ this.file_size = file_size || null;
53
+ this.description = description || "";
54
+ }
55
+ }
@@ -0,0 +1,85 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum RespondToEnquiriesMessageType {
5
+ TEXT = "text",
6
+ IMAGE = "image",
7
+ VIDEO = "video",
8
+ FILE = "file",
9
+ LINK = "link"
10
+ }
11
+
12
+ export enum RespondToEnquiriesChatStatus {
13
+ SUBMITTED = "Submitted",
14
+ COMPLETED = "Completed",
15
+ PENDING = "Pending",
16
+ REJECTED = "Rejected",
17
+ ASSIGNED = "Assigned",
18
+ APPROVED = "Approved",
19
+ RECEIVED = "Received"
20
+ }
21
+
22
+ @Entity({ name: "respond_to_enquiries_request_chat" })
23
+ export class RespondToEnquiriesRequestChat extends BaseModel {
24
+ @Column({ type: "integer", nullable: false })
25
+ request_id: number;
26
+
27
+ @Column({ type: "integer", nullable: true })
28
+ service_id: number | null;
29
+
30
+ @Column({ type: "integer", nullable: true })
31
+ sub_service_id: number | null;
32
+
33
+ @Column({ type: "integer", nullable: false })
34
+ user_id: number;
35
+
36
+ @Column({ type: "text", nullable: false })
37
+ message: string;
38
+
39
+ @Column({ type: "integer", nullable: true })
40
+ approver_role_id: number | null;
41
+
42
+ @Column({
43
+ type: "enum",
44
+ enum: RespondToEnquiriesMessageType,
45
+ default: RespondToEnquiriesMessageType.TEXT,
46
+ nullable: false,
47
+ enumName: "respond_to_enquiries_message_type_en"
48
+ })
49
+ messageType: RespondToEnquiriesMessageType;
50
+
51
+ @Column({ type: "boolean", default: false })
52
+ is_internal: boolean;
53
+
54
+ @Column({
55
+ type: "enum",
56
+ enum: RespondToEnquiriesChatStatus,
57
+ default: RespondToEnquiriesChatStatus.PENDING,
58
+ nullable: false,
59
+ enumName: "respond_to_enquiries_chat_status_en"
60
+ })
61
+ status: RespondToEnquiriesChatStatus;
62
+
63
+ constructor(
64
+ request_id: number,
65
+ user_id: number,
66
+ message: string,
67
+ service_id?: number | null,
68
+ sub_service_id?: number | null,
69
+ messageType?: RespondToEnquiriesMessageType,
70
+ is_internal?: boolean,
71
+ status?: RespondToEnquiriesChatStatus,
72
+ approver_role_id?: number
73
+ ) {
74
+ super();
75
+ this.request_id = request_id;
76
+ this.service_id = service_id || null;
77
+ this.sub_service_id = sub_service_id || null;
78
+ this.user_id = user_id;
79
+ this.message = message;
80
+ this.messageType = messageType || RespondToEnquiriesMessageType.TEXT;
81
+ this.is_internal = is_internal || false;
82
+ this.status = status || RespondToEnquiriesChatStatus.PENDING;
83
+ this.approver_role_id = approver_role_id || null;
84
+ }
85
+ }
@@ -0,0 +1,160 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum RespondToEnquiriesRequestStatus {
5
+ PENDING = "Pending",
6
+ ASSIGNED = "Assigned",
7
+ IN_PROGRESS = "In Progress",
8
+ COMPLETED = "Completed",
9
+ APPROVED = "Approved",
10
+ REJECTED = "Rejected"
11
+ }
12
+
13
+ export enum RespondToEnquiriesEnquiryCategory {
14
+ GENERAL = "general",
15
+ CANCELLED_TENDER = "cancelled_tender",
16
+ REFLOATED_TENDER = "refloated_tender"
17
+ }
18
+
19
+ @Entity({ name: "respond_to_enquiries_requests" })
20
+ export class RespondToEnquiriesRequest extends BaseModel {
21
+ @Column({ type: "integer", nullable: true })
22
+ req_user_department_id: number | null;
23
+
24
+ @Column({ type: "integer", nullable: true })
25
+ req_user_section_id: number | null;
26
+
27
+ @Column({ type: "integer", nullable: true })
28
+ req_user_position_id: number | null;
29
+
30
+ @Column({ type: "integer", nullable: true })
31
+ service_id: number | null;
32
+
33
+ @Column({ type: "integer", nullable: true })
34
+ sub_service_id: number | null;
35
+
36
+ @Column({ type: "integer", nullable: false })
37
+ user_id: number;
38
+
39
+ @Column({ type: "text", nullable: false })
40
+ description: string;
41
+
42
+ @Column({
43
+ type: "enum",
44
+ enum: RespondToEnquiriesRequestStatus,
45
+ default: RespondToEnquiriesRequestStatus.PENDING,
46
+ nullable: false
47
+ })
48
+ status: RespondToEnquiriesRequestStatus;
49
+
50
+ @Column({ type: "integer", nullable: true })
51
+ reviewer_user_id: number | null;
52
+
53
+ @Column({ type: "integer", nullable: true })
54
+ assigned_to_user_id: number | null;
55
+
56
+ @Column({ type: "timestamp", nullable: true })
57
+ assigned_at: Date | null;
58
+
59
+ @Column({ type: "varchar", length: 255, nullable: true })
60
+ workflow_execution_id: string | null;
61
+
62
+ @Column({ type: "varchar", length: 255, nullable: true })
63
+ reference_number: string | null;
64
+
65
+ @Column({ type: "varchar", length: 500, nullable: false })
66
+ title_of_enquiry: string;
67
+
68
+ @Column({ type: "varchar", length: 100, nullable: true })
69
+ request_id: string | null;
70
+
71
+ @Column({ type: "date", nullable: false })
72
+ date_of_submission: Date;
73
+
74
+ @Column({ type: "varchar", length: 30, nullable: false })
75
+ phone: string;
76
+
77
+ @Column({
78
+ type: "enum",
79
+ enum: RespondToEnquiriesEnquiryCategory,
80
+ default: RespondToEnquiriesEnquiryCategory.GENERAL,
81
+ nullable: false,
82
+ enumName: "respond_to_enquiries_category_en"
83
+ })
84
+ enquiry_category: RespondToEnquiriesEnquiryCategory;
85
+
86
+ @Column({ type: "date", nullable: true })
87
+ tender_date_of_submission: Date | null;
88
+
89
+ @Column({ type: "varchar", length: 30, nullable: true })
90
+ tender_phone: string | null;
91
+
92
+ @Column({ type: "varchar", length: 100, nullable: true })
93
+ budget_code: string | null;
94
+
95
+ @Column({ type: "decimal", precision: 18, scale: 2, nullable: true })
96
+ estimated_cost: string | null;
97
+
98
+ @Column({ type: "varchar", length: 255, nullable: true })
99
+ implementation_period: string | null;
100
+
101
+ @Column({ type: "varchar", length: 500, nullable: true })
102
+ requesting_entity: string | null;
103
+
104
+ @Column({ type: "integer", nullable: true })
105
+ relevant_department_id: number | null;
106
+
107
+ constructor(
108
+ user_id: number,
109
+ title_of_enquiry: string,
110
+ description: string,
111
+ date_of_submission: Date,
112
+ phone: string,
113
+ status: RespondToEnquiriesRequestStatus = RespondToEnquiriesRequestStatus.PENDING,
114
+ service_id?: number | null,
115
+ sub_service_id?: number | null,
116
+ req_user_department_id?: number | null,
117
+ req_user_section_id?: number | null,
118
+ req_user_position_id?: number | null,
119
+ reviewer_user_id?: number | null,
120
+ assigned_to_user_id?: number | null,
121
+ assigned_at?: Date | null,
122
+ workflow_execution_id?: string | null,
123
+ request_id?: string | null,
124
+ enquiry_category?: RespondToEnquiriesEnquiryCategory,
125
+ tender_date_of_submission?: Date | null,
126
+ tender_phone?: string | null,
127
+ budget_code?: string | null,
128
+ estimated_cost?: string | null,
129
+ implementation_period?: string | null,
130
+ requesting_entity?: string | null,
131
+ relevant_department_id?: number | null
132
+ ) {
133
+ super();
134
+ this.user_id = user_id;
135
+ this.title_of_enquiry = title_of_enquiry;
136
+ this.description = description;
137
+ this.date_of_submission = date_of_submission;
138
+ this.phone = phone;
139
+ this.status = status;
140
+ this.service_id = service_id || null;
141
+ this.sub_service_id = sub_service_id || null;
142
+ this.req_user_department_id = req_user_department_id || null;
143
+ this.req_user_section_id = req_user_section_id || null;
144
+ this.req_user_position_id = req_user_position_id || null;
145
+ this.reviewer_user_id = reviewer_user_id || null;
146
+ this.assigned_to_user_id = assigned_to_user_id || null;
147
+ this.assigned_at = assigned_at || null;
148
+ this.workflow_execution_id = workflow_execution_id || null;
149
+ this.reference_number = null;
150
+ this.request_id = request_id || null;
151
+ this.enquiry_category = enquiry_category ?? RespondToEnquiriesEnquiryCategory.GENERAL;
152
+ this.tender_date_of_submission = tender_date_of_submission ?? null;
153
+ this.tender_phone = tender_phone ?? null;
154
+ this.budget_code = budget_code ?? null;
155
+ this.estimated_cost = estimated_cost ?? null;
156
+ this.implementation_period = implementation_period ?? null;
157
+ this.requesting_entity = requesting_entity ?? null;
158
+ this.relevant_department_id = relevant_department_id ?? null;
159
+ }
160
+ }
@@ -0,0 +1,68 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum RespondToEnquiriesWorkFlowStatus {
5
+ COMPLETED = "Completed",
6
+ NOT_YET_STARTED = "Not Yet Started",
7
+ PENDING = "Pending",
8
+ REJECTED = "Rejected"
9
+ }
10
+
11
+ @Entity({ name: "respond_to_enquiries_work_flows" })
12
+ export class RespondToEnquiriesWorkFlow extends BaseModel {
13
+ @Column({ type: "int", nullable: false })
14
+ request_id: number;
15
+
16
+ @Column({ type: "integer", nullable: true })
17
+ service_id: number | null;
18
+
19
+ @Column({ type: "integer", nullable: true })
20
+ sub_service_id: number | null;
21
+
22
+ @Column({ type: "int", nullable: true })
23
+ order: number | null;
24
+
25
+ @Column({ type: "varchar", length: 255, nullable: false })
26
+ content: string;
27
+
28
+ @Column({ type: "integer", nullable: true })
29
+ approver_role_id: number | null;
30
+
31
+ @Column({ type: "integer", nullable: true })
32
+ approver_user_id: number | null;
33
+
34
+ @Column({ type: "integer", nullable: true })
35
+ approved_by: number | null;
36
+
37
+ @Column({
38
+ type: "enum",
39
+ enum: RespondToEnquiriesWorkFlowStatus,
40
+ default: RespondToEnquiriesWorkFlowStatus.PENDING,
41
+ nullable: false,
42
+ enumName: "respond_to_enquiries_workflow_status_en"
43
+ })
44
+ status: RespondToEnquiriesWorkFlowStatus;
45
+
46
+ constructor(
47
+ request_id: number,
48
+ content: string,
49
+ status: RespondToEnquiriesWorkFlowStatus,
50
+ service_id?: number | null,
51
+ sub_service_id?: number | null,
52
+ order?: number,
53
+ approver_role_id?: number | null,
54
+ approver_user_id?: number | null,
55
+ approved_by?: number | null
56
+ ) {
57
+ super();
58
+ this.request_id = request_id;
59
+ this.service_id = service_id || null;
60
+ this.sub_service_id = sub_service_id || null;
61
+ this.content = content;
62
+ this.status = status;
63
+ this.order = order || null;
64
+ this.approver_role_id = approver_role_id || null;
65
+ this.approver_user_id = approver_user_id || null;
66
+ this.approved_by = approved_by || null;
67
+ }
68
+ }
@@ -1,56 +1,56 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from "./BaseModel";
3
- import { SkillCategory } from "./SkillsEnhancementRequestModel";
4
-
5
- @Entity({ name: "user_skills" })
6
- export class UserSkill extends BaseModel {
7
- @Column({ type: "integer", nullable: false })
8
- user_id: number;
9
-
10
- @Column({ type: "varchar", length: 255, nullable: false })
11
- skill_name: string;
12
-
13
- @Column({ type: "enum", enum: SkillCategory, nullable: true })
14
- skill_category: SkillCategory | null;
15
-
16
- @Column({ type: "varchar", length: 255, nullable: true })
17
- issuing_authority: string | null;
18
-
19
- @Column({ type: "date", nullable: true })
20
- completion_date: Date | null;
21
-
22
- @Column({ type: "text", nullable: true })
23
- skill_summary: string | null;
24
-
25
- @Column({ type: "integer", nullable: true })
26
- source_request_id: number | null;
27
-
28
- @Column({ type: "varchar", length: 50, nullable: true })
29
- source_request_type: string | null;
30
-
31
- @Column({ type: "boolean", nullable: false, default: true })
32
- is_active: boolean;
33
-
34
- constructor(
35
- user_id: number,
36
- skill_name: string,
37
- skill_category?: SkillCategory | null,
38
- issuing_authority?: string | null,
39
- completion_date?: Date | null,
40
- skill_summary?: string | null,
41
- source_request_id?: number | null,
42
- source_request_type?: string | null,
43
- is_active?: boolean
44
- ) {
45
- super();
46
- this.user_id = user_id;
47
- this.skill_name = skill_name;
48
- this.skill_category = skill_category || null;
49
- this.issuing_authority = issuing_authority || null;
50
- this.completion_date = completion_date || null;
51
- this.skill_summary = skill_summary || null;
52
- this.source_request_id = source_request_id || null;
53
- this.source_request_type = source_request_type || null;
54
- this.is_active = is_active !== undefined ? is_active : true;
55
- }
56
- }
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+ import { SkillCategory } from "./SkillsEnhancementRequestModel";
4
+
5
+ @Entity({ name: "user_skills" })
6
+ export class UserSkill extends BaseModel {
7
+ @Column({ type: "integer", nullable: false })
8
+ user_id: number;
9
+
10
+ @Column({ type: "varchar", length: 255, nullable: false })
11
+ skill_name: string;
12
+
13
+ @Column({ type: "enum", enum: SkillCategory, nullable: true })
14
+ skill_category: SkillCategory | null;
15
+
16
+ @Column({ type: "varchar", length: 255, nullable: true })
17
+ issuing_authority: string | null;
18
+
19
+ @Column({ type: "date", nullable: true })
20
+ completion_date: Date | null;
21
+
22
+ @Column({ type: "text", nullable: true })
23
+ skill_summary: string | null;
24
+
25
+ @Column({ type: "integer", nullable: true })
26
+ source_request_id: number | null;
27
+
28
+ @Column({ type: "varchar", length: 50, nullable: true })
29
+ source_request_type: string | null;
30
+
31
+ @Column({ type: "boolean", nullable: false, default: true })
32
+ is_active: boolean;
33
+
34
+ constructor(
35
+ user_id: number,
36
+ skill_name: string,
37
+ skill_category?: SkillCategory | null,
38
+ issuing_authority?: string | null,
39
+ completion_date?: Date | null,
40
+ skill_summary?: string | null,
41
+ source_request_id?: number | null,
42
+ source_request_type?: string | null,
43
+ is_active?: boolean
44
+ ) {
45
+ super();
46
+ this.user_id = user_id;
47
+ this.skill_name = skill_name;
48
+ this.skill_category = skill_category || null;
49
+ this.issuing_authority = issuing_authority || null;
50
+ this.completion_date = completion_date || null;
51
+ this.skill_summary = skill_summary || null;
52
+ this.source_request_id = source_request_id || null;
53
+ this.source_request_type = source_request_type || null;
54
+ this.is_active = is_active !== undefined ? is_active : true;
55
+ }
56
+ }