@platform-modules/foreign-ministry 1.1.74 → 1.1.76

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 (119) hide show
  1. package/dist/data-source.js +16 -32
  2. package/dist/index.d.ts +8 -24
  3. package/dist/index.js +8 -38
  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/DiplomaticClubCardApprovalModel.d.ts +16 -0
  11. package/dist/models/DiplomaticClubCardApprovalModel.js +58 -0
  12. package/dist/models/DiplomaticClubCardAttachmentModel.d.ts +9 -0
  13. package/dist/models/DiplomaticClubCardAttachmentModel.js +44 -0
  14. package/dist/models/DiplomaticClubCardChatModel.d.ts +7 -0
  15. package/dist/models/{EarlyCheckoutBalanceModel.js → DiplomaticClubCardChatModel.js} +18 -21
  16. package/dist/models/DiplomaticClubCardMemberModel.d.ts +13 -0
  17. package/dist/models/DiplomaticClubCardMemberModel.js +60 -0
  18. package/dist/models/DiplomaticClubCardMembersModel.d.ts +26 -0
  19. package/dist/models/DiplomaticClubCardMembersModel.js +85 -0
  20. package/dist/models/DiplomaticClubCardRequestModel.d.ts +33 -0
  21. package/dist/models/DiplomaticClubCardRequestModel.js +98 -0
  22. package/dist/models/DiplomaticClubCardWorkFlowModel.d.ts +12 -0
  23. package/dist/models/DiplomaticClubCardWorkFlowModel.js +42 -0
  24. package/dist/models/DiplomaticClubSubscriptionMasterModel.d.ts +12 -0
  25. package/dist/models/DiplomaticClubSubscriptionMasterModel.js +64 -0
  26. package/dist/models/DiplomaticRequestsModel.d.ts +53 -0
  27. package/dist/models/DiplomaticRequestsModel.js +182 -0
  28. package/dist/models/DiplomaticServiceDetailsModel.d.ts +20 -0
  29. package/dist/models/DiplomaticServiceDetailsModel.js +65 -0
  30. package/dist/models/DiplomaticSettingsModel.d.ts +11 -0
  31. package/dist/models/DiplomaticSettingsModel.js +59 -0
  32. package/dist/models/DiplomaticTitleModel.d.ts +12 -0
  33. package/dist/models/DiplomaticTitleModel.js +45 -0
  34. package/dist/models/DiplomaticTitlesMasterModel.d.ts +13 -0
  35. package/dist/models/{StationeryMaterialMasterModel.js → DiplomaticTitlesMasterModel.js} +23 -25
  36. package/dist/models/DiplomaticWorkFlowModel.d.ts +18 -0
  37. package/dist/models/DiplomaticWorkFlowModel.js +69 -0
  38. package/dist/models/FinancialApprovalsModel.d.ts +0 -1
  39. package/dist/models/FinancialApprovalsModel.js +0 -4
  40. package/dist/models/FinancialGradeModel.d.ts +3 -4
  41. package/dist/models/FinancialGradeModel.js +7 -12
  42. package/dist/models/GeneralServiceApprovalsModel.d.ts +1 -4
  43. package/dist/models/GeneralServiceApprovalsModel.js +0 -9
  44. package/dist/models/LeaveTypesModel.d.ts +1 -7
  45. package/dist/models/LeaveTypesModel.js +5 -20
  46. package/dist/models/PassportRequestApprovalModel.d.ts +22 -0
  47. package/dist/models/PassportRequestApprovalModel.js +91 -0
  48. package/dist/models/PassportRequestAttachmentModel.d.ts +10 -0
  49. package/dist/models/PassportRequestAttachmentModel.js +54 -0
  50. package/dist/models/PassportRequestChatModel.d.ts +8 -0
  51. package/dist/models/{LeaveBalanceModel.js → PassportRequestChatModel.js} +23 -23
  52. package/dist/models/PassportRequestDependentModel.d.ts +20 -0
  53. package/dist/models/PassportRequestDependentModel.js +85 -0
  54. package/dist/models/PassportRequestModel.d.ts +40 -0
  55. package/dist/models/PassportRequestModel.js +128 -0
  56. package/dist/models/PassportRequestWorkFlowModel.d.ts +15 -0
  57. package/dist/models/PassportRequestWorkFlowModel.js +60 -0
  58. package/dist/models/SubscriptionAmountModel.d.ts +67 -0
  59. package/dist/models/SubscriptionAmountModel.js +114 -0
  60. package/package.json +1 -1
  61. package/src/data-source.ts +17 -35
  62. package/src/index.ts +8 -24
  63. package/src/models/DiplomaticApprovalsModel.ts +77 -0
  64. package/src/models/DiplomaticAttachmentsModel.ts +37 -0
  65. package/src/models/DiplomaticChatsModel.ts +53 -0
  66. package/src/models/DiplomaticClubCardMembersModel.ts +71 -0
  67. package/src/models/DiplomaticClubSubscriptionMasterModel.ts +50 -0
  68. package/src/models/DiplomaticRequestsModel.ts +151 -0
  69. package/src/models/DiplomaticTitlesMasterModel.ts +39 -0
  70. package/src/models/DiplomaticWorkFlowModel.ts +53 -0
  71. package/src/models/FinancialApprovalsModel.ts +0 -4
  72. package/src/models/FinancialGradeModel.ts +8 -13
  73. package/src/models/GeneralServiceApprovalsModel.ts +1 -10
  74. package/src/models/LeaveTypesModel.ts +11 -27
  75. package/dist/models/EarlyCheckoutBalanceModel.d.ts +0 -7
  76. package/dist/models/EarlyCheckoutConfigModel.d.ts +0 -18
  77. package/dist/models/EarlyCheckoutConfigModel.js +0 -80
  78. package/dist/models/EarlyCheckoutTransactionModel.d.ts +0 -19
  79. package/dist/models/EarlyCheckoutTransactionModel.js +0 -66
  80. package/dist/models/LeaveBalanceModel.d.ts +0 -8
  81. package/dist/models/LeaveConfigGradesModel.d.ts +0 -19
  82. package/dist/models/LeaveConfigGradesModel.js +0 -100
  83. package/dist/models/LeaveConfigModel.d.ts +0 -20
  84. package/dist/models/LeaveConfigModel.js +0 -90
  85. package/dist/models/LeaveTransactionModel.d.ts +0 -20
  86. package/dist/models/LeaveTransactionModel.js +0 -71
  87. package/dist/models/M&CMasterModel.d.ts +0 -9
  88. package/dist/models/M&CMasterModel.js +0 -49
  89. package/dist/models/ProfileUpdateRequestsModel.d.ts +0 -106
  90. package/dist/models/ProfileUpdateRequestsModel.js +0 -409
  91. package/dist/models/StationeryMaterialMasterModel.d.ts +0 -11
  92. package/dist/models/StationeryRequestsModel.d.ts +0 -27
  93. package/dist/models/StationeryRequestsModel.js +0 -93
  94. package/dist/models/StayAfterHoursBalanceModel.d.ts +0 -7
  95. package/dist/models/StayAfterHoursBalanceModel.js +0 -39
  96. package/dist/models/StayAfterHoursTransactionModel.d.ts +0 -19
  97. package/dist/models/StayAfterHoursTransactionModel.js +0 -66
  98. package/dist/models/UserEducationDetailsModel.d.ts +0 -12
  99. package/dist/models/UserEducationDetailsModel.js +0 -44
  100. package/dist/models/UserEmploymentDetailsModel.d.ts +0 -50
  101. package/dist/models/UserEmploymentDetailsModel.js +0 -193
  102. package/dist/models/UserPersonalDetailsModel.d.ts +0 -48
  103. package/dist/models/UserPersonalDetailsModel.js +0 -185
  104. package/src/models/EarlyCheckoutBalanceModel.ts +0 -22
  105. package/src/models/EarlyCheckoutConfigModel.ts +0 -57
  106. package/src/models/EarlyCheckoutTransactionModel.ts +0 -53
  107. package/src/models/LeaveBalanceModel.ts +0 -26
  108. package/src/models/LeaveConfigGradesModel.Ts +0 -72
  109. package/src/models/LeaveConfigModel.ts +0 -64
  110. package/src/models/LeaveTransactionModel.ts +0 -58
  111. package/src/models/M&CMasterModel.ts +0 -37
  112. package/src/models/ProfileUpdateRequestsModel.ts +0 -317
  113. package/src/models/StationeryMaterialMasterModel.ts +0 -35
  114. package/src/models/StationeryRequestsModel.ts +0 -65
  115. package/src/models/StayAfterHoursBalanceModel.ts +0 -22
  116. package/src/models/StayAfterHoursTransactionModel.ts +0 -53
  117. package/src/models/UserEducationDetailsModel.ts +0 -26
  118. package/src/models/UserEmploymentDetailsModel.ts +0 -141
  119. package/src/models/UserPersonalDetailsModel.ts +0 -137
@@ -1,57 +0,0 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum EarlyCheckoutFrequency {
5
- Monthly = 'Monthly',
6
- Yearly = 'Yearly',
7
- }
8
-
9
- //This model is used to store the Early Checkout Configuration on the Admin Side
10
- @Entity({ name: 'early_checkout_configuration' })
11
- export class EarlyCheckoutConfiguration extends BaseModel {
12
-
13
- @Column({ type: 'varchar', nullable: true })
14
- category: string;
15
-
16
- @Column({ type: 'int', nullable: true })
17
- MandC_id: number;
18
-
19
- @Column({ type: 'varchar', nullable: true })
20
- frequency: EarlyCheckoutFrequency;
21
-
22
- @Column({ type: 'varchar', nullable: true })
23
- region: string;
24
-
25
- @Column({ type: 'varchar', nullable: true })
26
- country: string;
27
-
28
- @Column({ type: 'varchar', nullable: true })
29
- location: string;
30
-
31
- @Column({ type: 'varchar', nullable: true })
32
- no_of_hours: string;
33
-
34
-
35
- @Column({ type: 'date', nullable: true })
36
- from_date: Date;
37
-
38
- @Column({ type: 'date', nullable: true })
39
- to_date: Date;
40
-
41
- @Column({ type: 'varchar', nullable: true })
42
- reason: string;
43
-
44
- constructor(category: string, MandC_id: number, frequency: EarlyCheckoutFrequency, region: string, country: string, location: string, no_of_hours: string, from_date: Date, to_date: Date, reason: string) {
45
- super();
46
- this.category = category;
47
- this.MandC_id = MandC_id;
48
- this.no_of_hours = no_of_hours;
49
- this.frequency = frequency;
50
- this.region = region;
51
- this.country = country;
52
- this.location = location;
53
- this.from_date = from_date;
54
- this.to_date = to_date;
55
- this.reason = reason;
56
- }
57
- }
@@ -1,53 +0,0 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum EarlyCheckoutTransactionStatus {
5
- GRANTED = 'GRANTED',
6
- TAKEN = 'TAKEN',
7
- ADJUSTMENT = 'ADJUSTMENT',
8
- CARRY_FORWARD = 'CARRY_FORWARD',
9
- ENCASHMENT = 'ENCASHMENT',
10
- AVAILED = 'AVAILED',
11
- ELAPSED = 'ELAPSED'
12
- }
13
-
14
- //This model is used to store early checkout transactions for users
15
- @Entity({ name: 'early_checkout_transactions' })
16
- export class EarlyCheckoutTransaction extends BaseModel {
17
-
18
- @Column({ type: 'int', nullable: false })
19
- user_id: number;
20
-
21
- @Column({ type: 'varchar', nullable: true })
22
- hours_count: string;
23
-
24
- @Column({ type: 'date', nullable: true })
25
- from_date: Date;
26
-
27
- @Column({ type: 'date', nullable: true })
28
- to_date: Date;
29
-
30
- @Column({ type: 'int', nullable: true })
31
- year: number;
32
-
33
- @Column({ type: 'varchar', nullable: false })
34
- status: EarlyCheckoutTransactionStatus;
35
-
36
- constructor(
37
- user_id: number,
38
- hours_count: string,
39
- from_date: Date,
40
- to_date: Date,
41
- year: number,
42
- status: EarlyCheckoutTransactionStatus
43
- ) {
44
- super();
45
- this.user_id = user_id;
46
- this.hours_count = hours_count;
47
- this.from_date = from_date;
48
- this.to_date = to_date;
49
- this.year = year;
50
- this.status = status;
51
- }
52
- }
53
-
@@ -1,26 +0,0 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- @Entity({ name: 'leave_balance' })
5
- export class LeaveBalance extends BaseModel {
6
-
7
- @Column({ nullable: true })
8
- user_id: string;
9
-
10
- @Column({ nullable: true })
11
- leave_type_id: string;
12
-
13
- @Column({ nullable: true })
14
- balance: number;
15
-
16
- @Column({ nullable: true })
17
- total_balance: number;
18
-
19
- constructor(user_id: string, leave_type_id: string, balance: number, total_balance: number) {
20
- super();
21
- this.user_id = user_id;
22
- this.leave_type_id = leave_type_id;
23
- this.balance = balance;
24
- this.total_balance = total_balance;
25
- }
26
- }
@@ -1,72 +0,0 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- //This model is used to store the relationship between Leave Configuration and Financial Grades with monthly leave counts
5
- @Entity({ name: 'leave_config_grades' })
6
- export class LeaveConfigurationGrades extends BaseModel {
7
-
8
- @Column({ type: 'int', nullable: true })
9
- leave_config_id: number;
10
-
11
- @Column({ type: 'int', nullable: false })
12
- grade: number;
13
-
14
- @Column({ type: 'int', nullable: true })
15
- jan: number;
16
-
17
- @Column({ type: 'int', nullable: true })
18
- feb: number;
19
-
20
- @Column({ type: 'int', nullable: true })
21
- mar: number;
22
-
23
- @Column({ type: 'int', nullable: true })
24
- apr: number;
25
-
26
- @Column({ type: 'int', nullable: true })
27
- may: number;
28
-
29
- @Column({ type: 'int', nullable: true })
30
- jun: number;
31
-
32
- @Column({ type: 'int', nullable: true })
33
- jul: number;
34
-
35
- @Column({ type: 'int', nullable: true })
36
- aug: number;
37
-
38
- @Column({ type: 'int', nullable: true })
39
- sep: number;
40
-
41
- @Column({ type: 'int', nullable: true })
42
- oct: number;
43
-
44
- @Column({ type: 'int', nullable: true })
45
- nov: number;
46
-
47
- @Column({ type: 'int', nullable: true })
48
- dec: number;
49
-
50
- @Column({ type: 'int', nullable: false, default: 0 })
51
- total_count: number;
52
-
53
- constructor(leave_config_id: number, grade: number, jan: number, feb: number, mar: number, apr: number, may: number, jun: number, jul: number, aug: number, sep: number, oct: number, nov: number, dec: number, total_count: number) {
54
- super();
55
- this.leave_config_id = leave_config_id;
56
- this.grade = grade;
57
- this.jan = jan;
58
- this.feb = feb;
59
- this.mar = mar;
60
- this.apr = apr;
61
- this.may = may;
62
- this.jun = jun;
63
- this.jul = jul;
64
- this.aug = aug;
65
- this.sep = sep;
66
- this.oct = oct;
67
- this.nov = nov;
68
- this.dec = dec;
69
- this.total_count = total_count;
70
- }
71
- }
72
-
@@ -1,64 +0,0 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum enumFrequency {
5
- Monthly = 'Monthly',
6
- Yearly = 'Yearly',
7
- }
8
-
9
- //This model is used to store the Financial Grade declaration on the Admin Side
10
- @Entity({ name: 'leave_configuration' })
11
- export class LeaveConfiguration extends BaseModel {
12
-
13
- @Column({ type: 'varchar', nullable: true })
14
- category: string;
15
-
16
- @Column({ type: 'int', nullable: true })
17
- MandC_id: number;
18
-
19
- @Column({ type: 'int', nullable: true })
20
- leave_type_id: number;
21
-
22
- @Column({ type: 'varchar', nullable: true })
23
- frequency: enumFrequency;
24
-
25
- @Column({ type: 'varchar', nullable: true })
26
- region: string;
27
-
28
- @Column({ type: 'varchar', nullable: true })
29
- country: string;
30
-
31
- @Column({ type: 'varchar', nullable: true })
32
- location: string;
33
-
34
- @Column({ nullable: true, default: false })
35
- is_carryforward: boolean;
36
-
37
- @Column({ type: 'int', nullable: true, default: 0 })
38
- carryforward_limit: number;
39
-
40
- @Column({ type: 'date', nullable: true })
41
- from_date: Date;
42
-
43
- @Column({ type: 'date', nullable: true })
44
- to_date: Date;
45
-
46
- @Column({ type: 'varchar', nullable: true })
47
- reason: string;
48
-
49
- constructor(category: string, MandC_id: number, leave_type_id: number, frequency: enumFrequency, region: string, country: string, location: string, is_carryforward: boolean, carryforward_limit: number, from_date: Date, to_date: Date, reason: string) {
50
- super();
51
- this.category = category;
52
- this.MandC_id = MandC_id;
53
- this.leave_type_id = leave_type_id;
54
- this.frequency = frequency;
55
- this.region = region;
56
- this.country = country;
57
- this.location = location;
58
- this.is_carryforward = is_carryforward;
59
- this.carryforward_limit = carryforward_limit;
60
- this.from_date = from_date;
61
- this.to_date = to_date;
62
- this.reason = reason;
63
- }
64
- }
@@ -1,58 +0,0 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum LeaveTransactionStatus {
5
- GRANTED = 'GRANTED',
6
- TAKEN = 'TAKEN',
7
- ADJUSTMENT = 'ADJUSTMENT',
8
- CARRY_FORWARD = 'CARRY_FORWARD',
9
- ENCASHMENT = 'ENCASHMENT',
10
- AVAILED = 'AVAILED',
11
- ELAPSED = 'ELAPSED'
12
- }
13
-
14
- //This model is used to store leave transactions for users
15
- @Entity({ name: 'leave_transactions' })
16
- export class LeaveTransaction extends BaseModel {
17
-
18
- @Column({ type: 'int', nullable: false })
19
- user_id: number;
20
-
21
- @Column({ type: 'int', nullable: false })
22
- leave_type_id: number;
23
-
24
- @Column({ type: 'decimal', precision: 10, scale: 2, nullable: true })
25
- leave_count: number;
26
-
27
- @Column({ type: 'date', nullable: true })
28
- from_date: Date;
29
-
30
- @Column({ type: 'date', nullable: true })
31
- to_date: Date;
32
-
33
- @Column({ type: 'int', nullable: true })
34
- year: number;
35
-
36
- @Column({ type: 'varchar', nullable: false })
37
- status: LeaveTransactionStatus;
38
-
39
- constructor(
40
- user_id: number,
41
- leave_type_id: number,
42
- leave_count: number,
43
- from_date: Date,
44
- to_date: Date,
45
- year: number,
46
- status: LeaveTransactionStatus
47
- ) {
48
- super();
49
- this.user_id = user_id;
50
- this.leave_type_id = leave_type_id;
51
- this.leave_count = leave_count;
52
- this.from_date = from_date;
53
- this.to_date = to_date;
54
- this.year = year;
55
- this.status = status;
56
- }
57
- }
58
-
@@ -1,37 +0,0 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- @Entity({ name: 'M&C_names' })
5
- export class MandCMaster extends BaseModel {
6
-
7
- @Column({type: 'varchar', nullable: true })
8
- name: string;
9
-
10
- @Column({type: 'varchar', nullable: true })
11
- name_in_arabic: string;
12
-
13
- @Column({type: 'varchar', nullable: true })
14
- region:string;
15
-
16
- @Column({type: 'varchar', nullable: true })
17
- country:string;
18
-
19
- @Column({type: 'varchar', nullable: true })
20
- location:string;
21
-
22
-
23
- constructor(
24
- name: string,
25
- name_in_arabic: string,
26
- region: string,
27
- country: string,
28
- location: string
29
- ) {
30
- super();
31
- this.name = name
32
- this.name_in_arabic = name_in_arabic
33
- this.region = region
34
- this.country = country
35
- this.location = location
36
- }
37
- }
@@ -1,317 +0,0 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum ProfileUpdateRequestStatus {
5
- PENDING = "Pending",
6
- ASSIGNED = "Assigned",
7
- IN_PROGRESS = "In Progress",
8
- APPROVED = "Approved",
9
- REJECTED = "Rejected",
10
- COMPLETED = "Completed"
11
- }
12
-
13
- @Entity({ name: 'user_profile_update_requests' })
14
- export class ProfileUpdateRequests extends BaseModel {
15
- @Column({ type: 'int', nullable: true })
16
- req_user_department_id: number | null;
17
-
18
- @Column({ type: 'int', nullable: true })
19
- req_user_section_id: number | null;
20
-
21
- @Column({ type: 'int', nullable: true })
22
- service_id: number | null;
23
-
24
- @Column({ type: 'int', nullable: true })
25
- sub_service_id: number | null;
26
-
27
- @Column({ type: 'int', nullable: false })
28
- user_id: number;
29
-
30
- @Column({ type: 'enum', enum: ProfileUpdateRequestStatus, default: ProfileUpdateRequestStatus.PENDING, nullable: false })
31
- status: ProfileUpdateRequestStatus;
32
-
33
- @Column({ type: 'varchar', nullable: true })
34
- workflow_execution_id: string | null;
35
-
36
- // Decision workflow fields
37
- @Column({ type: 'varchar', length: 50, nullable: true })
38
- employee_type: string | null; // 'FM', 'M&C'
39
-
40
- @Column({ type: 'boolean', default: false, nullable: true })
41
- is_diplomatic: boolean | null;
42
-
43
- @Column({ type: 'varchar', length: 255, nullable: true })
44
- assigned_to_department: string | null; // 'HR_FM' or 'M&C_Admin_Finance'
45
-
46
- @Column({ type: 'varchar', length: 500, nullable: true })
47
- comments: string | null;
48
-
49
- // ========== PERSONAL DETAILS FIELDS (all nullable) ==========
50
- // Name fields
51
- @Column({ type: 'varchar', length: 255, nullable: true })
52
- title: string | null;
53
-
54
- @Column({ type: 'varchar', length: 255, nullable: true })
55
- first_name: string | null;
56
-
57
- @Column({ type: 'varchar', length: 255, nullable: true })
58
- second_name: string | null;
59
-
60
- @Column({ type: 'varchar', length: 255, nullable: true })
61
- third_name: string | null;
62
-
63
- @Column({ type: 'varchar', length: 255, nullable: true })
64
- fourth_name: string | null;
65
-
66
- @Column({ type: 'varchar', length: 255, nullable: true })
67
- family_name_tribe: string | null;
68
-
69
- @Column({ type: 'varchar', length: 255, nullable: true })
70
- previous_name: string | null;
71
-
72
- // Personal Information
73
- @Column({ type: 'varchar', length: 100, nullable: true })
74
- religion: string | null;
75
-
76
- @Column({ type: 'varchar', length: 100, nullable: true })
77
- sect: string | null;
78
-
79
- @Column({ type: 'date', nullable: true })
80
- date_of_birth: Date | null;
81
-
82
- @Column({ type: 'varchar', length: 255, nullable: true })
83
- place_of_birth: string | null;
84
-
85
- @Column({ type: 'varchar', length: 100, nullable: true })
86
- nationality: string | null;
87
-
88
- @Column({ type: 'varchar', length: 50, nullable: true })
89
- gender: string | null;
90
-
91
- @Column({ type: 'varchar', length: 50, nullable: true })
92
- marital_status: string | null;
93
-
94
- @Column({ type: 'int', nullable: true })
95
- number_of_dependents: number | null;
96
-
97
- // Passport Information
98
- @Column({ type: 'varchar', length: 100, nullable: true })
99
- passport_number: string | null;
100
-
101
- @Column({ type: 'varchar', length: 50, nullable: true })
102
- passport_type: string | null;
103
-
104
- @Column({ type: 'date', nullable: true })
105
- issue_date: Date | null; // Passport Issue Date
106
-
107
- @Column({ type: 'varchar', length: 255, nullable: true })
108
- place_of_issue: string | null; // Passport Place of Issue
109
-
110
- @Column({ type: 'date', nullable: true })
111
- expiry_date: Date | null; // Passport Expiry Date
112
-
113
- // ID Card Information
114
- @Column({ type: 'varchar', length: 100, nullable: true })
115
- id_card_number: string | null;
116
-
117
- @Column({ type: 'varchar', length: 255, nullable: true })
118
- id_card_place_of_issue: string | null;
119
-
120
- @Column({ type: 'date', nullable: true })
121
- id_card_expiry_date: Date | null;
122
-
123
- // Address Information
124
- @Column({ type: 'text', nullable: true })
125
- permanent_address: string | null;
126
-
127
- @Column({ type: 'varchar', length: 255, nullable: true })
128
- governorate_wilaya: string | null;
129
-
130
- @Column({ type: 'varchar', length: 100, nullable: true })
131
- po_box: string | null; // P.O. Box
132
-
133
- @Column({ type: 'varchar', length: 50, nullable: true })
134
- zip_code: string | null;
135
-
136
- @Column({ type: 'varchar', length: 100, nullable: true })
137
- house_number: string | null;
138
-
139
- @Column({ type: 'varchar', length: 100, nullable: true })
140
- railway_number: string | null;
141
-
142
- @Column({ type: 'varchar', length: 255, nullable: true })
143
- governorate: string | null;
144
-
145
- @Column({ type: 'varchar', length: 255, nullable: true })
146
- wilayat: string | null;
147
-
148
- @Column({ type: 'varchar', length: 255, nullable: true })
149
- locality: string | null;
150
-
151
- @Column({ type: 'varchar', length: 100, nullable: true })
152
- country: string | null;
153
-
154
- // Contact Information
155
- @Column({ type: 'varchar', length: 50, nullable: true })
156
- phone_number: string | null;
157
-
158
- @Column({ type: 'varchar', length: 50, nullable: true })
159
- fax_number: string | null;
160
-
161
- @Column({ type: 'varchar', length: 255, nullable: true })
162
- email: string | null;
163
-
164
- @Column({ type: 'varchar', length: 255, nullable: true })
165
- email_address_personal: string | null; // Email Address (Personal)
166
-
167
- // Additional Personal Information
168
- @Column({ type: 'varchar', length: 255, nullable: true })
169
- sheikh_name: string | null; // Sheikh's Name
170
-
171
- @Column({ type: 'varchar', length: 500, nullable: true })
172
- photo: string | null;
173
-
174
- // ========== EMPLOYMENT DETAILS FIELDS (all nullable) ==========
175
- // Job Information
176
- @Column({ type: 'varchar', length: 255, nullable: true })
177
- job_title: string | null;
178
-
179
- @Column({ type: 'date', nullable: true })
180
- date_of_decree_issuance: Date | null;
181
-
182
- @Column({ type: 'varchar', length: 100, nullable: true })
183
- civil_service_number: string | null;
184
-
185
- @Column({ type: 'varchar', length: 100, nullable: true })
186
- information_number: string | null;
187
-
188
- @Column({ type: 'varchar', length: 100, nullable: true })
189
- manpower_number: string | null;
190
-
191
- @Column({ type: 'varchar', length: 100, nullable: true })
192
- computer_number: string | null;
193
-
194
- @Column({ type: 'boolean', nullable: true })
195
- contract_employee: boolean | null;
196
-
197
- @Column({ type: 'varchar', length: 255, nullable: true })
198
- nature_of_work: string | null;
199
-
200
- @Column({ type: 'date', nullable: true })
201
- retirement_date: Date | null;
202
-
203
- @Column({ type: 'varchar', length: 255, nullable: true })
204
- proposed_position: string | null;
205
-
206
- @Column({ type: 'varchar', length: 100, nullable: true })
207
- proposed_financial_grade: string | null;
208
-
209
- @Column({ type: 'date', nullable: true })
210
- secondment_start_date: Date | null;
211
-
212
- @Column({ type: 'date', nullable: true })
213
- secondment_end_date: Date | null;
214
-
215
- @Column({ type: 'varchar', length: 100, nullable: true })
216
- disability_type: string | null;
217
-
218
- @Column({ type: 'date', nullable: true })
219
- retirement_start_date: Date | null;
220
-
221
- @Column({ type: 'date', nullable: true })
222
- contract_end_date: Date | null;
223
-
224
- @Column({ type: 'varchar', length: 255, nullable: true })
225
- job_type_group: string | null;
226
-
227
- // Transfer Information
228
- @Column({ type: 'varchar', length: 255, nullable: true })
229
- entity_transferred_from: string | null;
230
-
231
- @Column({ type: 'date', nullable: true })
232
- date_of_transfer: Date | null; // Date of Transfer (from)
233
-
234
- @Column({ type: 'varchar', length: 255, nullable: true })
235
- entity_transferred_to: string | null;
236
-
237
- @Column({ type: 'date', nullable: true })
238
- date_of_transfer_to: Date | null; // Date of Transfer (to)
239
-
240
- @Column({ type: 'text', nullable: true })
241
- job_description: string | null;
242
-
243
- // Appointment Information
244
- @Column({ type: 'varchar', length: 255, nullable: true })
245
- country_appointment: string | null;
246
-
247
- @Column({ type: 'date', nullable: true })
248
- date_of_appointment: Date | null;
249
-
250
- @Column({ type: 'varchar', length: 100, nullable: true })
251
- appointment_grade: string | null;
252
-
253
- @Column({ type: 'varchar', length: 100, nullable: true })
254
- type_of_appointment: string | null;
255
-
256
- @Column({ type: 'varchar', length: 100, nullable: true })
257
- unit_code: string | null;
258
-
259
- @Column({ type: 'boolean', nullable: true })
260
- mc_work: boolean | null; // M&C Work
261
-
262
- @Column({ type: 'varchar', length: 255, nullable: true })
263
- office: string | null;
264
-
265
- @Column({ type: 'varchar', length: 255, nullable: true })
266
- governorate_name: string | null;
267
-
268
- @Column({ type: 'varchar', length: 255, nullable: true })
269
- department: string | null;
270
-
271
- @Column({ type: 'varchar', length: 255, nullable: true })
272
- works_in_department: string | null;
273
-
274
- // Mission Information
275
- @Column({ type: 'varchar', length: 255, nullable: true })
276
- full_name_of_mission: string | null;
277
-
278
- @Column({ type: 'varchar', length: 255, nullable: true })
279
- mission: string | null;
280
-
281
- @Column({ type: 'text', nullable: true })
282
- description_of_mission: string | null;
283
-
284
- @Column({ type: 'date', nullable: true })
285
- date_of_last_transfer_to_mission: Date | null;
286
-
287
- @Column({ type: 'date', nullable: true })
288
- date_of_last_transfer_from_mission: Date | null;
289
-
290
- @Column({ type: 'boolean', nullable: true })
291
- diplomat: boolean | null;
292
-
293
- // Performance and Termination
294
- @Column({ type: 'varchar', length: 100, nullable: true })
295
- efficiency_rating_for_the_year_month: string | null; // Efficiency rating for the year/month
296
-
297
- @Column({ type: 'date', nullable: true })
298
- retirement_termination_of_service_date: Date | null; // Retirement/Termination of Service Date
299
-
300
- @Column({ type: 'text', nullable: true })
301
- reason_for_leaving_service: string | null;
302
-
303
- // ========== EDUCATION DETAILS FIELDS (all nullable) ==========
304
- // Education Information
305
- @Column({ type: 'date', nullable: true })
306
- study_start_date: Date | null;
307
-
308
- @Column({ type: 'date', nullable: true })
309
- study_end_date: Date | null;
310
-
311
- // Training Information
312
- @Column({ type: 'date', nullable: true })
313
- training_course_start_date: Date | null;
314
-
315
- @Column({ type: 'date', nullable: true })
316
- training_course_end_date: Date | null;
317
- }