@platform-modules/foreign-ministry 1.2.100 → 1.2.101

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 (86) hide show
  1. package/.env +1 -1
  2. package/dist/data-source.js +5 -1
  3. package/dist/index.d.ts +11 -0
  4. package/dist/index.js +18 -1
  5. package/dist/models/DiplomaticClubCardApprovalModel.d.ts +16 -0
  6. package/dist/models/DiplomaticClubCardApprovalModel.js +58 -0
  7. package/dist/models/DiplomaticClubCardAttachmentModel.d.ts +9 -0
  8. package/dist/models/DiplomaticClubCardAttachmentModel.js +44 -0
  9. package/dist/models/DiplomaticClubCardChatModel.d.ts +7 -0
  10. package/dist/models/DiplomaticClubCardChatModel.js +36 -0
  11. package/dist/models/DiplomaticClubCardMemberModel.d.ts +13 -0
  12. package/dist/models/DiplomaticClubCardMemberModel.js +60 -0
  13. package/dist/models/DiplomaticClubCardRequestModel.d.ts +33 -0
  14. package/dist/models/DiplomaticClubCardRequestModel.js +98 -0
  15. package/dist/models/DiplomaticClubCardWorkFlowModel.d.ts +12 -0
  16. package/dist/models/DiplomaticClubCardWorkFlowModel.js +42 -0
  17. package/dist/models/DiplomaticRequestsModel.d.ts +1 -0
  18. package/dist/models/DiplomaticRequestsModel.js +4 -0
  19. package/dist/models/DiplomaticServiceDetailsModel.d.ts +20 -0
  20. package/dist/models/DiplomaticServiceDetailsModel.js +65 -0
  21. package/dist/models/DiplomaticSettingsModel.d.ts +11 -0
  22. package/dist/models/DiplomaticSettingsModel.js +59 -0
  23. package/dist/models/DiplomaticTitleModel.d.ts +12 -0
  24. package/dist/models/DiplomaticTitleModel.js +45 -0
  25. package/dist/models/GeneralServiceChatsModel.d.ts +3 -1
  26. package/dist/models/GeneralServiceChatsModel.js +12 -2
  27. package/dist/models/HelpdeskAutoClosureConfig.d.ts +12 -0
  28. package/dist/models/HelpdeskAutoClosureConfig.js +59 -0
  29. package/dist/models/HelpdeskKnowledgeBase.d.ts +13 -0
  30. package/dist/models/HelpdeskKnowledgeBase.js +61 -0
  31. package/dist/models/MissionTravelApprovalModel.d.ts +1 -2
  32. package/dist/models/MissionTravelApprovalModel.js +1 -2
  33. package/dist/models/PassportRequestApprovalModel.d.ts +22 -0
  34. package/dist/models/PassportRequestApprovalModel.js +91 -0
  35. package/dist/models/PassportRequestAttachmentModel.d.ts +10 -0
  36. package/dist/models/PassportRequestAttachmentModel.js +54 -0
  37. package/dist/models/PassportRequestChatModel.d.ts +8 -0
  38. package/dist/models/PassportRequestChatModel.js +44 -0
  39. package/dist/models/PassportRequestDependentModel.d.ts +20 -0
  40. package/dist/models/PassportRequestDependentModel.js +85 -0
  41. package/dist/models/PassportRequestModel.d.ts +40 -0
  42. package/dist/models/PassportRequestModel.js +128 -0
  43. package/dist/models/PassportRequestWorkFlowModel.d.ts +15 -0
  44. package/dist/models/PassportRequestWorkFlowModel.js +60 -0
  45. package/dist/models/RequestPassportRequestModel.d.ts +0 -11
  46. package/dist/models/RequestPassportRequestModel.js +0 -44
  47. package/dist/models/RetiredCardApprovalsModel.d.ts +33 -0
  48. package/dist/models/RetiredCardApprovalsModel.js +110 -0
  49. package/dist/models/RetiredCardAttachmentsModel.d.ts +16 -0
  50. package/dist/models/RetiredCardAttachmentsModel.js +60 -0
  51. package/dist/models/RetiredCardChatsModel.d.ts +26 -0
  52. package/dist/models/RetiredCardChatsModel.js +84 -0
  53. package/dist/models/RetiredCardRequestsModel.d.ts +39 -0
  54. package/dist/models/RetiredCardRequestsModel.js +117 -0
  55. package/dist/models/RetiredCardWorkFlowModel.d.ts +33 -0
  56. package/dist/models/RetiredCardWorkFlowModel.js +93 -0
  57. package/dist/models/SectionModel.d.ts +2 -1
  58. package/dist/models/SectionModel.js +7 -2
  59. package/dist/models/SubscriptionAmountModel.d.ts +67 -0
  60. package/dist/models/SubscriptionAmountModel.js +114 -0
  61. package/package.json +1 -1
  62. package/src/data-source.ts +273 -268
  63. package/src/index.ts +12 -0
  64. package/src/models/DiplomaticClubSubscriptionMasterModel.ts +26 -26
  65. package/src/models/DiplomaticRequestsModel.ts +157 -154
  66. package/src/models/GeneralServiceChatsModel.ts +11 -1
  67. package/src/models/HelpdeskAutoClosureConfig.ts +41 -0
  68. package/src/models/HelpdeskKnowledgeBase.ts +46 -0
  69. package/src/models/LeaveConfigModel.ts +71 -71
  70. package/src/models/MissionTravelApprovalModel.ts +94 -95
  71. package/src/models/MissionTravelAttachmentModel.ts +56 -56
  72. package/src/models/MissionTravelChatModel.ts +52 -52
  73. package/src/models/MissionTravelPersonModel.ts +105 -105
  74. package/src/models/MissionTravelRequestModel.ts +0 -1
  75. package/src/models/MissionTravelWorkflowModel.ts +54 -54
  76. package/src/models/RequestPassportRequestModel.ts +22 -22
  77. package/src/models/RetiredCardApprovalsModel.ts +98 -0
  78. package/src/models/RetiredCardAttachmentsModel.ts +38 -0
  79. package/src/models/RetiredCardChatsModel.ts +72 -0
  80. package/src/models/RetiredCardRequestsModel.ts +109 -0
  81. package/src/models/RetiredCardWorkFlowModel.ts +66 -0
  82. package/src/models/SectionModel.ts +6 -1
  83. package/dist/models/MissionTravelClassConfigModel.d.ts +0 -10
  84. package/dist/models/MissionTravelClassConfigModel.js +0 -50
  85. package/dist/models/MissionTravelPerdiemModel.d.ts +0 -10
  86. package/dist/models/MissionTravelPerdiemModel.js +0 -54
@@ -1,55 +1,55 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum MissionTravelWorkFlowStatus {
5
- COMPLETED = "Completed",
6
- NOT_YET_STARTED = "Not Yet Started",
7
- PENDING = "Pending"
8
- }
9
-
10
- @Entity({ name: 'mission_travel_workflows' })
11
- export class MissionTravelWorkFlow extends BaseModel {
12
- @Column({ type: 'int', nullable: false })
13
- request_id: number;
14
-
15
- @Column({ type: 'int', nullable: true })
16
- service_id: number | null;
17
-
18
- @Column({ type: 'int', nullable: true })
19
- sub_service_id: number | null;
20
-
21
- @Column({ type: 'int', nullable: true })
22
- order: number | null;
23
-
24
- @Column({ type: 'varchar', length: 255, nullable: false })
25
- content: string;
26
-
27
- @Column({ type: 'enum', enum: MissionTravelWorkFlowStatus, default: MissionTravelWorkFlowStatus.NOT_YET_STARTED, nullable: false })
28
- status: MissionTravelWorkFlowStatus;
29
-
30
- @Column({ type: 'integer', nullable: true })
31
- user_id: number | null;
32
-
33
- @Column({ type: 'integer', nullable: true })
34
- role_id: number | null;
35
-
36
- @Column({ type: 'integer', nullable: true })
37
- department_id: number | null;
38
-
39
- @Column({ type: 'integer', nullable: true })
40
- section_id: number | null;
41
-
42
- constructor(request_id: number, content: string, status: MissionTravelWorkFlowStatus, order?: number, service_id?: number | null, sub_service_id?: number | null, user_id?: number | null, role_id?: number | null, department_id?: number | null, section_id?: number | null) {
43
- super();
44
- this.request_id = request_id;
45
- this.content = content;
46
- this.status = status;
47
- this.order = order || null;
48
- this.service_id = service_id ?? null;
49
- this.sub_service_id = sub_service_id ?? null;
50
- this.user_id = user_id || null;
51
- this.role_id = role_id || null;
52
- this.department_id = department_id || null;
53
- this.section_id = section_id || null;
54
- }
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum MissionTravelWorkFlowStatus {
5
+ COMPLETED = "Completed",
6
+ NOT_YET_STARTED = "Not Yet Started",
7
+ PENDING = "Pending"
8
+ }
9
+
10
+ @Entity({ name: 'mission_travel_workflows' })
11
+ export class MissionTravelWorkFlow extends BaseModel {
12
+ @Column({ type: 'int', nullable: false })
13
+ request_id: number;
14
+
15
+ @Column({ type: 'int', nullable: true })
16
+ service_id: number | null;
17
+
18
+ @Column({ type: 'int', nullable: true })
19
+ sub_service_id: number | null;
20
+
21
+ @Column({ type: 'int', nullable: true })
22
+ order: number | null;
23
+
24
+ @Column({ type: 'varchar', length: 255, nullable: false })
25
+ content: string;
26
+
27
+ @Column({ type: 'enum', enum: MissionTravelWorkFlowStatus, default: MissionTravelWorkFlowStatus.NOT_YET_STARTED, nullable: false })
28
+ status: MissionTravelWorkFlowStatus;
29
+
30
+ @Column({ type: 'integer', nullable: true })
31
+ user_id: number | null;
32
+
33
+ @Column({ type: 'integer', nullable: true })
34
+ role_id: number | null;
35
+
36
+ @Column({ type: 'integer', nullable: true })
37
+ department_id: number | null;
38
+
39
+ @Column({ type: 'integer', nullable: true })
40
+ section_id: number | null;
41
+
42
+ constructor(request_id: number, content: string, status: MissionTravelWorkFlowStatus, order?: number, service_id?: number | null, sub_service_id?: number | null, user_id?: number | null, role_id?: number | null, department_id?: number | null, section_id?: number | null) {
43
+ super();
44
+ this.request_id = request_id;
45
+ this.content = content;
46
+ this.status = status;
47
+ this.order = order || null;
48
+ this.service_id = service_id ?? null;
49
+ this.sub_service_id = sub_service_id ?? null;
50
+ this.user_id = user_id || null;
51
+ this.role_id = role_id || null;
52
+ this.department_id = department_id || null;
53
+ this.section_id = section_id || null;
54
+ }
55
55
  }
@@ -70,38 +70,38 @@ export class RequestPassportRequests extends BaseModel {
70
70
  @Column({ type: 'int', nullable: false })
71
71
  approved_mission_travel_id: number;
72
72
 
73
- @Column({ type: 'varchar', length: 255, nullable: false })
74
- first_name: string;
73
+ // @Column({ type: 'varchar', length: 255, nullable: false })
74
+ // first_name: string;
75
75
 
76
- @Column({ type: 'varchar', length: 255, nullable: false })
77
- family_name: string;
76
+ // @Column({ type: 'varchar', length: 255, nullable: false })
77
+ // family_name: string;
78
78
 
79
- @Column({ type: 'varchar', length: 255, nullable: false })
80
- last_name: string;
79
+ // @Column({ type: 'varchar', length: 255, nullable: false })
80
+ // last_name: string;
81
81
 
82
- @Column({ type: 'varchar', length: 50, nullable: false })
83
- gender: string;
82
+ // @Column({ type: 'varchar', length: 50, nullable: false })
83
+ // gender: string;
84
84
 
85
- @Column({ type: 'varchar', length: 255, nullable: false })
86
- nationality: string;
85
+ // @Column({ type: 'varchar', length: 255, nullable: false })
86
+ // nationality: string;
87
87
 
88
- @Column({ type: 'varchar', length: 255, nullable: false })
89
- place_of_birth: string;
88
+ // @Column({ type: 'varchar', length: 255, nullable: false })
89
+ // place_of_birth: string;
90
90
 
91
- @Column({ type: 'date', nullable: true })
92
- date_of_birth: Date | null;
91
+ // @Column({ type: 'date', nullable: true })
92
+ // date_of_birth: Date | null;
93
93
 
94
- @Column({ type: 'varchar', length: 255, nullable: false })
95
- job_occupation: string;
94
+ // @Column({ type: 'varchar', length: 255, nullable: false })
95
+ // job_occupation: string;
96
96
 
97
- @Column({ type: 'enum', enum: RelationType, nullable: true })
98
- relation_type: RelationType | null;
97
+ // @Column({ type: 'enum', enum: RelationType, nullable: true })
98
+ // relation_type: RelationType | null;
99
99
 
100
- @Column({ type: 'int', nullable: false })
101
- age: number;
100
+ // @Column({ type: 'int', nullable: false })
101
+ // age: number;
102
102
 
103
- @Column({ type: 'varchar', length: 255, nullable: false })
104
- passport_request_type: string;
103
+ // @Column({ type: 'varchar', length: 255, nullable: false })
104
+ // passport_request_type: string;
105
105
 
106
106
  @Column({ type: 'enum', enum: RequestPassportStatus, default: RequestPassportStatus.PENDING, nullable: false })
107
107
  status: RequestPassportStatus;
@@ -0,0 +1,98 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ /**
5
+ * Retired Card Approval Status Enum
6
+ */
7
+ export enum RetiredCardApprovalStatus {
8
+ PENDING = "Pending",
9
+ IN_PROGRESS = "In Progress",
10
+ APPROVED = "Approved",
11
+ REJECTED = "Rejected",
12
+ CANCELLED = "Cancelled"
13
+ }
14
+
15
+ /**
16
+ * Retired Card Approval Details Table
17
+ * Stores approval information for each level of the workflow
18
+ * Workflow: Employee → Security Department (no approval cycle required, but table exists for consistency)
19
+ */
20
+ @Entity({ name: 'retired_card_approvals' })
21
+ export class RetiredCardApprovalDetails extends BaseModel {
22
+
23
+ @Column({ type: 'int', nullable: false })
24
+ retired_card_request_id: number; // Foreign key to retired_card_requests
25
+
26
+ @Column({ type: 'int', nullable: false })
27
+ level: number; // Approval level (1: Security Department)
28
+
29
+ @Column({ type: 'int', nullable: true })
30
+ approver_user_id: number | null;
31
+
32
+ @Column({ type: 'int', nullable: true })
33
+ approver_role_id: number | null;
34
+
35
+ @Column({ type: 'integer', nullable: true })
36
+ delegate_user_id: number | null; // If someone is delegating approval
37
+
38
+ @Column({ type: 'integer', nullable: true })
39
+ approved_by: number | null; // Actual user who approved (in case of delegation)
40
+
41
+ @Column({ type: 'int', nullable: true })
42
+ department_id: number | null;
43
+
44
+ @Column({ type: 'int', nullable: true })
45
+ section_id: number | null;
46
+
47
+ @Column({ type: 'text', nullable: true })
48
+ comment: string | null; // Approval/rejection comment
49
+
50
+ @Column({ type: 'enum', enum: RetiredCardApprovalStatus, default: RetiredCardApprovalStatus.PENDING, nullable: false })
51
+ approval_status: RetiredCardApprovalStatus;
52
+
53
+ @Column({ type: 'boolean', default: true, nullable: false })
54
+ is_allowed: boolean; // Whether this approval step is allowed
55
+
56
+ @Column({ type: 'varchar', length: 50, nullable: true })
57
+ access_type: string | null; // Normal - to track access type
58
+
59
+ @Column({ type: 'integer', nullable: true })
60
+ service_id: number | null;
61
+
62
+ @Column({ type: 'integer', nullable: true })
63
+ sub_service_id: number | null;
64
+
65
+ constructor(
66
+ retired_card_request_id: number,
67
+ level: number,
68
+ approver_user_id: number | null,
69
+ approver_role_id: number | null,
70
+ delegate_user_id: number | null,
71
+ approved_by: number | null,
72
+ department_id: number | null,
73
+ section_id: number | null,
74
+ comment: string | null,
75
+ approval_status: RetiredCardApprovalStatus,
76
+ is_allowed: boolean,
77
+ access_type: string | null,
78
+ service_id: number | null,
79
+ sub_service_id: number | null
80
+ ) {
81
+ super();
82
+ this.retired_card_request_id = retired_card_request_id;
83
+ this.level = level;
84
+ this.approver_user_id = approver_user_id;
85
+ this.approver_role_id = approver_role_id;
86
+ this.delegate_user_id = delegate_user_id;
87
+ this.approved_by = approved_by;
88
+ this.department_id = department_id;
89
+ this.section_id = section_id;
90
+ this.comment = comment;
91
+ this.approval_status = approval_status;
92
+ this.is_allowed = is_allowed;
93
+ this.access_type = access_type;
94
+ this.service_id = service_id;
95
+ this.sub_service_id = sub_service_id;
96
+ }
97
+ }
98
+
@@ -0,0 +1,38 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ /**
5
+ * Retired Card Request Attachment Table
6
+ * Stores file attachments for retired card requests
7
+ */
8
+ @Entity({ name: 'retired_card_attachments' })
9
+ export class RetiredCardRequestAttachment extends BaseModel {
10
+
11
+ @Column({ type: 'integer', nullable: false })
12
+ request_id: number;
13
+
14
+ @Column({ type: 'integer', nullable: true })
15
+ service_id: number | null;
16
+
17
+ @Column({ type: 'integer', nullable: true })
18
+ sub_service_id: number | null;
19
+
20
+ @Column({ type: 'varchar', length: 500, nullable: false })
21
+ file_url: string;
22
+
23
+ @Column({ type: 'varchar', length: 255, nullable: true })
24
+ file_name: string;
25
+
26
+ @Column({ type: 'varchar', length: 100, nullable: true })
27
+ file_type: string;
28
+
29
+ @Column({ type: 'bigint', nullable: true })
30
+ file_size: number | null;
31
+
32
+ @Column({ type: 'integer', nullable: true })
33
+ chat_id: number | null;
34
+
35
+ @Column({ type: 'text', nullable: true })
36
+ description: string | null; // Optional description for the attachment
37
+ }
38
+
@@ -0,0 +1,72 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ /**
5
+ * Retired Card Message Type Enum
6
+ */
7
+ export enum RetiredCardMessageType {
8
+ TEXT = "text",
9
+ IMAGE = "image",
10
+ VIDEO = "video",
11
+ FILE = "file",
12
+ LINK = "link"
13
+ }
14
+
15
+ /**
16
+ * Retired Card Request Chat Table
17
+ * Stores chat messages for retired card requests
18
+ */
19
+ @Entity({ name: 'retired_card_chats' })
20
+ export class RetiredCardRequestChat extends BaseModel {
21
+
22
+ @Column({ type: 'integer', nullable: false })
23
+ request_id: number;
24
+
25
+ @Column({ type: 'integer', nullable: true })
26
+ service_id: number | null;
27
+
28
+ @Column({ type: 'integer', nullable: true })
29
+ sub_service_id: number | null;
30
+
31
+ @Column({ type: 'integer', nullable: false })
32
+ user_id: number;
33
+
34
+ @Column({ type: 'integer', nullable: true })
35
+ role_id: number;
36
+
37
+ @Column({ type: 'text', nullable: false })
38
+ message: string;
39
+
40
+ @Column({
41
+ type: 'enum',
42
+ enum: RetiredCardMessageType,
43
+ default: RetiredCardMessageType.TEXT,
44
+ nullable: false
45
+ })
46
+ messageType: RetiredCardMessageType;
47
+
48
+ @Column({ type: 'text', nullable: true })
49
+ status: string;
50
+
51
+ constructor(
52
+ request_id: number,
53
+ user_id: number,
54
+ role_id: number,
55
+ message: string,
56
+ service_id?: number,
57
+ sub_service_id?: number,
58
+ messageType?: RetiredCardMessageType,
59
+ status?: string
60
+ ) {
61
+ super();
62
+ this.request_id = request_id;
63
+ this.service_id = service_id || null;
64
+ this.sub_service_id = sub_service_id || null;
65
+ this.user_id = user_id;
66
+ this.role_id = role_id;
67
+ this.message = message;
68
+ this.messageType = messageType || RetiredCardMessageType.TEXT;
69
+ this.status = status || 'Pending';
70
+ }
71
+ }
72
+
@@ -0,0 +1,109 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ /**
5
+ * Retired Card Request Status Enum
6
+ */
7
+ export enum RetiredCardRequestStatus {
8
+ PENDING = "Pending",
9
+ APPROVED = "Approved",
10
+ REJECTED = "Rejected",
11
+ CANCELLED = "Cancelled",
12
+ IN_PROGRESS = "In Progress"
13
+ }
14
+
15
+ /**
16
+ * Access Type Enum - Normal or Special
17
+ */
18
+ export enum RetiredCardAccessType {
19
+ NORMAL = "Normal"
20
+ }
21
+
22
+ /**
23
+ * Main Retired Card Request Table (FM021)
24
+ * This table stores the primary retired card request data
25
+ * Only for people with "Ambassador" diplomatic title
26
+ */
27
+ @Entity({ name: 'retired_card_requests' })
28
+ export class RetiredCardRequests extends BaseModel {
29
+
30
+ // User and Department Information
31
+ @Column({ type: 'int', nullable: false })
32
+ user_id: number;
33
+
34
+ @Column({ type: 'int', nullable: true })
35
+ req_user_department_id: number | null;
36
+
37
+ @Column({ type: 'int', nullable: true })
38
+ req_user_section_id: number | null;
39
+
40
+ @Column({ type: 'int', nullable: true })
41
+ service_id: number | null;
42
+
43
+ @Column({ type: 'int', nullable: true })
44
+ sub_service_id: number | null;
45
+
46
+ // Request Status and Workflow
47
+ @Column({ type: 'enum', enum: RetiredCardRequestStatus, default: RetiredCardRequestStatus.PENDING, nullable: false })
48
+ status: RetiredCardRequestStatus;
49
+
50
+ @Column({ type: 'varchar', length: 255, nullable: true })
51
+ workflow_execution_id: string | null;
52
+
53
+ // Retired Card Specific Fields
54
+ @Column({ type: 'varchar', length: 255, nullable: true })
55
+ ex_job_title: string | null; // الوظيفة (Ex-Job Title)
56
+
57
+ @Column({ type: 'date', nullable: true })
58
+ date_of_retirement: Date | null; // تاريخ التعيين (Date of Retirement)
59
+
60
+ @Column({ type: 'date', nullable: true })
61
+ date_of_issue: Date | null; // تاريخ الاصدار (Date of Issue)
62
+
63
+ @Column({ type: 'text', nullable: true })
64
+ reason_for_request: string | null; // Reason for Request
65
+
66
+ @Column({ type: 'enum', enum: RetiredCardAccessType, default: RetiredCardAccessType.NORMAL, nullable: false })
67
+ access_type: RetiredCardAccessType; // Normal (default)
68
+
69
+ // Photo from Profile (URL or reference)
70
+ @Column({ type: 'varchar', length: 500, nullable: true })
71
+ photo_url: string | null; // Photo pulled from profile data if exists
72
+
73
+ @Column({ type: 'varchar', length: 255, nullable: true })
74
+ photo_file_name: string | null;
75
+
76
+ constructor(
77
+ user_id: number,
78
+ req_user_department_id: number | null,
79
+ req_user_section_id: number | null,
80
+ service_id: number | null,
81
+ sub_service_id: number | null,
82
+ status: RetiredCardRequestStatus,
83
+ workflow_execution_id: string | null,
84
+ ex_job_title: string | null,
85
+ date_of_retirement: Date | null,
86
+ date_of_issue: Date | null,
87
+ reason_for_request: string | null,
88
+ access_type: RetiredCardAccessType,
89
+ photo_url: string | null,
90
+ photo_file_name: string | null
91
+ ) {
92
+ super();
93
+ this.user_id = user_id;
94
+ this.req_user_department_id = req_user_department_id;
95
+ this.req_user_section_id = req_user_section_id;
96
+ this.service_id = service_id;
97
+ this.sub_service_id = sub_service_id;
98
+ this.status = status;
99
+ this.workflow_execution_id = workflow_execution_id;
100
+ this.ex_job_title = ex_job_title;
101
+ this.date_of_retirement = date_of_retirement;
102
+ this.date_of_issue = date_of_issue;
103
+ this.reason_for_request = reason_for_request;
104
+ this.access_type = access_type;
105
+ this.photo_url = photo_url;
106
+ this.photo_file_name = photo_file_name;
107
+ }
108
+ }
109
+
@@ -0,0 +1,66 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ /**
5
+ * Retired Card Workflow Status Enum
6
+ */
7
+ export enum RetiredCardWorkFlowStatus {
8
+ COMPLETED = "Completed",
9
+ NOT_YET_STARTED = "Not Yet Started",
10
+ PENDING = "Pending",
11
+ IN_PROGRESS = "In Progress"
12
+ }
13
+
14
+ /**
15
+ * Retired Card Workflow Table
16
+ * Tracks the progress of the request through different workflow stages
17
+ * Provides a timeline/audit trail of the process
18
+ *
19
+ * Workflow: Employee → Security Department (no approval cycle, but workflow tracking for consistency)
20
+ */
21
+ @Entity({ name: 'retired_card_workflows' })
22
+ export class RetiredCardWorkFlow extends BaseModel {
23
+
24
+ @Column({ type: 'int', nullable: false })
25
+ retired_card_request_id: number; // Foreign key to retired_card_requests
26
+
27
+ @Column({ type: 'int', nullable: false, default: 0 })
28
+ retired_card_approval_details_id: number; // Foreign key to retired_card_approvals
29
+
30
+ @Column({ type: 'varchar', length: 255, nullable: false })
31
+ content: string; // Description of the workflow step (e.g., "Pending Security Department Processing")
32
+
33
+ @Column({ type: 'enum', enum: RetiredCardWorkFlowStatus, default: RetiredCardWorkFlowStatus.NOT_YET_STARTED, nullable: false })
34
+ status: RetiredCardWorkFlowStatus; // Current status of this workflow step
35
+
36
+ @Column({ type: 'integer', nullable: true })
37
+ user_id: number | null; // User responsible for this step
38
+
39
+ @Column({ type: 'integer', nullable: true })
40
+ role_id: number | null; // Role responsible for this step
41
+
42
+ @Column({ type: 'integer', nullable: true })
43
+ department_id: number | null; // Department involved in this step
44
+
45
+ @Column({ type: 'integer', nullable: true })
46
+ section_id: number | null; // Section involved in this step
47
+
48
+ @Column({ type: 'integer', nullable: false, default: 1 })
49
+ level: number; // Workflow level (1: Security Department)
50
+
51
+ @Column({ type: 'varchar', length: 50, nullable: true })
52
+ access_type: string | null; // Normal - to track workflow path
53
+
54
+ @Column({ type: 'varchar', length: 255, nullable: true })
55
+ action_taken: string | null; // Action taken (e.g., "Card Generated", "Card Provided")
56
+
57
+ @Column({ type: 'timestamptz', nullable: true })
58
+ action_date: Date | null; // Date when action was taken
59
+
60
+ @Column({ type: 'integer', nullable: true })
61
+ service_id: number | null;
62
+
63
+ @Column({ type: 'integer', nullable: true })
64
+ sub_service_id: number | null;
65
+ }
66
+
@@ -16,16 +16,21 @@ export class Sections extends BaseModel {
16
16
  @Column({ type: 'bigint', nullable: true })
17
17
  department_id: number;
18
18
 
19
+ @Column({ nullable: true , default: false})
20
+ is_followup_sec?: boolean;
21
+
19
22
  constructor(
20
23
  section_name: string,
21
24
  section_code: string,
22
25
  section_description: string,
23
- department_id: number
26
+ department_id: number,
27
+ is_followup_sec: boolean
24
28
  ) {
25
29
  super();
26
30
  this.section_name = section_name
27
31
  this.section_code = section_code
28
32
  this.section_description = section_description
29
33
  this.department_id = department_id
34
+ this.is_followup_sec = is_followup_sec
30
35
  }
31
36
  }
@@ -1,10 +0,0 @@
1
- import { BaseModel } from './BaseModel';
2
- import { TravelClass } from './MissionTravelPersonModel';
3
- export declare class MissionTravelClassConfig extends BaseModel {
4
- grade: number | null;
5
- position: string | null;
6
- travel_class: TravelClass;
7
- is_active: boolean;
8
- description: string | null;
9
- constructor(grade: number | null, position: string | null, travel_class: TravelClass, description: string | null);
10
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MissionTravelClassConfig = void 0;
13
- const typeorm_1 = require("typeorm");
14
- const BaseModel_1 = require("./BaseModel");
15
- const MissionTravelPersonModel_1 = require("./MissionTravelPersonModel");
16
- let MissionTravelClassConfig = class MissionTravelClassConfig extends BaseModel_1.BaseModel {
17
- constructor(grade, position, travel_class, description) {
18
- super();
19
- this.grade = grade;
20
- this.position = position;
21
- this.travel_class = travel_class;
22
- this.description = description;
23
- this.is_active = true;
24
- }
25
- };
26
- exports.MissionTravelClassConfig = MissionTravelClassConfig;
27
- __decorate([
28
- (0, typeorm_1.Column)({ type: 'int', nullable: true }),
29
- __metadata("design:type", Object)
30
- ], MissionTravelClassConfig.prototype, "grade", void 0);
31
- __decorate([
32
- (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
33
- __metadata("design:type", Object)
34
- ], MissionTravelClassConfig.prototype, "position", void 0);
35
- __decorate([
36
- (0, typeorm_1.Column)({ type: 'enum', enum: MissionTravelPersonModel_1.TravelClass, nullable: false }),
37
- __metadata("design:type", String)
38
- ], MissionTravelClassConfig.prototype, "travel_class", void 0);
39
- __decorate([
40
- (0, typeorm_1.Column)({ type: 'boolean', default: true }),
41
- __metadata("design:type", Boolean)
42
- ], MissionTravelClassConfig.prototype, "is_active", void 0);
43
- __decorate([
44
- (0, typeorm_1.Column)({ type: 'text', nullable: true }),
45
- __metadata("design:type", Object)
46
- ], MissionTravelClassConfig.prototype, "description", void 0);
47
- exports.MissionTravelClassConfig = MissionTravelClassConfig = __decorate([
48
- (0, typeorm_1.Entity)({ name: 'mission_travel_class_config' }),
49
- __metadata("design:paramtypes", [Object, Object, String, Object])
50
- ], MissionTravelClassConfig);
@@ -1,10 +0,0 @@
1
- import { BaseModel } from './BaseModel';
2
- export declare class MissionTravelPerdiem extends BaseModel {
3
- grade: number;
4
- perdiem_amount: number;
5
- currency: string | null;
6
- effective_from: Date | null;
7
- effective_to: Date | null;
8
- is_active: boolean;
9
- constructor(grade: number, perdiem_amount: number, currency: string | null, effective_from: Date | null, effective_to: Date | null);
10
- }