@platform-modules/foreign-ministry 1.1.111 → 1.1.112

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 +1 -41
  2. package/dist/index.d.ts +10 -0
  3. package/dist/index.js +12 -1
  4. package/dist/models/DiplomaticApprovalsModel.d.ts +24 -0
  5. package/dist/models/DiplomaticApprovalsModel.js +94 -0
  6. package/dist/models/DiplomaticAttachmentsModel.d.ts +11 -0
  7. package/dist/models/DiplomaticAttachmentsModel.js +53 -0
  8. package/dist/models/DiplomaticChatsModel.d.ts +20 -0
  9. package/dist/models/DiplomaticChatsModel.js +70 -0
  10. package/dist/models/DiplomaticClubCardMembersModel.d.ts +26 -0
  11. package/dist/models/DiplomaticClubCardMembersModel.js +85 -0
  12. package/dist/models/DiplomaticClubSubscriptionMasterModel.d.ts +12 -0
  13. package/dist/models/DiplomaticClubSubscriptionMasterModel.js +64 -0
  14. package/dist/models/DiplomaticRequestsModel.d.ts +54 -0
  15. package/dist/models/DiplomaticRequestsModel.js +186 -0
  16. package/dist/models/DiplomaticTitlesMasterModel.d.ts +6 -1
  17. package/dist/models/DiplomaticTitlesMasterModel.js +13 -3
  18. package/dist/models/DiplomaticWorkFlowModel.d.ts +20 -0
  19. package/dist/models/DiplomaticWorkFlowModel.js +77 -0
  20. package/package.json +1 -1
  21. package/src/data-source.ts +1 -43
  22. package/src/index.ts +10 -0
  23. package/src/models/DiplomaticApprovalsModel.ts +77 -0
  24. package/src/models/DiplomaticAttachmentsModel.ts +37 -0
  25. package/src/models/DiplomaticChatsModel.ts +53 -0
  26. package/src/models/DiplomaticClubCardMembersModel.ts +71 -0
  27. package/src/models/DiplomaticClubSubscriptionMasterModel.ts +50 -0
  28. package/src/models/DiplomaticRequestsModel.ts +154 -0
  29. package/src/models/DiplomaticTitlesMasterModel.ts +10 -1
  30. package/src/models/DiplomaticWorkFlowModel.ts +59 -0
@@ -0,0 +1,50 @@
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ @Entity({ name: 'diplomatic_club_subscription_master' })
5
+ export class DiplomaticClubSubscriptionMaster extends BaseModel {
6
+ @Column({ type: 'varchar', length: 100 })
7
+ subscription_type: string; // e.g., "Single", "Family"
8
+
9
+ @Column({ type: 'decimal', precision: 10, scale: 2 })
10
+ subscription_amount: number;
11
+
12
+ @Column({ type: 'varchar', length: 10, nullable: true })
13
+ currency: string | null;
14
+
15
+ @Column({ type: 'text', nullable: true })
16
+ description: string | null;
17
+
18
+ @Column({ type: 'boolean', default: true })
19
+ is_active: boolean;
20
+
21
+ @Column({ type: 'date', nullable: true })
22
+ effective_from: Date | null;
23
+
24
+ @Column({ type: 'date', nullable: true })
25
+ effective_to: Date | null;
26
+
27
+ @Column({ type: 'varchar', length: 20, nullable: true })
28
+ subscription_period: string | null; // e.g., "Monthly", "Yearly"
29
+
30
+ constructor(
31
+ subscription_type: string,
32
+ subscription_amount: number,
33
+ currency?: string | null,
34
+ description?: string | null,
35
+ effective_from?: Date | null,
36
+ effective_to?: Date | null,
37
+ subscription_period?: string | null
38
+ ) {
39
+ super();
40
+ this.subscription_type = subscription_type;
41
+ this.subscription_amount = subscription_amount;
42
+ this.currency = currency || null;
43
+ this.description = description || null;
44
+ this.is_active = true;
45
+ this.effective_from = effective_from || null;
46
+ this.effective_to = effective_to || null;
47
+ this.subscription_period = subscription_period || null;
48
+ }
49
+ }
50
+
@@ -0,0 +1,154 @@
1
+ import { Column, Entity, OneToOne, OneToMany, ManyToOne, JoinColumn } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ // Import types only (not for runtime)
5
+ import type { DiplomaticApprovals } from './DiplomaticApprovalsModel';
6
+ import type { DiplomaticWorkFlow } from './DiplomaticWorkFlowModel';
7
+ import type { DiplomaticAttachments } from './DiplomaticAttachmentsModel';
8
+ import type { DiplomaticChats } from './DiplomaticChatsModel';
9
+ import type { DiplomaticClubCardMembers } from './DiplomaticClubCardMembersModel';
10
+
11
+ export enum DiplomaticRequestStatus {
12
+ DRAFT = "Draft",
13
+ SUBMITTED = "Submitted",
14
+ PENDING = "Pending",
15
+ IN_PROGRESS = "In Progress",
16
+ APPROVED = "Approved",
17
+ REJECTED = "Rejected",
18
+ COMPLETED = "Completed",
19
+ CANCELLED = "Cancelled"
20
+ }
21
+
22
+ @Entity({ name: 'diplomatic_requests' })
23
+ export class DiplomaticRequests extends BaseModel {
24
+ @Column({ type: 'int' })
25
+ user_id: number;
26
+
27
+ @Column({ type: 'varchar', length: 100 })
28
+ employee_id: string;
29
+
30
+ @Column({ type: 'varchar', length: 255 })
31
+ employee_name: string;
32
+
33
+ @Column({ type: 'varchar', length: 100, nullable: true })
34
+ grade: string | null;
35
+
36
+ @Column({ type: 'int', nullable: true })
37
+ designation_id: number | null;
38
+
39
+ @Column({ type: 'int', nullable: true })
40
+ department_id: number | null;
41
+
42
+ @Column({ type: 'varchar', length: 255 })
43
+ email_address: string;
44
+
45
+ @Column({ type: 'varchar', length: 20 })
46
+ contact_number: string;
47
+
48
+ @Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
49
+ request_date: Date;
50
+
51
+ @Column({ type: 'enum', enum: DiplomaticRequestStatus, default: DiplomaticRequestStatus.PENDING })
52
+ request_status: DiplomaticRequestStatus;
53
+
54
+ @Column({ type: 'timestamp', nullable: true })
55
+ request_close_date: Date | null;
56
+
57
+ @Column({ type: 'date', nullable: true })
58
+ end_date: Date | null;
59
+
60
+ @Column({ type: 'text', nullable: true })
61
+ remarks: string | null;
62
+
63
+ @Column({ type: 'int', nullable: true })
64
+ current_approval_level: number | null;
65
+
66
+ @Column({ type: 'int', nullable: true })
67
+ current_approver_id: number | null;
68
+
69
+ @Column({ type: 'int', nullable: true })
70
+ service_id: number | null;
71
+
72
+ @Column({ type: 'int', nullable: true })
73
+ sub_service_id: number | null;
74
+
75
+ @Column({ type: 'varchar', length: 255, nullable: true })
76
+ member_name: string | null;
77
+
78
+ @Column({ type: 'varchar', length: 100, nullable: true })
79
+ membership_type: string | null;
80
+
81
+ @Column({ type: 'int', nullable: true })
82
+ diplomatic_title_id: number | null;
83
+
84
+ @Column({ type: 'varchar', length: 255, nullable: true })
85
+ location: string | null;
86
+
87
+ @Column({ type: 'varchar', length: 100, nullable: true })
88
+ request_type: string | null;
89
+
90
+ @Column({ type: 'date', nullable: true })
91
+ expiry_date: Date | null;
92
+
93
+ @Column({ type: 'varchar', length: 500, nullable: true })
94
+ photo_url: string | null;
95
+
96
+ @Column({ type: 'varchar', length: 100, nullable: true })
97
+ membership_id: string | null;
98
+
99
+ @Column({ type: 'varchar', length: 255, nullable: true })
100
+ organization: string | null;
101
+
102
+ @Column({ type: 'decimal', precision: 10, scale: 2, nullable: true })
103
+ subscription_amount: number | null;
104
+
105
+ @Column({ type: 'int', nullable: true })
106
+ section_id: number | null;
107
+
108
+ @Column({ type: 'int', nullable: true })
109
+ reporting_manager: number | null;
110
+
111
+ @Column({ type: 'varchar', length: 255, nullable: true })
112
+ workflow_execution_id: string | null;
113
+
114
+ @OneToMany('DiplomaticClubCardMembers', 'diplomaticRequest', { nullable: true })
115
+ diplomaticClubCardMembers?: DiplomaticClubCardMembers[];
116
+
117
+ @OneToMany('DiplomaticApprovals', 'diplomaticRequest')
118
+ approvals?: DiplomaticApprovals[];
119
+
120
+ @OneToMany('DiplomaticWorkFlow', 'diplomaticRequest')
121
+ workflows?: DiplomaticWorkFlow[];
122
+
123
+ @OneToMany('DiplomaticAttachments', 'diplomaticRequest')
124
+ attachments?: DiplomaticAttachments[];
125
+
126
+ @OneToMany('DiplomaticChats', 'diplomaticRequest')
127
+ chats?: DiplomaticChats[];
128
+
129
+ constructor(
130
+ user_id: number,
131
+ employee_id: string,
132
+ employee_name: string,
133
+ email_address: string,
134
+ contact_number: string,
135
+ service_id: number | null,
136
+ sub_service_id: number | null,
137
+ section_id: number | null,
138
+ reporting_manager: number | null
139
+ ) {
140
+ super();
141
+ this.user_id = user_id;
142
+ this.employee_id = employee_id;
143
+ this.employee_name = employee_name;
144
+ this.email_address = email_address;
145
+ this.contact_number = contact_number;
146
+ this.request_date = new Date();
147
+ this.request_status = DiplomaticRequestStatus.PENDING;
148
+ this.service_id = service_id;
149
+ this.sub_service_id = sub_service_id;
150
+ this.section_id = section_id;
151
+ this.reporting_manager = reporting_manager;
152
+ }
153
+ }
154
+
@@ -1,6 +1,11 @@
1
1
  import { Column, Entity } from "typeorm";
2
2
  import { BaseModel } from './BaseModel';
3
3
 
4
+ export enum TitleCategory {
5
+ EMPLOYEE = "Employee",
6
+ NON_EMPLOYEE = "Non Employee"
7
+ }
8
+
4
9
  @Entity({ name: 'diplomatic_titles_master' })
5
10
  export class DiplomaticTitlesMaster extends BaseModel {
6
11
  @Column({ type: 'varchar', length: 255, nullable: false })
@@ -9,6 +14,9 @@ export class DiplomaticTitlesMaster extends BaseModel {
9
14
  @Column({ type: 'varchar', length: 255, nullable: true })
10
15
  title_in_arabic: string | null; // Arabic translation
11
16
 
17
+ @Column({ type: 'enum', enum: TitleCategory, nullable: false })
18
+ category: TitleCategory; // Category: Employee or Non Employee
19
+
12
20
  @Column({ type: 'text', nullable: true })
13
21
  description: string | null; // Description of the title
14
22
 
@@ -18,9 +26,10 @@ export class DiplomaticTitlesMaster extends BaseModel {
18
26
  @Column({ type: 'int', default: 0 })
19
27
  display_order: number; // Order for display in dropdowns
20
28
 
21
- constructor(title: string) {
29
+ constructor(title: string, category: TitleCategory) {
22
30
  super();
23
31
  this.title = title;
32
+ this.category = category;
24
33
  this.is_active = true;
25
34
  this.display_order = 0;
26
35
  }
@@ -0,0 +1,59 @@
1
+ import { Column, Entity, ManyToOne, JoinColumn } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+ import { DiplomaticRequests } from "./DiplomaticRequestsModel";
4
+
5
+ export enum DiplomaticWorkFlowStatus {
6
+ COMPLETED = "Completed",
7
+ NOT_YET_STARTED = "Not Yet Started",
8
+ PENDING = "Pending"
9
+ }
10
+
11
+ @Entity({ name: 'diplomatic_workflows' })
12
+ export class DiplomaticWorkFlow extends BaseModel {
13
+ @Column({ type: 'int' })
14
+ diplomatic_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: DiplomaticWorkFlowStatus, default: DiplomaticWorkFlowStatus.NOT_YET_STARTED })
26
+ status: DiplomaticWorkFlowStatus;
27
+
28
+ @Column({ type: 'int', nullable: true })
29
+ user_id: number | null;
30
+
31
+ @Column({ type: 'int', nullable: true })
32
+ step_order: number | null;
33
+
34
+ @Column({ type: 'int', nullable: true })
35
+ diplomatic_approval_id: number | null;
36
+
37
+ @Column({ type: 'int', nullable: true })
38
+ approved_by_role_id: number | null;
39
+
40
+ @ManyToOne(() => DiplomaticRequests, dr => dr.workflows)
41
+ @JoinColumn({ name: 'diplomatic_request_id' })
42
+ diplomaticRequest?: DiplomaticRequests;
43
+
44
+ constructor(
45
+ diplomatic_request_id: number,
46
+ content: string,
47
+ status: DiplomaticWorkFlowStatus,
48
+ user_id: number | null,
49
+ step_order: number | null
50
+ ) {
51
+ super();
52
+ this.diplomatic_request_id = diplomatic_request_id;
53
+ this.content = content;
54
+ this.status = status;
55
+ this.user_id = user_id;
56
+ this.step_order = step_order;
57
+ }
58
+ }
59
+