@platform-modules/civil-aviation-authority 2.3.135 → 2.3.137

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 (28) hide show
  1. package/dist/index.d.ts +12 -0
  2. package/dist/index.js +23 -1
  3. package/dist/models/AppealAgainstAdministrativeDecisionRequestModel.d.ts +39 -0
  4. package/dist/models/AppealAgainstAdministrativeDecisionRequestModel.js +142 -0
  5. package/dist/models/CyberSecurityRiskManagementRequestModel.d.ts +24 -0
  6. package/dist/models/CyberSecurityRiskManagementRequestModel.js +86 -0
  7. package/dist/models/CyberSecurityRiskManagementRiskModel.d.ts +34 -0
  8. package/dist/models/CyberSecurityRiskManagementRiskModel.js +115 -0
  9. package/dist/models/LegalContractReviewApprovalModel.d.ts +26 -0
  10. package/dist/models/LegalContractReviewApprovalModel.js +97 -0
  11. package/dist/models/LegalContractReviewAttachmentModel.d.ts +14 -0
  12. package/dist/models/LegalContractReviewAttachmentModel.js +64 -0
  13. package/dist/models/LegalContractReviewChatModel.d.ts +28 -0
  14. package/dist/models/LegalContractReviewChatModel.js +84 -0
  15. package/dist/models/LegalContractReviewRequestModel.d.ts +38 -0
  16. package/dist/models/LegalContractReviewRequestModel.js +117 -0
  17. package/dist/models/LegalContractReviewWorkflowModel.d.ts +18 -0
  18. package/dist/models/LegalContractReviewWorkflowModel.js +68 -0
  19. package/package.json +1 -1
  20. package/src/index.ts +39 -14
  21. package/src/models/AppealAgainstAdministrativeDecisionRequestModel.ts +101 -0
  22. package/src/models/CyberSecurityRiskManagementRequestModel.ts +58 -0
  23. package/src/models/CyberSecurityRiskManagementRiskModel.ts +79 -0
  24. package/src/models/LegalContractReviewApprovalModel.ts +66 -0
  25. package/src/models/LegalContractReviewAttachmentModel.ts +38 -0
  26. package/src/models/LegalContractReviewChatModel.ts +60 -0
  27. package/src/models/LegalContractReviewRequestModel.ts +85 -0
  28. package/src/models/LegalContractReviewWorkflowModel.ts +44 -0
@@ -0,0 +1,58 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum CyberSecurityRiskManagementRequestStatus {
5
+ PENDING = "Pending",
6
+ ASSIGNED = "Assigned",
7
+ IN_PROGRESS = "In Progress",
8
+ COMPLETED = "Completed",
9
+ APPROVED = "Approved",
10
+ REJECTED = "Rejected"
11
+ }
12
+
13
+ @Entity({ name: "cyber_security_risk_management_requests" })
14
+ export class CyberSecurityRiskManagementRequest extends BaseModel {
15
+ @Column({ type: "integer", nullable: true })
16
+ req_user_department_id: number | null;
17
+
18
+ @Column({ type: "integer", nullable: true })
19
+ req_user_section_id: number | null;
20
+
21
+ @Column({ type: "integer", nullable: true })
22
+ req_user_position_id: number | null;
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: true })
34
+ description: string | null;
35
+
36
+ @Column({
37
+ type: "enum",
38
+ enum: CyberSecurityRiskManagementRequestStatus,
39
+ default: CyberSecurityRiskManagementRequestStatus.PENDING,
40
+ nullable: false
41
+ })
42
+ status: CyberSecurityRiskManagementRequestStatus;
43
+
44
+ @Column({ type: "integer", nullable: true })
45
+ reviewer_user_id: number | null;
46
+
47
+ @Column({ type: "integer", nullable: true })
48
+ assigned_to_user_id: number | null;
49
+
50
+ @Column({ type: "timestamp", nullable: true })
51
+ assigned_at: Date | null;
52
+
53
+ @Column({ type: "varchar", length: 255, nullable: true })
54
+ workflow_execution_id: string | null;
55
+
56
+ @Column({ type: "varchar", length: 255, nullable: true })
57
+ request_id: string | null;
58
+ }
@@ -0,0 +1,79 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum CyberSecurityRiskImpactedCategory {
5
+ PEOPLE = "People",
6
+ TECHNOLOGY = "Technology",
7
+ PROCESS = "Process",
8
+ PLACE = "Place"
9
+ }
10
+
11
+ /**
12
+ * Child rows for a Cyber Security Risk Management request.
13
+ * Risk value is stored after applying the CAA composite formula (see computeCaaCyberRiskValue in IT service).
14
+ */
15
+ @Entity({ name: "cyber_security_risk_management_risks" })
16
+ export class CyberSecurityRiskManagementRisk extends BaseModel {
17
+ @Column({ type: "integer", nullable: false })
18
+ request_id: number;
19
+
20
+ @Column({ type: "varchar", length: 100, nullable: false })
21
+ risk_no: string;
22
+
23
+ @Column({ type: "enum", enum: CyberSecurityRiskImpactedCategory, nullable: false })
24
+ impacted_category: CyberSecurityRiskImpactedCategory;
25
+
26
+ @Column({ type: "varchar", length: 500, nullable: false })
27
+ impact_area: string;
28
+
29
+ @Column({ type: "text", nullable: false })
30
+ threat: string;
31
+
32
+ @Column({ type: "text", nullable: false })
33
+ vulnerability: string;
34
+
35
+ @Column({ type: "text", nullable: false })
36
+ risk_description: string;
37
+
38
+ @Column({ type: "varchar", length: 500, nullable: false })
39
+ risk_owner: string;
40
+
41
+ @Column({ type: "integer", nullable: false })
42
+ asset_cia_impact: number;
43
+
44
+ @Column({ type: "integer", nullable: true })
45
+ asset_value: number | null;
46
+
47
+ @Column({ type: "integer", nullable: false })
48
+ likelihood: number;
49
+
50
+ @Column({ type: "integer", nullable: false })
51
+ business_impact: number;
52
+
53
+ @Column({ type: "integer", nullable: false })
54
+ risk_value: number;
55
+
56
+ @Column({ type: "text", nullable: false })
57
+ existing_controls: string;
58
+
59
+ @Column({ type: "date", nullable: false })
60
+ start_date: Date;
61
+
62
+ @Column({ type: "date", nullable: false })
63
+ end_date: Date;
64
+
65
+ @Column({ type: "varchar", length: 255, nullable: true })
66
+ iso_control_reference: string | null;
67
+
68
+ @Column({ type: "text", nullable: false })
69
+ risk_treatment_plan: string;
70
+
71
+ @Column({ type: "integer", nullable: true })
72
+ confidentiality: number | null;
73
+
74
+ @Column({ type: "integer", nullable: true })
75
+ integrity: number | null;
76
+
77
+ @Column({ type: "integer", nullable: true })
78
+ availability: number | null;
79
+ }
@@ -0,0 +1,66 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum LegalContractReviewApprovalStatus {
5
+ PENDING = "Pending",
6
+ IN_PROGRESS = "In Progress",
7
+ APPROVED = "Approved",
8
+ REJECTED = "Rejected",
9
+ ASSIGNED = "Assigned"
10
+ }
11
+
12
+ @Entity({ name: "legal_contract_review_approvals" })
13
+ export class LegalContractReviewApproval 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: LegalContractReviewApprovalStatus,
50
+ default: LegalContractReviewApprovalStatus.PENDING,
51
+ nullable: false
52
+ })
53
+ approval_status: LegalContractReviewApprovalStatus;
54
+
55
+ @Column({ type: "boolean", default: null, nullable: true })
56
+ is_manager: boolean | null;
57
+
58
+ @Column({ type: "boolean", default: false, nullable: true })
59
+ is_president: boolean | null;
60
+
61
+ @Column({ type: "boolean", default: false, nullable: true })
62
+ is_replace: boolean | null;
63
+
64
+ @Column({ type: "boolean", default: true, nullable: false })
65
+ is_allowed: boolean;
66
+ }
@@ -0,0 +1,38 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ @Entity({ name: "legal_contract_review_request_attachments" })
5
+ export class LegalContractReviewRequestAttachment 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: "varchar", length: 100, nullable: true })
31
+ mime_type: string | null;
32
+
33
+ @Column({ type: "varchar", length: 500, nullable: true })
34
+ file_path: string | null;
35
+
36
+ @Column({ type: "text", nullable: true })
37
+ description: string | null;
38
+ }
@@ -0,0 +1,60 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum LegalContractReviewMessageType {
5
+ TEXT = "text",
6
+ IMAGE = "image",
7
+ VIDEO = "video",
8
+ FILE = "file",
9
+ LINK = "link"
10
+ }
11
+
12
+ export enum LegalContractReviewChatStatus {
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: "legal_contract_review_request_chat" })
23
+ export class LegalContractReviewRequestChat 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: LegalContractReviewMessageType,
45
+ default: LegalContractReviewMessageType.TEXT,
46
+ nullable: false
47
+ })
48
+ messageType: LegalContractReviewMessageType;
49
+
50
+ @Column({ type: "boolean", default: false })
51
+ is_internal: boolean;
52
+
53
+ @Column({
54
+ type: "enum",
55
+ enum: LegalContractReviewChatStatus,
56
+ default: LegalContractReviewChatStatus.PENDING,
57
+ nullable: false
58
+ })
59
+ status: LegalContractReviewChatStatus;
60
+ }
@@ -0,0 +1,85 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum LegalContractReviewRequestStatus {
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 LegalContractReviewRequestType {
14
+ CONTRACT = "Contract",
15
+ PROJECT_REPORT = "Project Report",
16
+ AGREEMENT = "Agreement",
17
+ OTHER = "Other"
18
+ }
19
+
20
+ @Entity({ name: "legal_contract_review_requests" })
21
+ export class LegalContractReviewRequest extends BaseModel {
22
+ @Column({ type: "integer", nullable: true })
23
+ req_user_department_id: number | null;
24
+
25
+ @Column({ type: "integer", nullable: true })
26
+ req_user_section_id: number | null;
27
+
28
+ @Column({ type: "integer", nullable: true })
29
+ req_user_position_id: number | null;
30
+
31
+ @Column({ type: "integer", nullable: true })
32
+ service_id: number | null;
33
+
34
+ @Column({ type: "integer", nullable: true })
35
+ sub_service_id: number | null;
36
+
37
+ @Column({ type: "integer", nullable: false })
38
+ user_id: number;
39
+
40
+ @Column({ type: "text", nullable: false })
41
+ description: string;
42
+
43
+ @Column({
44
+ type: "enum",
45
+ enum: LegalContractReviewRequestStatus,
46
+ default: LegalContractReviewRequestStatus.PENDING,
47
+ nullable: false
48
+ })
49
+ status: LegalContractReviewRequestStatus;
50
+
51
+ @Column({ type: "integer", nullable: true })
52
+ reviewer_user_id: number | null;
53
+
54
+ @Column({ type: "integer", nullable: true })
55
+ assigned_to_user_id: number | null;
56
+
57
+ @Column({ type: "timestamp", nullable: true })
58
+ assigned_at: Date | null;
59
+
60
+ @Column({ type: "varchar", length: 255, nullable: true })
61
+ workflow_execution_id: string | null;
62
+
63
+ @Column({ type: "varchar", length: 255, nullable: true })
64
+ request_id: string | null;
65
+
66
+ @Column({ type: "date", nullable: false })
67
+ submission_date: Date;
68
+
69
+ @Column({ type: "varchar", length: 500, nullable: false })
70
+ request_title: string;
71
+
72
+ @Column({ type: "enum", enum: LegalContractReviewRequestType, nullable: false })
73
+ request_type: LegalContractReviewRequestType;
74
+
75
+ /** Optional override: department selected manually instead of profile only */
76
+ @Column({ type: "integer", nullable: true })
77
+ department_id: number | null;
78
+
79
+ /** Display name for HOS / department (profile-derived or manual) */
80
+ @Column({ type: "varchar", length: 500, nullable: false })
81
+ hos_or_department_name: string;
82
+
83
+ @Column({ type: "boolean", nullable: false, default: false })
84
+ acknowledgement: boolean;
85
+ }
@@ -0,0 +1,44 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from "./BaseModel";
3
+
4
+ export enum LegalContractReviewWorkFlowStatus {
5
+ COMPLETED = "Completed",
6
+ NOT_YET_STARTED = "Not Yet Started",
7
+ PENDING = "Pending",
8
+ REJECTED = "Rejected"
9
+ }
10
+
11
+ @Entity({ name: "legal_contract_review_work_flows" })
12
+ export class LegalContractReviewWorkFlow 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: LegalContractReviewWorkFlowStatus,
40
+ default: LegalContractReviewWorkFlowStatus.PENDING,
41
+ nullable: false
42
+ })
43
+ status: LegalContractReviewWorkFlowStatus;
44
+ }