@platform-modules/civil-aviation-authority 2.3.172 → 2.3.174

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 (30) hide show
  1. package/dist/data-source.js +13 -1
  2. package/dist/index.d.ts +11 -0
  3. package/dist/index.js +24 -1
  4. package/dist/models/RespondToEnquiriesApprovalModel.d.ts +27 -0
  5. package/dist/models/RespondToEnquiriesApprovalModel.js +118 -0
  6. package/dist/models/RespondToEnquiriesAttachmentModel.d.ts +13 -0
  7. package/dist/models/RespondToEnquiriesAttachmentModel.js +69 -0
  8. package/dist/models/RespondToEnquiriesChatModel.d.ts +29 -0
  9. package/dist/models/RespondToEnquiriesChatModel.js +99 -0
  10. package/dist/models/RespondToEnquiriesRequestModel.d.ts +42 -0
  11. package/dist/models/RespondToEnquiriesRequestModel.js +175 -0
  12. package/dist/models/RespondToEnquiriesWorkflowModel.d.ts +19 -0
  13. package/dist/models/RespondToEnquiriesWorkflowModel.js +82 -0
  14. package/dist/models/ScholarshipAttendeeModel.d.ts +6 -0
  15. package/dist/models/ScholarshipAttendeeModel.js +32 -0
  16. package/dist/models/ScholarshipRequestModel.d.ts +10 -0
  17. package/dist/models/ScholarshipRequestModel.js +36 -0
  18. package/dist/models/user.d.ts +3 -3
  19. package/dist/models/user.js +4 -4
  20. package/package.json +1 -1
  21. package/src/data-source.ts +13 -1
  22. package/src/index.ts +21 -0
  23. package/src/models/RespondToEnquiriesApprovalModel.ts +104 -0
  24. package/src/models/RespondToEnquiriesAttachmentModel.ts +55 -0
  25. package/src/models/RespondToEnquiriesChatModel.ts +85 -0
  26. package/src/models/RespondToEnquiriesRequestModel.ts +160 -0
  27. package/src/models/RespondToEnquiriesWorkflowModel.ts +68 -0
  28. package/src/models/ScholarshipAttendeeModel.ts +14 -0
  29. package/src/models/ScholarshipRequestModel.ts +28 -0
  30. package/src/models/user.ts +5 -5
@@ -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
+ }
@@ -0,0 +1,14 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ @Entity({ name: "scholarship_attendees" })
5
+ export class ScholarshipAttendee extends BaseModel {
6
+ @Column({ type: "integer", nullable: false })
7
+ request_id: number;
8
+
9
+ @Column({ type: "integer", nullable: false })
10
+ attendee_id: number;
11
+
12
+ @Column({ type: "varchar", length: 320, nullable: false })
13
+ attendee_email: string;
14
+ }
@@ -44,6 +44,10 @@ export class ScholarshipRequests extends BaseModel {
44
44
  @Column({ type: "enum", enum: ScholarshipType, nullable: false })
45
45
  type: ScholarshipType;
46
46
 
47
+ /** Planned-flow only: whether amount exceeds threshold; Unplanned rows store null. */
48
+ @Column({ type: "varchar", length: 10, nullable: true })
49
+ is_amount_more_than_tenthousand: "Yes" | "No" | null;
50
+
47
51
  @Column({ type: "text", nullable: true })
48
52
  reason: string | null;
49
53
 
@@ -61,4 +65,28 @@ export class ScholarshipRequests extends BaseModel {
61
65
 
62
66
  @Column({ type: "varchar", length: 500, nullable: true })
63
67
  place: string | null;
68
+
69
+ @Column({ type: "boolean", default: false, nullable: false })
70
+ is_confirm: boolean;
71
+
72
+ @Column({ type: "varchar", length: 500, nullable: true })
73
+ training_entity: string | null;
74
+
75
+ @Column({ type: "varchar", length: 10, nullable: true })
76
+ media_coverage: "Yes" | "No" | null;
77
+
78
+ @Column({ type: "date", nullable: true })
79
+ training_start_date: string | null;
80
+
81
+ @Column({ type: "date", nullable: true })
82
+ training_end_date: string | null;
83
+
84
+ @Column({ type: "date", nullable: true })
85
+ travel_date: string | null;
86
+
87
+ @Column({ type: "date", nullable: true })
88
+ return_date: string | null;
89
+
90
+ @Column({ type: "text", nullable: true })
91
+ comment: string | null;
64
92
  }
@@ -52,8 +52,8 @@ export class User extends BaseModel {
52
52
  @Column({ nullable: true })
53
53
  blood_type?: string;
54
54
 
55
- @Column({ nullable: true })
56
- national_id?: string;
55
+ @Column({ type: 'bigint', nullable: true })
56
+ national_id?: number;
57
57
 
58
58
  @Column({ type: 'bigint', nullable: true })
59
59
  manpower_id?: number;
@@ -67,8 +67,8 @@ export class User extends BaseModel {
67
67
  @Column({ nullable: true })
68
68
  department?: number;
69
69
 
70
- @Column({ nullable: true })
71
- category: string; // Mandatory
70
+ @Column({ type: "enum", enum: ["CAA", "Embassy"], nullable: false, default: "CAA" })
71
+ category: "CAA" | "Embassy"; // Mandatory
72
72
 
73
73
  @Column({ nullable: true })
74
74
  directorate?: string;
@@ -156,7 +156,7 @@ export class User extends BaseModel {
156
156
  nationality?: string,
157
157
  email?: string,
158
158
  blood_type?: string,
159
- national_id?: string,
159
+ national_id?: number,
160
160
  manpower_id?: number,
161
161
  mobile?: string,
162
162
  office_number?: string,