@platform-modules/civil-aviation-authority 2.3.13 → 2.3.15

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.
@@ -0,0 +1,52 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ @Entity({ name: 'assign_tasks_emp_attachments' })
5
+ export class AssignTasksEmpRequestAttachment extends BaseModel {
6
+
7
+ @Column({ type: 'integer', nullable: false })
8
+ request_id: number;
9
+
10
+ @Column({ type: 'integer', nullable: true })
11
+ service_id: number | null;
12
+
13
+ @Column({ type: 'integer', nullable: true })
14
+ sub_service_id: number | null;
15
+
16
+ @Column({ type: 'varchar', length: 500, nullable: false })
17
+ file_url: string;
18
+
19
+ @Column({ type: 'varchar', length: 255, nullable: true })
20
+ file_name: string;
21
+
22
+ @Column({ type: 'varchar', length: 100, nullable: true })
23
+ file_type: string;
24
+
25
+ @Column({ type: 'bigint', nullable: true })
26
+ file_size: number | null;
27
+
28
+ @Column({ type: 'integer', nullable: true })
29
+ chat_id: number | null;
30
+
31
+ constructor(
32
+ request_id: number,
33
+ file_url: string,
34
+ file_name?: string,
35
+ file_type?: string,
36
+ file_size?: number,
37
+ service_id?: number,
38
+ sub_service_id?: number,
39
+ chat_id?: number
40
+ ) {
41
+ super();
42
+ this.request_id = request_id;
43
+ this.service_id = service_id || null;
44
+ this.sub_service_id = sub_service_id || null;
45
+ this.file_url = file_url;
46
+ this.file_name = file_name || '';
47
+ this.file_type = file_type || '';
48
+ this.file_size = file_size || null;
49
+ this.chat_id = chat_id || null;
50
+ }
51
+ }
52
+
@@ -0,0 +1,65 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum AssignTasksEmpMessageType {
5
+ TEXT = "text",
6
+ IMAGE = "image",
7
+ VIDEO = "video",
8
+ FILE = "file",
9
+ LINK = "link"
10
+ }
11
+
12
+ @Entity({ name: 'assign_tasks_emp_chats' })
13
+ export class AssignTasksEmpRequestChat extends BaseModel {
14
+
15
+ @Column({ type: 'integer', nullable: false })
16
+ request_id: number;
17
+
18
+ @Column({ type: 'integer', nullable: true })
19
+ service_id: number | null;
20
+
21
+ @Column({ type: 'integer', nullable: true })
22
+ sub_service_id: number | null;
23
+
24
+ @Column({ type: 'integer', nullable: false })
25
+ user_id: number;
26
+
27
+ @Column({ type: 'integer', nullable: true })
28
+ role_id: number;
29
+
30
+ @Column({ type: 'text', nullable: false })
31
+ message: string;
32
+
33
+ @Column({
34
+ type: 'enum',
35
+ enum: AssignTasksEmpMessageType,
36
+ default: AssignTasksEmpMessageType.TEXT,
37
+ nullable: false
38
+ })
39
+ messageType: AssignTasksEmpMessageType;
40
+
41
+ @Column({ type: 'text', nullable: true })
42
+ status: string | null;
43
+
44
+ constructor(
45
+ request_id: number,
46
+ user_id: number,
47
+ role_id: number,
48
+ message: string,
49
+ service_id?: number,
50
+ sub_service_id?: number,
51
+ messageType?: AssignTasksEmpMessageType,
52
+ status?: string | null
53
+ ) {
54
+ super();
55
+ this.request_id = request_id;
56
+ this.service_id = service_id || null;
57
+ this.sub_service_id = sub_service_id || null;
58
+ this.user_id = user_id;
59
+ this.role_id = role_id;
60
+ this.message = message;
61
+ this.messageType = messageType || AssignTasksEmpMessageType.TEXT;
62
+ this.status = status || null;
63
+ }
64
+ }
65
+
@@ -0,0 +1,90 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum AssignTasksEmpPriority {
5
+ HIGH = "High",
6
+ MEDIUM = "Medium",
7
+ LOW = "Low"
8
+ }
9
+
10
+ export enum AssignTasksEmpStatus {
11
+ ASSIGNED = "Assigned",
12
+ IN_PROGRESS = "In Progress",
13
+ APPROVED = "Completed"
14
+ }
15
+
16
+ @Entity({ name: 'assign_tasks_emp_requests' })
17
+ export class AssignTasksEmpRequests extends BaseModel {
18
+
19
+ // Common columns from duty_mission_request table
20
+ @Column({ type: 'int', nullable: true })
21
+ req_user_department_id: number | null;
22
+
23
+ @Column({ type: 'int', nullable: true })
24
+ req_user_section_id: number | null;
25
+
26
+ @Column({ nullable: true })
27
+ service_id: number;
28
+
29
+ @Column({ nullable: true })
30
+ sub_service_id: number;
31
+
32
+ @Column({ nullable: false })
33
+ user_id: number;
34
+
35
+ // New columns
36
+ @Column({ type: 'varchar', length: 255, nullable: false })
37
+ task_title: string;
38
+
39
+ @Column({ type: 'text', nullable: false })
40
+ task_description: string;
41
+
42
+ @Column({
43
+ type: "enum",
44
+ enum: AssignTasksEmpPriority,
45
+ nullable: false,
46
+ })
47
+ priority: AssignTasksEmpPriority;
48
+
49
+ @Column({ type: "date", nullable: true })
50
+ completion_date: Date | null;
51
+
52
+ @Column({
53
+ type: "enum",
54
+ enum: AssignTasksEmpStatus,
55
+ default: AssignTasksEmpStatus.ASSIGNED,
56
+ nullable: false,
57
+ })
58
+ status: AssignTasksEmpStatus;
59
+
60
+ @Column({ type: "varchar", nullable: true })
61
+ workflow_execution_id: string | null;
62
+
63
+ constructor(
64
+ req_user_department_id: number | null,
65
+ req_user_section_id: number | null,
66
+ service_id: number,
67
+ sub_service_id: number,
68
+ user_id: number,
69
+ task_title: string,
70
+ task_description: string,
71
+ priority: AssignTasksEmpPriority,
72
+ status: AssignTasksEmpStatus,
73
+ completion_date?: Date | null,
74
+ workflow_execution_id?: string | null,
75
+ ) {
76
+ super();
77
+ this.req_user_department_id = req_user_department_id ?? null;
78
+ this.req_user_section_id = req_user_section_id ?? null;
79
+ this.service_id = service_id;
80
+ this.sub_service_id = sub_service_id;
81
+ this.user_id = user_id;
82
+ this.task_title = task_title;
83
+ this.task_description = task_description;
84
+ this.priority = priority;
85
+ this.completion_date = completion_date ?? null;
86
+ this.status = status;
87
+ this.workflow_execution_id = workflow_execution_id ?? null;
88
+ }
89
+ }
90
+
@@ -0,0 +1,63 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum AssignTasksEmpWorkFlowStatus {
5
+ COMPLETED = "Completed",
6
+ NOT_YET_STARTED = "Not Yet Started",
7
+ PENDING = "Pending"
8
+ }
9
+
10
+ //This model is used to store the assign tasks workflow status and activity logs
11
+ @Entity({ name: 'assign_tasks_emp_workflows' })
12
+ export class AssignTasksEmpWorkFlow extends BaseModel {
13
+ @Column({ type: 'integer', 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: 'varchar', length: 500, nullable: false })
23
+ content: string;
24
+
25
+ @Column({ type: 'enum', enum: AssignTasksEmpWorkFlowStatus, default: AssignTasksEmpWorkFlowStatus.NOT_YET_STARTED, nullable: false })
26
+ status: AssignTasksEmpWorkFlowStatus;
27
+
28
+ @Column({ type: 'integer', nullable: true })
29
+ user_id: number | null;
30
+
31
+ @Column({ type: 'integer', nullable: true })
32
+ role_id: number | null;
33
+
34
+ @Column({ type: 'integer', nullable: true })
35
+ department_id: number | null;
36
+
37
+ @Column({ type: 'integer', nullable: true })
38
+ section_id: number | null;
39
+
40
+ constructor(
41
+ request_id: number,
42
+ content: string,
43
+ status: AssignTasksEmpWorkFlowStatus,
44
+ service_id?: number,
45
+ sub_service_id?: number,
46
+ user_id?: number,
47
+ role_id?: number,
48
+ department_id?: number,
49
+ section_id?: number
50
+ ) {
51
+ super();
52
+ this.request_id = request_id;
53
+ this.service_id = service_id || null;
54
+ this.sub_service_id = sub_service_id || null;
55
+ this.content = content;
56
+ this.status = status;
57
+ this.user_id = user_id || null;
58
+ this.role_id = role_id || null;
59
+ this.department_id = department_id || null;
60
+ this.section_id = section_id || null;
61
+ }
62
+ }
63
+
@@ -0,0 +1,95 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum RequestForCoverageApprovalStatus {
5
+ PENDING = "Pending",
6
+ IN_PROGRESS = "In Progress",
7
+ APPROVED = "Approved",
8
+ REJECTED = "Rejected",
9
+ ASSIGNED = "Assigned",
10
+ RFC = "Request For Change"
11
+ }
12
+
13
+ @Entity({ name: "request_for_coverage_approvals" })
14
+ export class RequestForCoverageApprovalDetails extends BaseModel {
15
+ @Column({ type: "integer", nullable: false })
16
+ request_id: number;
17
+
18
+ @Column({ type: "integer", nullable: true })
19
+ service_id: number | null;
20
+
21
+ @Column({ type: "integer", nullable: true })
22
+ sub_service_id: number | null;
23
+
24
+ @Column({ type: "integer", nullable: false })
25
+ level: number;
26
+
27
+ @Column({ type: "integer", nullable: true })
28
+ approver_user_id: number | null;
29
+
30
+ @Column({ type: "integer", nullable: true })
31
+ approver_role_id: number | null;
32
+
33
+ @Column({ type: "integer", nullable: true })
34
+ department_id: number | null;
35
+
36
+ @Column({ type: "integer", nullable: true })
37
+ section_id: number | null;
38
+
39
+ @Column({ type: "integer", nullable: true })
40
+ delegate_user_id: number | null;
41
+
42
+ @Column({ type: "integer", nullable: true })
43
+ approved_by: number | null;
44
+
45
+ @Column({ type: "varchar", length: 255, nullable: true, default: "" })
46
+ comment: string;
47
+
48
+ @Column({
49
+ type: "enum",
50
+ enum: RequestForCoverageApprovalStatus,
51
+ default: RequestForCoverageApprovalStatus.PENDING,
52
+ nullable: false
53
+ })
54
+ approval_status: RequestForCoverageApprovalStatus;
55
+
56
+ @Column({ type: "boolean", default: false, nullable: false })
57
+ is_manager: boolean;
58
+
59
+ @Column({ type: "boolean", default: true, nullable: false })
60
+ is_allowed: boolean;
61
+
62
+ constructor(
63
+ request_id: number,
64
+ approver_user_id: number | null,
65
+ approver_role_id: number | null,
66
+ comment: string,
67
+ approval_status: RequestForCoverageApprovalStatus,
68
+ level: number,
69
+ service_id?: number | null,
70
+ sub_service_id?: number | null,
71
+ department_id?: number | null,
72
+ section_id?: number | null,
73
+ delegate_user_id?: number | null,
74
+ approved_by?: number | null,
75
+ is_manager?: boolean,
76
+ is_allowed?: boolean
77
+ ) {
78
+ super();
79
+ this.request_id = request_id;
80
+ this.service_id = service_id || null;
81
+ this.sub_service_id = sub_service_id || null;
82
+ this.approver_user_id = approver_user_id;
83
+ this.approver_role_id = approver_role_id;
84
+ this.comment = comment;
85
+ this.approval_status = approval_status;
86
+ this.level = level;
87
+ this.department_id = department_id || null;
88
+ this.section_id = section_id || null;
89
+ this.delegate_user_id = delegate_user_id || null;
90
+ this.approved_by = approved_by || null;
91
+ this.is_manager = is_manager ?? false;
92
+ this.is_allowed = is_allowed !== undefined ? is_allowed : true;
93
+ }
94
+ }
95
+
@@ -0,0 +1,56 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ @Entity({ name: "request_for_coverage_request_attachments" })
5
+ export class RequestForCoverageRequestAttachment 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
+ }
56
+
@@ -0,0 +1,76 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum RequestForCoverageMessageType {
5
+ TEXT = "text",
6
+ IMAGE = "image",
7
+ VIDEO = "video",
8
+ FILE = "file",
9
+ LINK = "link"
10
+ }
11
+
12
+ export enum RequestForCoverageChatStatus {
13
+ PENDING = "Pending",
14
+ APPROVED = "Approved",
15
+ REJECTED = "Rejected",
16
+ IN_PROGRESS = "In Progress"
17
+ }
18
+
19
+ @Entity({ name: "request_for_coverage_request_chat" })
20
+ export class RequestForCoverageRequestChat extends BaseModel {
21
+ @Column({ type: "integer", nullable: false })
22
+ request_id: number;
23
+
24
+ @Column({ type: "integer", nullable: true })
25
+ service_id: number | null;
26
+
27
+ @Column({ type: "integer", nullable: true })
28
+ sub_service_id: number | null;
29
+
30
+ @Column({ type: "integer", nullable: false })
31
+ user_id: number;
32
+
33
+ @Column({ type: "text", nullable: false })
34
+ message: string;
35
+
36
+ @Column({ type: "integer", nullable: true })
37
+ approver_role_id: number | null;
38
+
39
+ @Column({
40
+ type: "enum",
41
+ enum: RequestForCoverageMessageType,
42
+ default: RequestForCoverageMessageType.TEXT,
43
+ nullable: false
44
+ })
45
+ messageType: RequestForCoverageMessageType;
46
+
47
+ @Column({ type: "boolean", default: false })
48
+ is_internal: boolean;
49
+
50
+ @Column({ type: "text", nullable: false })
51
+ status: string;
52
+
53
+ constructor(
54
+ request_id: number,
55
+ user_id: number,
56
+ message: string,
57
+ service_id?: number | null,
58
+ sub_service_id?: number | null,
59
+ messageType?: RequestForCoverageMessageType,
60
+ is_internal?: boolean,
61
+ status?: string,
62
+ approver_role_id?: number
63
+ ) {
64
+ super();
65
+ this.request_id = request_id;
66
+ this.service_id = service_id || null;
67
+ this.sub_service_id = sub_service_id || null;
68
+ this.user_id = user_id;
69
+ this.message = message;
70
+ this.messageType = messageType || RequestForCoverageMessageType.TEXT;
71
+ this.is_internal = is_internal || false;
72
+ this.status = status || 'Pending';
73
+ this.approver_role_id = approver_role_id || null;
74
+ }
75
+ }
76
+
@@ -0,0 +1,169 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum RequestForCoverageRequestStatus {
5
+ PENDING = "Pending",
6
+ IN_PROGRESS = "In Progress",
7
+ COMPLETED = "Completed",
8
+ APPROVED = "Approved",
9
+ REJECTED = "Rejected"
10
+ }
11
+
12
+ export enum RequestForCoverageNewsSize {
13
+ SMALL = "Small",
14
+ MEDIUM = "Medium",
15
+ LARGE = "Large"
16
+ }
17
+
18
+ @Entity({ name: "request_for_coverage_requests" })
19
+ export class RequestForCoverageRequest extends BaseModel {
20
+ @Column({ type: "integer", nullable: true })
21
+ req_user_department_id: number | null;
22
+
23
+ @Column({ type: "integer", nullable: true })
24
+ req_user_section_id: number | null;
25
+
26
+ @Column({ type: "integer", nullable: true })
27
+ req_user_position_id: number | null;
28
+
29
+ @Column({ type: "integer", nullable: true })
30
+ service_id: number | null;
31
+
32
+ @Column({ type: "integer", nullable: true })
33
+ sub_service_id: number | null;
34
+
35
+ @Column({ type: "integer", nullable: false })
36
+ user_id: number;
37
+
38
+ @Column({ type: "boolean", default: false, nullable: false })
39
+ required_for_president: boolean;
40
+
41
+ @Column({ type: "integer", nullable: true })
42
+ directorate_id: number | null;
43
+
44
+ @Column({ type: "integer", nullable: true })
45
+ department_id: number | null;
46
+
47
+ @Column({ type: "varchar", length: 50, nullable: true })
48
+ extension_number: string | null;
49
+
50
+ @Column({ type: "varchar", length: 255, nullable: true })
51
+ suggested_photography: string | null;
52
+
53
+ @Column({ type: "date", nullable: false })
54
+ event_date: Date;
55
+
56
+ @Column({ type: "time", nullable: false })
57
+ event_time: string;
58
+
59
+ @Column({ type: "varchar", length: 255, nullable: false })
60
+ event_location: string;
61
+
62
+ @Column({
63
+ type: "enum",
64
+ enum: RequestForCoverageNewsSize,
65
+ nullable: true
66
+ })
67
+ news_size: RequestForCoverageNewsSize | null;
68
+
69
+ @Column({ type: "text", nullable: true })
70
+ event_objective: string | null;
71
+
72
+ @Column({ type: "varchar", length: 255, nullable: true })
73
+ organizing_entity: string | null;
74
+
75
+ @Column({ type: "varchar", length: 255, nullable: true })
76
+ hosted_person: string | null;
77
+
78
+ @Column({ type: "text", nullable: true })
79
+ audience: string | null;
80
+
81
+ @Column({ type: "text", nullable: false })
82
+ event_details: string;
83
+
84
+ @Column({ type: "text", nullable: false })
85
+ importance_of_publishing: string;
86
+
87
+ @Column({
88
+ type: "enum",
89
+ enum: RequestForCoverageRequestStatus,
90
+ default: RequestForCoverageRequestStatus.PENDING,
91
+ nullable: false
92
+ })
93
+ status: RequestForCoverageRequestStatus;
94
+
95
+ @Column({ type: "integer", nullable: true })
96
+ reviewer_user_id: number | null;
97
+
98
+ @Column({ type: "integer", nullable: true })
99
+ assigned_to_user_id: number | null;
100
+
101
+ @Column({ type: "timestamp", nullable: true })
102
+ assigned_at: Date | null;
103
+
104
+ @Column({ type: "varchar", length: 255, nullable: true })
105
+ workflow_execution_id: string | null;
106
+
107
+ @Column({ type: "varchar", length: 500, nullable: true })
108
+ rejection_reason: string | null;
109
+
110
+ constructor(
111
+ user_id: number,
112
+ event_date: Date,
113
+ event_time: string,
114
+ event_location: string,
115
+ event_details: string,
116
+ importance_of_publishing: string,
117
+ required_for_president: boolean = false,
118
+ status: RequestForCoverageRequestStatus = RequestForCoverageRequestStatus.PENDING,
119
+ service_id?: number | null,
120
+ sub_service_id?: number | null,
121
+ req_user_department_id?: number | null,
122
+ req_user_section_id?: number | null,
123
+ req_user_position_id?: number | null,
124
+ directorate_id?: number | null,
125
+ department_id?: number | null,
126
+ extension_number?: string | null,
127
+ suggested_photography?: string | null,
128
+ news_size?: RequestForCoverageNewsSize | null,
129
+ event_objective?: string | null,
130
+ organizing_entity?: string | null,
131
+ hosted_person?: string | null,
132
+ audience?: string | null,
133
+ reviewer_user_id?: number | null,
134
+ assigned_to_user_id?: number | null,
135
+ assigned_at?: Date | null,
136
+ workflow_execution_id?: string | null,
137
+ rejection_reason?: string | null
138
+ ) {
139
+ super();
140
+ this.user_id = user_id;
141
+ this.event_date = event_date;
142
+ this.event_time = event_time;
143
+ this.event_location = event_location;
144
+ this.event_details = event_details;
145
+ this.importance_of_publishing = importance_of_publishing;
146
+ this.required_for_president = required_for_president;
147
+ this.status = status;
148
+ this.service_id = service_id || null;
149
+ this.sub_service_id = sub_service_id || null;
150
+ this.req_user_department_id = req_user_department_id || null;
151
+ this.req_user_section_id = req_user_section_id || null;
152
+ this.req_user_position_id = req_user_position_id || null;
153
+ this.directorate_id = directorate_id || null;
154
+ this.department_id = department_id || null;
155
+ this.extension_number = extension_number || null;
156
+ this.suggested_photography = suggested_photography || null;
157
+ this.news_size = news_size || null;
158
+ this.event_objective = event_objective || null;
159
+ this.organizing_entity = organizing_entity || null;
160
+ this.hosted_person = hosted_person || null;
161
+ this.audience = audience || null;
162
+ this.reviewer_user_id = reviewer_user_id || null;
163
+ this.assigned_to_user_id = assigned_to_user_id || null;
164
+ this.assigned_at = assigned_at || null;
165
+ this.workflow_execution_id = workflow_execution_id || null;
166
+ this.rejection_reason = rejection_reason || null;
167
+ }
168
+ }
169
+