@platform-modules/foreign-ministry 1.3.355 → 1.3.359

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 (83) hide show
  1. package/dist/auth/authenticate-jwt-session.d.ts +19 -0
  2. package/dist/auth/authenticate-jwt-session.js +35 -0
  3. package/dist/auth/jwt-token.helper.d.ts +18 -0
  4. package/dist/auth/jwt-token.helper.js +58 -0
  5. package/dist/auth/user-session-validation.d.ts +42 -0
  6. package/dist/auth/user-session-validation.js +95 -0
  7. package/dist/helpers/employee-evaluation-request.utils.d.ts +12 -0
  8. package/dist/helpers/employee-evaluation-request.utils.js +85 -0
  9. package/dist/i18n/workflow-chat-i18n.d.ts +5 -0
  10. package/dist/i18n/workflow-chat-i18n.js +21 -0
  11. package/dist/i18n/workflow-chat-i18n.json +320 -0
  12. package/dist/i18n/workflow-chat-message.builder.d.ts +325 -0
  13. package/dist/i18n/workflow-chat-message.builder.js +924 -0
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.js +4 -3
  16. package/dist/models/InitiatorEmployeeNominationRequestModel.d.ts +2 -1
  17. package/dist/models/InitiatorEmployeeNominationRequestModel.js +3 -3
  18. package/dist/models/ProjectTasksModel.d.ts +1 -1
  19. package/dist/models/ProjectTasksModel.js +1 -1
  20. package/dist/models/SlaApprovalsViewModel.js +54 -54
  21. package/dist/models/SlaMyRequestsViewModel.js +57 -57
  22. package/package.json +2 -2
  23. package/scripts/check-column-types.js +38 -38
  24. package/scripts/check-service-tables.js +42 -42
  25. package/scripts/sync-sla-reports-sql.js +92 -92
  26. package/sql/initiator_employee_nomination_initiator_id.sql +12 -0
  27. package/sql/sla-reports-sync.manifest.json +9 -9
  28. package/sql/sla_reports_admin_procedures.sql +321 -322
  29. package/sql/sla_reports_approvals_workbook.sql +427 -430
  30. package/sql/sla_reports_procedures.sql +883 -886
  31. package/sql/sla_requests_status_to_varchar.sql +28 -28
  32. package/sql/vw_sla_approvals.sql +115 -115
  33. package/sql/vw_sla_my_requests.sql +60 -60
  34. package/src/helpers/employee-evaluation-request.utils.ts +127 -0
  35. package/src/helpers/evaluation-eligibility.utils.ts +126 -126
  36. package/src/index.ts +1 -0
  37. package/src/models/DiplomaticAcademyRequestModel.ts +80 -80
  38. package/src/models/DocumentationFileModel.ts +40 -40
  39. package/src/models/EmbassyEvaluationCycleModel.ts +45 -45
  40. package/src/models/EmbassyEvaluationRequestModel.ts +59 -59
  41. package/src/models/EmployeeEvaluationAnswerModel.ts +26 -26
  42. package/src/models/EvaluationEligibilitySettingModel.ts +51 -51
  43. package/src/models/EvaluationFormModel.ts +44 -44
  44. package/src/models/InitiatorEmployeeNominationRequestModel.ts +3 -2
  45. package/src/models/LanguageCourseRequestModel.ts +67 -67
  46. package/src/models/LeaveApprovalsModel.ts +66 -66
  47. package/src/models/LeaveConfigModel.ts +71 -71
  48. package/src/models/MissionTravelApprovalModel.ts +101 -101
  49. package/src/models/MissionTravelAttachmentModel.ts +56 -56
  50. package/src/models/MissionTravelChatModel.ts +52 -52
  51. package/src/models/MissionTravelPersonModel.ts +105 -105
  52. package/src/models/MissionTravelWorkflowModel.ts +54 -54
  53. package/src/models/ProjectContactsModel.ts +51 -51
  54. package/src/models/ProjectFaqModel.ts +36 -36
  55. package/src/models/ProjectInvoicesModel.ts +41 -41
  56. package/src/models/ProjectModel.ts +75 -75
  57. package/src/models/ProjectTasksModel.ts +75 -75
  58. package/src/models/ServiceSlaApprovalModel.ts +63 -63
  59. package/src/models/ServicesNotificationConfigsModel.ts +55 -55
  60. package/src/models/SlaApprovalsViewModel.ts +142 -142
  61. package/src/models/SlaMyRequestsViewModel.ts +192 -192
  62. package/src/models/SlaRequestModel.ts +57 -57
  63. package/src/sla-report-views.ts +3 -3
  64. package/dist/helpers/sla-request-status.helper.d.ts +0 -3
  65. package/dist/helpers/sla-request-status.helper.js +0 -36
  66. package/dist/models/EmbassyEvaluationDepartmentSettingModel.d.ts +0 -14
  67. package/dist/models/EmbassyEvaluationDepartmentSettingModel.js +0 -56
  68. package/dist/models/EvaluationMastersModel.d.ts +0 -16
  69. package/dist/models/EvaluationMastersModel.js +0 -67
  70. package/dist/models/EvaluationQuestionMasterModel.d.ts +0 -10
  71. package/dist/models/EvaluationQuestionMasterModel.js +0 -42
  72. package/dist/models/EvaluationSectionMasterModel.d.ts +0 -7
  73. package/dist/models/EvaluationSectionMasterModel.js +0 -36
  74. package/dist/models/EvaluationWorkflowModel.d.ts +0 -60
  75. package/dist/models/EvaluationWorkflowModel.js +0 -215
  76. package/dist/models/IneligibleForEvaluationModel.d.ts +0 -8
  77. package/dist/models/IneligibleForEvaluationModel.js +0 -44
  78. package/dist/models/MissionTravelClassConfigModel.d.ts +0 -10
  79. package/dist/models/MissionTravelClassConfigModel.js +0 -50
  80. package/dist/models/MissionTravelPerdiemModel.d.ts +0 -10
  81. package/dist/models/MissionTravelPerdiemModel.js +0 -54
  82. package/dist/models/UuidAuditModel.d.ts +0 -9
  83. package/dist/models/UuidAuditModel.js +0 -41
@@ -1,59 +1,59 @@
1
- import { Column, Entity } from 'typeorm';
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum EmbassyEvaluationRequestStatus {
5
- PENDING = 'Pending',
6
- IN_PROGRESS = 'In Progress',
7
- APPROVED = 'Approved',
8
- REJECTED = 'Rejected',
9
- }
10
-
11
- /** Consolidated approval request when all departments complete evaluations for all embassies in a cycle. */
12
- @Entity({ name: 'embassy_evaluation_requests' })
13
- export class EmbassyEvaluationRequests extends BaseModel {
14
- @Column({ type: 'int', nullable: false })
15
- cycle_id: number;
16
-
17
- /** Same cycle template can run each calendar year; year is set at activation (assignments), not on cycle. */
18
- @Column({ type: 'int', nullable: true })
19
- evaluation_year: number | null;
20
-
21
- @Column({ type: 'jsonb', nullable: false })
22
- embassy_ids: number[];
23
-
24
- @Column({ type: 'int', nullable: true })
25
- req_user_department_id: number | null;
26
-
27
- @Column({ type: 'int', nullable: true })
28
- req_user_section_id: number | null;
29
-
30
- @Column({ type: 'int', nullable: true })
31
- service_id: number | null;
32
-
33
- @Column({ type: 'int', nullable: true })
34
- sub_service_id: number | null;
35
-
36
- @Column({ type: 'int', nullable: false })
37
- user_id: number;
38
-
39
- @Column({ type: 'int', nullable: false, default: 0 })
40
- total_assignments: number;
41
-
42
- @Column({ type: 'int', nullable: false, default: 0 })
43
- submitted_assignments: number;
44
-
45
- @Column({
46
- type: 'enum',
47
- enum: EmbassyEvaluationRequestStatus,
48
- enumName: 'embassy_evaluation_request_status_enum',
49
- default: EmbassyEvaluationRequestStatus.PENDING,
50
- nullable: false,
51
- })
52
- status: EmbassyEvaluationRequestStatus;
53
-
54
- @Column({ type: 'varchar', length: 255, nullable: true })
55
- workflow_execution_id: string | null;
56
-
57
- @Column({ type: 'text', nullable: true })
58
- comments: string | null;
59
- }
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum EmbassyEvaluationRequestStatus {
5
+ PENDING = 'Pending',
6
+ IN_PROGRESS = 'In Progress',
7
+ APPROVED = 'Approved',
8
+ REJECTED = 'Rejected',
9
+ }
10
+
11
+ /** Consolidated approval request when all departments complete evaluations for all embassies in a cycle. */
12
+ @Entity({ name: 'embassy_evaluation_requests' })
13
+ export class EmbassyEvaluationRequests extends BaseModel {
14
+ @Column({ type: 'int', nullable: false })
15
+ cycle_id: number;
16
+
17
+ /** Same cycle template can run each calendar year; year is set at activation (assignments), not on cycle. */
18
+ @Column({ type: 'int', nullable: true })
19
+ evaluation_year: number | null;
20
+
21
+ @Column({ type: 'jsonb', nullable: false })
22
+ embassy_ids: number[];
23
+
24
+ @Column({ type: 'int', nullable: true })
25
+ req_user_department_id: number | null;
26
+
27
+ @Column({ type: 'int', nullable: true })
28
+ req_user_section_id: number | null;
29
+
30
+ @Column({ type: 'int', nullable: true })
31
+ service_id: number | null;
32
+
33
+ @Column({ type: 'int', nullable: true })
34
+ sub_service_id: number | null;
35
+
36
+ @Column({ type: 'int', nullable: false })
37
+ user_id: number;
38
+
39
+ @Column({ type: 'int', nullable: false, default: 0 })
40
+ total_assignments: number;
41
+
42
+ @Column({ type: 'int', nullable: false, default: 0 })
43
+ submitted_assignments: number;
44
+
45
+ @Column({
46
+ type: 'enum',
47
+ enum: EmbassyEvaluationRequestStatus,
48
+ enumName: 'embassy_evaluation_request_status_enum',
49
+ default: EmbassyEvaluationRequestStatus.PENDING,
50
+ nullable: false,
51
+ })
52
+ status: EmbassyEvaluationRequestStatus;
53
+
54
+ @Column({ type: 'varchar', length: 255, nullable: true })
55
+ workflow_execution_id: string | null;
56
+
57
+ @Column({ type: 'text', nullable: true })
58
+ comments: string | null;
59
+ }
@@ -1,26 +1,26 @@
1
- import { Column, Entity } from 'typeorm';
2
- import { BaseModel } from './BaseModel';
3
-
4
- @Entity({ name: 'employee_evaluation_answers' })
5
- export class EmployeeEvaluationAnswers extends BaseModel {
6
- @Column({ type: 'integer', nullable: false })
7
- request_id: number;
8
-
9
- @Column({ type: 'integer', nullable: false })
10
- user_id: number;
11
-
12
- @Column({ type: 'integer', nullable: false })
13
- form_id: number;
14
-
15
- @Column({ type: 'integer', nullable: false })
16
- section_id: number;
17
-
18
- @Column({ type: 'integer', nullable: false })
19
- question_id: number;
20
-
21
- @Column({ type: 'integer', nullable: false })
22
- score: number;
23
-
24
- @Column({ type: 'text', nullable: true })
25
- remarks: string | null;
26
- }
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ @Entity({ name: 'employee_evaluation_answers' })
5
+ export class EmployeeEvaluationAnswers extends BaseModel {
6
+ @Column({ type: 'integer', nullable: false })
7
+ request_id: number;
8
+
9
+ @Column({ type: 'integer', nullable: false })
10
+ user_id: number;
11
+
12
+ @Column({ type: 'integer', nullable: false })
13
+ form_id: number;
14
+
15
+ @Column({ type: 'integer', nullable: false })
16
+ section_id: number;
17
+
18
+ @Column({ type: 'integer', nullable: false })
19
+ question_id: number;
20
+
21
+ @Column({ type: 'integer', nullable: false })
22
+ score: number;
23
+
24
+ @Column({ type: 'text', nullable: true })
25
+ remarks: string | null;
26
+ }
@@ -1,51 +1,51 @@
1
- import { Column, Entity, JoinColumn, ManyToOne, OneToMany } from 'typeorm';
2
- import { BaseModel } from './BaseModel';
3
-
4
- /**
5
- * Cycle-based evaluation exception list: defines the evaluation window (MM-DD dates),
6
- * last submission day, and employees excluded from evaluation for that cycle.
7
- */
8
- @Entity({ name: 'evaluation_eligibility_settings' })
9
- export class EvaluationEligibilitySetting extends BaseModel {
10
- @Column({ type: 'varchar', length: 255 })
11
- cycle_name: string;
12
-
13
- @Column({ type: 'varchar', length: 100 })
14
- cycle_code: string;
15
-
16
- /** Evaluation window start date as MM-DD (e.g. 01-01). */
17
- @Column({ type: 'varchar', length: 5 })
18
- from_month: string;
19
-
20
- /** Evaluation window end date as MM-DD (e.g. 05-31), inclusive. */
21
- @Column({ type: 'varchar', length: 5 })
22
- to_month: string;
23
-
24
- /** Last submission date as MM-DD; day applies each month in the window (e.g. 04-12 → through the 12th). */
25
- @Column({ type: 'varchar', length: 5 })
26
- evaluation_end_date: string;
27
-
28
- @Column({ type: 'boolean', default: true })
29
- is_active: boolean;
30
-
31
- /** Maximum employees allowed in one evaluation request for this cycle window. */
32
- @Column({ type: 'int', default: 50 })
33
- max_employees_per_request: number;
34
-
35
- @OneToMany(() => EvaluationEligibilitySettingEmployee, (e) => e.evaluation_eligibility_setting)
36
- employees?: EvaluationEligibilitySettingEmployee[];
37
- }
38
-
39
- @Entity({ name: 'evaluation_eligibility_setting_employees' })
40
- export class EvaluationEligibilitySettingEmployee extends BaseModel {
41
- @ManyToOne(() => EvaluationEligibilitySetting, (s) => s.employees, { onDelete: 'CASCADE' })
42
- @JoinColumn({ name: 'setting_id' })
43
- evaluation_eligibility_setting: EvaluationEligibilitySetting;
44
-
45
- @Column({ type: 'int' })
46
- employee_id: number;
47
-
48
- /** When true, employee is excluded from evaluation for this cycle window. */
49
- @Column({ type: 'boolean', default: true })
50
- is_excluded_from_evaluation: boolean;
51
- }
1
+ import { Column, Entity, JoinColumn, ManyToOne, OneToMany } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ /**
5
+ * Cycle-based evaluation exception list: defines the evaluation window (MM-DD dates),
6
+ * last submission day, and employees excluded from evaluation for that cycle.
7
+ */
8
+ @Entity({ name: 'evaluation_eligibility_settings' })
9
+ export class EvaluationEligibilitySetting extends BaseModel {
10
+ @Column({ type: 'varchar', length: 255 })
11
+ cycle_name: string;
12
+
13
+ @Column({ type: 'varchar', length: 100 })
14
+ cycle_code: string;
15
+
16
+ /** Evaluation window start date as MM-DD (e.g. 01-01). */
17
+ @Column({ type: 'varchar', length: 5 })
18
+ from_month: string;
19
+
20
+ /** Evaluation window end date as MM-DD (e.g. 05-31), inclusive. */
21
+ @Column({ type: 'varchar', length: 5 })
22
+ to_month: string;
23
+
24
+ /** Last submission date as MM-DD; day applies each month in the window (e.g. 04-12 → through the 12th). */
25
+ @Column({ type: 'varchar', length: 5 })
26
+ evaluation_end_date: string;
27
+
28
+ @Column({ type: 'boolean', default: true })
29
+ is_active: boolean;
30
+
31
+ /** Maximum employees allowed in one evaluation request for this cycle window. */
32
+ @Column({ type: 'int', default: 50 })
33
+ max_employees_per_request: number;
34
+
35
+ @OneToMany(() => EvaluationEligibilitySettingEmployee, (e) => e.evaluation_eligibility_setting)
36
+ employees?: EvaluationEligibilitySettingEmployee[];
37
+ }
38
+
39
+ @Entity({ name: 'evaluation_eligibility_setting_employees' })
40
+ export class EvaluationEligibilitySettingEmployee extends BaseModel {
41
+ @ManyToOne(() => EvaluationEligibilitySetting, (s) => s.employees, { onDelete: 'CASCADE' })
42
+ @JoinColumn({ name: 'setting_id' })
43
+ evaluation_eligibility_setting: EvaluationEligibilitySetting;
44
+
45
+ @Column({ type: 'int' })
46
+ employee_id: number;
47
+
48
+ /** When true, employee is excluded from evaluation for this cycle window. */
49
+ @Column({ type: 'boolean', default: true })
50
+ is_excluded_from_evaluation: boolean;
51
+ }
@@ -1,44 +1,44 @@
1
- import { Column, Entity, Index, OneToMany } from 'typeorm';
2
- import { BaseModel } from './BaseModel';
3
- import { EvaluationFormSection } from './EvaluationFormSectionModel';
4
-
5
- export enum EvaluationFormType {
6
- EMPLOYEE_EVALUATION = 'employee_evaluation',
7
- DEPARTMENT = 'department',
8
- }
9
-
10
- @Entity({ name: 'evaluation_forms' })
11
- @Index('uq_evaluation_forms_form_name', ['form_name'], { unique: true, where: '"is_deleted" = false' })
12
- @Index('uq_evaluation_forms_form_code', ['form_code'], { unique: true, where: '"is_deleted" = false' })
13
- @Index('uq_evaluation_forms_dept_section', ['department_id', 'section_id'], {
14
- unique: true,
15
- where: `"is_deleted" = false AND form_type = 'department'`,
16
- })
17
- export class EvaluationForm extends BaseModel {
18
- @Column({ type: 'varchar', length: 255, nullable: false })
19
- form_name: string;
20
-
21
- @Column({ type: 'varchar', length: 64, nullable: false })
22
- form_code: string;
23
-
24
- @Column({ type: 'varchar', length: 32, nullable: false })
25
- form_type: EvaluationFormType;
26
-
27
- @Column({ type: 'int', nullable: true })
28
- department_id: number | null;
29
-
30
- @Column({ type: 'int', nullable: true })
31
- section_id: number | null;
32
-
33
- @Column({ type: 'int', default: 0 })
34
- min_score: number;
35
-
36
- @Column({ type: 'int', default: 10 })
37
- max_score: number;
38
-
39
- @Column({ type: 'boolean', default: true })
40
- is_active: boolean;
41
-
42
- @OneToMany(() => EvaluationFormSection, (s) => s.form)
43
- sections?: EvaluationFormSection[];
44
- }
1
+ import { Column, Entity, Index, OneToMany } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+ import { EvaluationFormSection } from './EvaluationFormSectionModel';
4
+
5
+ export enum EvaluationFormType {
6
+ EMPLOYEE_EVALUATION = 'employee_evaluation',
7
+ DEPARTMENT = 'department',
8
+ }
9
+
10
+ @Entity({ name: 'evaluation_forms' })
11
+ @Index('uq_evaluation_forms_form_name', ['form_name'], { unique: true, where: '"is_deleted" = false' })
12
+ @Index('uq_evaluation_forms_form_code', ['form_code'], { unique: true, where: '"is_deleted" = false' })
13
+ @Index('uq_evaluation_forms_dept_section', ['department_id', 'section_id'], {
14
+ unique: true,
15
+ where: `"is_deleted" = false AND form_type = 'department'`,
16
+ })
17
+ export class EvaluationForm extends BaseModel {
18
+ @Column({ type: 'varchar', length: 255, nullable: false })
19
+ form_name: string;
20
+
21
+ @Column({ type: 'varchar', length: 64, nullable: false })
22
+ form_code: string;
23
+
24
+ @Column({ type: 'varchar', length: 32, nullable: false })
25
+ form_type: EvaluationFormType;
26
+
27
+ @Column({ type: 'int', nullable: true })
28
+ department_id: number | null;
29
+
30
+ @Column({ type: 'int', nullable: true })
31
+ section_id: number | null;
32
+
33
+ @Column({ type: 'int', default: 0 })
34
+ min_score: number;
35
+
36
+ @Column({ type: 'int', default: 10 })
37
+ max_score: number;
38
+
39
+ @Column({ type: 'boolean', default: true })
40
+ is_active: boolean;
41
+
42
+ @OneToMany(() => EvaluationFormSection, (s) => s.form)
43
+ sections?: EvaluationFormSection[];
44
+ }
@@ -40,8 +40,9 @@ export class InitiatorEmployeeNominationRequests extends BaseModel {
40
40
  @Column({ type: 'int', nullable: false })
41
41
  user_id: number;
42
42
 
43
- @Column({ type: 'varchar', length: 120, nullable: false })
44
- job_number: string;
43
+ /** Nominated employee (users.id). */
44
+ @Column({ type: 'int', nullable: false })
45
+ initiator_id: number;
45
46
 
46
47
  @Column({ type: 'varchar', length: 255, nullable: false })
47
48
  last_annual_assessment: string;
@@ -1,67 +1,67 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum LanguageCourseStatus {
5
- SUBMITTED = "Submitted",
6
- PENDING = "Pending",
7
- ASSIGNED = "Assigned",
8
- IN_PROGRESS = "In Progress",
9
- APPROVED = "Approved",
10
- REJECTED = "Rejected"
11
- }
12
-
13
- @Entity({ name: 'language_course_requests' })
14
- export class LanguageCourseRequests extends BaseModel {
15
-
16
- // Common columns
17
- @Column({ type: 'int', nullable: true })
18
- req_user_department_id: number | null;
19
-
20
- @Column({ type: 'int', nullable: true })
21
- req_user_section_id: number | null;
22
-
23
- @Column({ type: 'int', nullable: true })
24
- service_id: number | null;
25
-
26
- @Column({ type: 'int', nullable: true })
27
- sub_service_id: number | null;
28
-
29
- @Column({ type: 'int', nullable: false })
30
- user_id: number;
31
-
32
- // Language Course specific columns
33
- @Column({ type: 'varchar', length: 255, nullable: false })
34
- course_name: string;
35
-
36
- @Column({ type: 'varchar', length: 100, nullable: false })
37
- course_level: string;
38
-
39
- @Column({ type: 'varchar', length: 255, nullable: false })
40
- institution: string;
41
-
42
- @Column({ type: 'text', nullable: false })
43
- reason_of_course: string;
44
-
45
- @Column({ type: 'int', nullable: false })
46
- estimated_number_of_participants: number;
47
-
48
- // Timeline
49
- @Column({ type: 'date', nullable: false })
50
- date_from: Date;
51
-
52
- @Column({ type: 'date', nullable: false })
53
- date_to: Date;
54
-
55
- @Column({ type: 'time', nullable: false })
56
- time_from: string;
57
-
58
- @Column({ type: 'time', nullable: false })
59
- time_to: string;
60
-
61
- @Column({ type: 'enum', enum: LanguageCourseStatus, default: LanguageCourseStatus.PENDING, nullable: false })
62
- status: LanguageCourseStatus;
63
-
64
- @Column({ type: 'varchar', nullable: true })
65
- workflow_execution_id: string | null;
66
-
67
- }
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum LanguageCourseStatus {
5
+ SUBMITTED = "Submitted",
6
+ PENDING = "Pending",
7
+ ASSIGNED = "Assigned",
8
+ IN_PROGRESS = "In Progress",
9
+ APPROVED = "Approved",
10
+ REJECTED = "Rejected"
11
+ }
12
+
13
+ @Entity({ name: 'language_course_requests' })
14
+ export class LanguageCourseRequests extends BaseModel {
15
+
16
+ // Common columns
17
+ @Column({ type: 'int', nullable: true })
18
+ req_user_department_id: number | null;
19
+
20
+ @Column({ type: 'int', nullable: true })
21
+ req_user_section_id: number | null;
22
+
23
+ @Column({ type: 'int', nullable: true })
24
+ service_id: number | null;
25
+
26
+ @Column({ type: 'int', nullable: true })
27
+ sub_service_id: number | null;
28
+
29
+ @Column({ type: 'int', nullable: false })
30
+ user_id: number;
31
+
32
+ // Language Course specific columns
33
+ @Column({ type: 'varchar', length: 255, nullable: false })
34
+ course_name: string;
35
+
36
+ @Column({ type: 'varchar', length: 100, nullable: false })
37
+ course_level: string;
38
+
39
+ @Column({ type: 'varchar', length: 255, nullable: false })
40
+ institution: string;
41
+
42
+ @Column({ type: 'text', nullable: false })
43
+ reason_of_course: string;
44
+
45
+ @Column({ type: 'int', nullable: false })
46
+ estimated_number_of_participants: number;
47
+
48
+ // Timeline
49
+ @Column({ type: 'date', nullable: false })
50
+ date_from: Date;
51
+
52
+ @Column({ type: 'date', nullable: false })
53
+ date_to: Date;
54
+
55
+ @Column({ type: 'time', nullable: false })
56
+ time_from: string;
57
+
58
+ @Column({ type: 'time', nullable: false })
59
+ time_to: string;
60
+
61
+ @Column({ type: 'enum', enum: LanguageCourseStatus, default: LanguageCourseStatus.PENDING, nullable: false })
62
+ status: LanguageCourseStatus;
63
+
64
+ @Column({ type: 'varchar', nullable: true })
65
+ workflow_execution_id: string | null;
66
+
67
+ }
@@ -1,67 +1,67 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
-
5
- export enum ApprovalStatus {
6
- PENDING = "Pending",
7
- APPROVED = "Approved",
8
- REJECTED = "Rejected",
9
- IN_PROGRESS = "In Progress",
10
- CANCELLED = "Cancelled"
11
- }
12
-
13
- //This model is used to store the store the leave apporval details of the user for the leave request
14
- @Entity({ name: 'leave_approvals' })
15
- export class LeaveApprovalDetails extends BaseModel {
16
- @Column({ type: 'int', nullable: false })
17
- leave_request_id: number;
18
-
19
- @Column({ type: 'integer', nullable: true })
20
- service_id: number | null;
21
-
22
- @Column({ type: 'integer', nullable: true })
23
- sub_service_id: number | null;
24
-
25
- @Column({ type: 'int', nullable: false })
26
- level: number;
27
-
28
- @Column({ type: 'int', nullable: true })
29
- approver_user_id: number;
30
-
31
- @Column({ type: 'int', nullable: true })
32
- approver_role_id: number;
33
-
34
- @Column({ type: 'integer', nullable: true })
35
- delegate_user_id: number | null;
36
-
37
- @Column({ type: 'integer', nullable: true })
38
- approved_by: number | null;
39
-
40
- @Column({ type: 'int', nullable: true })
41
- department_id: number;
42
-
43
- @Column({ type: 'int', nullable: true })
44
- section_id: number;
45
-
46
- @Column({ type: 'varchar', length: 255, nullable: false })
47
- comment: string;
48
-
49
- @Column({ type: 'enum', enum: ApprovalStatus,default: ApprovalStatus.PENDING, nullable: false })
50
- approval_status: ApprovalStatus;
51
-
52
- @Column({ type: 'boolean', default: true, nullable: false })
53
- is_allowed: boolean;
54
-
55
- constructor(leave_request_id: number, approver_user_id: number, approver_role_id: number, comment: string, approval_status: ApprovalStatus, level: number, department_id: number, section_id: number, is_allowed: boolean) {
56
- super();
57
- this.leave_request_id = leave_request_id;
58
- this.approver_user_id = approver_user_id;
59
- this.approver_role_id = approver_role_id;
60
- this.department_id = department_id;
61
- this.section_id = section_id;
62
- this.comment = comment;
63
- this.approval_status = approval_status;
64
- this.level = level;
65
- this.is_allowed = is_allowed;
66
- }
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+
5
+ export enum ApprovalStatus {
6
+ PENDING = "Pending",
7
+ APPROVED = "Approved",
8
+ REJECTED = "Rejected",
9
+ IN_PROGRESS = "In Progress",
10
+ CANCELLED = "Cancelled"
11
+ }
12
+
13
+ //This model is used to store the store the leave apporval details of the user for the leave request
14
+ @Entity({ name: 'leave_approvals' })
15
+ export class LeaveApprovalDetails extends BaseModel {
16
+ @Column({ type: 'int', nullable: false })
17
+ leave_request_id: number;
18
+
19
+ @Column({ type: 'integer', nullable: true })
20
+ service_id: number | null;
21
+
22
+ @Column({ type: 'integer', nullable: true })
23
+ sub_service_id: number | null;
24
+
25
+ @Column({ type: 'int', nullable: false })
26
+ level: number;
27
+
28
+ @Column({ type: 'int', nullable: true })
29
+ approver_user_id: number;
30
+
31
+ @Column({ type: 'int', nullable: true })
32
+ approver_role_id: number;
33
+
34
+ @Column({ type: 'integer', nullable: true })
35
+ delegate_user_id: number | null;
36
+
37
+ @Column({ type: 'integer', nullable: true })
38
+ approved_by: number | null;
39
+
40
+ @Column({ type: 'int', nullable: true })
41
+ department_id: number;
42
+
43
+ @Column({ type: 'int', nullable: true })
44
+ section_id: number;
45
+
46
+ @Column({ type: 'varchar', length: 255, nullable: false })
47
+ comment: string;
48
+
49
+ @Column({ type: 'enum', enum: ApprovalStatus,default: ApprovalStatus.PENDING, nullable: false })
50
+ approval_status: ApprovalStatus;
51
+
52
+ @Column({ type: 'boolean', default: true, nullable: false })
53
+ is_allowed: boolean;
54
+
55
+ constructor(leave_request_id: number, approver_user_id: number, approver_role_id: number, comment: string, approval_status: ApprovalStatus, level: number, department_id: number, section_id: number, is_allowed: boolean) {
56
+ super();
57
+ this.leave_request_id = leave_request_id;
58
+ this.approver_user_id = approver_user_id;
59
+ this.approver_role_id = approver_role_id;
60
+ this.department_id = department_id;
61
+ this.section_id = section_id;
62
+ this.comment = comment;
63
+ this.approval_status = approval_status;
64
+ this.level = level;
65
+ this.is_allowed = is_allowed;
66
+ }
67
67
  }