@platform-modules/foreign-ministry 1.3.200 → 1.3.201

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 (33) hide show
  1. package/.env +5 -10
  2. package/dist/models/EmbassyMasterModel.d.ts +16 -0
  3. package/dist/models/EmbassyMasterModel.js +75 -0
  4. package/dist/models/GatePassVisitorsModel.d.ts +1 -0
  5. package/dist/models/GatePassVisitorsModel.js +5 -0
  6. package/dist/models/UserDependentsModel.d.ts +18 -0
  7. package/dist/models/UserDependentsModel.js +94 -0
  8. package/package.json +1 -1
  9. package/src/models/DiplomaticAcademyRequestModel.ts +80 -80
  10. package/src/models/GatePassVisitorsModel.ts +7 -3
  11. package/src/models/LanguageCourseRequestModel.ts +67 -67
  12. package/src/models/LeaveConfigModel.ts +71 -71
  13. package/src/models/MissionTravelApprovalModel.ts +101 -101
  14. package/src/models/MissionTravelAttachmentModel.ts +56 -56
  15. package/src/models/MissionTravelChatModel.ts +52 -52
  16. package/src/models/MissionTravelPersonModel.ts +105 -105
  17. package/src/models/MissionTravelWorkflowModel.ts +54 -54
  18. package/src/models/PollOptionsModel.ts +26 -26
  19. package/src/models/PollVotesModel.ts +37 -37
  20. package/src/models/PollsModel.ts +49 -49
  21. package/src/models/ProjectMilestoneDocumentsModel.ts +40 -40
  22. package/src/models/ProjectMilestonesModel.ts +65 -65
  23. package/src/models/ProjectModel.ts +65 -65
  24. package/src/models/ProjectTaskActivityModel.ts +35 -35
  25. package/src/models/ProjectTaskCommentsModel.ts +17 -17
  26. package/src/models/ProjectTasksModel.ts +80 -80
  27. package/src/models/SectionModel.ts +35 -35
  28. package/src/models/ServicesNotificationConfigsModel.ts +55 -55
  29. package/src/models/TelephoneDirectoryModel.ts +20 -20
  30. package/dist/models/MissionTravelClassConfigModel.d.ts +0 -10
  31. package/dist/models/MissionTravelClassConfigModel.js +0 -50
  32. package/dist/models/MissionTravelPerdiemModel.d.ts +0 -10
  33. package/dist/models/MissionTravelPerdiemModel.js +0 -54
package/.env CHANGED
@@ -1,10 +1,5 @@
1
- # DB_HOST=localhost
2
- # DB_PORT=5432
3
- # DB_USER=postgres
4
- # DB_PASS=stevejobs
5
- # DB_NAME=FM
6
-
7
- DB_HOST = 164.52.222.169
8
- DB_USER = postgres_admin_user
9
- DB_PASS = pg_admin_user_pwd_caa_fa_$%^&OIukhjgcvbn
10
- DB_NAME= FM
1
+ DB_HOST=localhost
2
+ DB_PORT=5432
3
+ DB_USER=postgres
4
+ DB_PASS=Fa@123
5
+ DB_NAME=FM
@@ -0,0 +1,16 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare class EmbassyMaster extends BaseModel {
3
+ embassy_name: string;
4
+ embassy_name_arabic: string | null;
5
+ country_id: number | null;
6
+ city: string | null;
7
+ address: string | null;
8
+ phone: string | null;
9
+ fax: string | null;
10
+ email: string | null;
11
+ website: string | null;
12
+ description: string | null;
13
+ is_active: boolean;
14
+ display_order: number;
15
+ constructor(embassy_name: string);
16
+ }
@@ -0,0 +1,75 @@
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.EmbassyMaster = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ let EmbassyMaster = class EmbassyMaster extends BaseModel_1.BaseModel {
16
+ constructor(embassy_name) {
17
+ super();
18
+ this.embassy_name = embassy_name;
19
+ this.is_active = true;
20
+ this.display_order = 0;
21
+ }
22
+ };
23
+ exports.EmbassyMaster = EmbassyMaster;
24
+ __decorate([
25
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: false }),
26
+ __metadata("design:type", String)
27
+ ], EmbassyMaster.prototype, "embassy_name", void 0);
28
+ __decorate([
29
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
30
+ __metadata("design:type", Object)
31
+ ], EmbassyMaster.prototype, "embassy_name_arabic", void 0);
32
+ __decorate([
33
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
34
+ __metadata("design:type", Object)
35
+ ], EmbassyMaster.prototype, "country_id", void 0);
36
+ __decorate([
37
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
38
+ __metadata("design:type", Object)
39
+ ], EmbassyMaster.prototype, "city", void 0);
40
+ __decorate([
41
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
42
+ __metadata("design:type", Object)
43
+ ], EmbassyMaster.prototype, "address", void 0);
44
+ __decorate([
45
+ (0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
46
+ __metadata("design:type", Object)
47
+ ], EmbassyMaster.prototype, "phone", void 0);
48
+ __decorate([
49
+ (0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
50
+ __metadata("design:type", Object)
51
+ ], EmbassyMaster.prototype, "fax", void 0);
52
+ __decorate([
53
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
54
+ __metadata("design:type", Object)
55
+ ], EmbassyMaster.prototype, "email", void 0);
56
+ __decorate([
57
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
58
+ __metadata("design:type", Object)
59
+ ], EmbassyMaster.prototype, "website", void 0);
60
+ __decorate([
61
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
62
+ __metadata("design:type", Object)
63
+ ], EmbassyMaster.prototype, "description", void 0);
64
+ __decorate([
65
+ (0, typeorm_1.Column)({ type: 'boolean', default: true }),
66
+ __metadata("design:type", Boolean)
67
+ ], EmbassyMaster.prototype, "is_active", void 0);
68
+ __decorate([
69
+ (0, typeorm_1.Column)({ type: 'int', default: 0 }),
70
+ __metadata("design:type", Number)
71
+ ], EmbassyMaster.prototype, "display_order", void 0);
72
+ exports.EmbassyMaster = EmbassyMaster = __decorate([
73
+ (0, typeorm_1.Entity)({ name: 'embassy_master' }),
74
+ __metadata("design:paramtypes", [String])
75
+ ], EmbassyMaster);
@@ -30,6 +30,7 @@ export declare class GatePassVisitors extends BaseModel {
30
30
  to_date: Date | null;
31
31
  gate_pass_type: GatePassType | null;
32
32
  visiting_person_in_department: string | null;
33
+ serial_number: number | null;
33
34
  qr_code_url: string | null;
34
35
  qr_code_data: string | null;
35
36
  gate_pass_generated: boolean;
@@ -32,6 +32,7 @@ let GatePassVisitors = class GatePassVisitors extends BaseModel_1.BaseModel {
32
32
  this.visitor_mobile_number = visitor_mobile_number;
33
33
  this.visitor_photo_url = visitor_photo_url;
34
34
  this.visitor_photo_file_name = visitor_photo_file_name;
35
+ this.serial_number = null;
35
36
  this.gate_pass_generated = false;
36
37
  this.email_sent = false;
37
38
  }
@@ -133,6 +134,10 @@ __decorate([
133
134
  (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
134
135
  __metadata("design:type", Object)
135
136
  ], GatePassVisitors.prototype, "visiting_person_in_department", void 0);
137
+ __decorate([
138
+ (0, typeorm_1.Column)({ type: 'int', nullable: true, unique: true }),
139
+ __metadata("design:type", Object)
140
+ ], GatePassVisitors.prototype, "serial_number", void 0);
136
141
  __decorate([
137
142
  (0, typeorm_1.Column)({ type: 'text', nullable: true }),
138
143
  __metadata("design:type", Object)
@@ -0,0 +1,18 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare class UserDependents extends BaseModel {
3
+ user_id: number;
4
+ first_name: string | null;
5
+ last_name: string | null;
6
+ family_name: string | null;
7
+ dob: Date | null;
8
+ age: number | null;
9
+ relation_type: string | null;
10
+ passport_available: boolean;
11
+ passport_number: string | null;
12
+ passport_type: string | null;
13
+ passport_issue_date: Date | null;
14
+ passport_place_of_issue: string | null;
15
+ passport_expiry_date: Date | null;
16
+ is_active: boolean;
17
+ constructor(user_id?: number, first_name?: string, last_name?: string, family_name?: string, dob?: Date, age?: number, relation_type?: string, passport_available?: boolean, passport_number?: string, passport_type?: string, passport_issue_date?: Date, passport_place_of_issue?: string, passport_expiry_date?: Date);
18
+ }
@@ -0,0 +1,94 @@
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.UserDependents = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ let UserDependents = class UserDependents extends BaseModel_1.BaseModel {
16
+ constructor(user_id, first_name, last_name, family_name, dob, age, relation_type, passport_available, passport_number, passport_type, passport_issue_date, passport_place_of_issue, passport_expiry_date) {
17
+ super();
18
+ this.user_id = user_id || 0;
19
+ this.first_name = first_name || null;
20
+ this.last_name = last_name || null;
21
+ this.family_name = family_name || null;
22
+ this.dob = dob || null;
23
+ this.age = age || null;
24
+ this.relation_type = relation_type || null;
25
+ this.passport_available = passport_available || false;
26
+ this.passport_number = passport_number || null;
27
+ this.passport_type = passport_type || null;
28
+ this.passport_issue_date = passport_issue_date || null;
29
+ this.passport_place_of_issue = passport_place_of_issue || null;
30
+ this.passport_expiry_date = passport_expiry_date || null;
31
+ this.is_active = true;
32
+ }
33
+ };
34
+ exports.UserDependents = UserDependents;
35
+ __decorate([
36
+ (0, typeorm_1.Column)({ type: 'int', nullable: false }),
37
+ __metadata("design:type", Number)
38
+ ], UserDependents.prototype, "user_id", void 0);
39
+ __decorate([
40
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
41
+ __metadata("design:type", Object)
42
+ ], UserDependents.prototype, "first_name", void 0);
43
+ __decorate([
44
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
45
+ __metadata("design:type", Object)
46
+ ], UserDependents.prototype, "last_name", void 0);
47
+ __decorate([
48
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
49
+ __metadata("design:type", Object)
50
+ ], UserDependents.prototype, "family_name", void 0);
51
+ __decorate([
52
+ (0, typeorm_1.Column)({ type: 'date', nullable: true }),
53
+ __metadata("design:type", Object)
54
+ ], UserDependents.prototype, "dob", void 0);
55
+ __decorate([
56
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
57
+ __metadata("design:type", Object)
58
+ ], UserDependents.prototype, "age", void 0);
59
+ __decorate([
60
+ (0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true }),
61
+ __metadata("design:type", Object)
62
+ ], UserDependents.prototype, "relation_type", void 0);
63
+ __decorate([
64
+ (0, typeorm_1.Column)({ type: 'boolean', default: false }),
65
+ __metadata("design:type", Boolean)
66
+ ], UserDependents.prototype, "passport_available", void 0);
67
+ __decorate([
68
+ (0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true }),
69
+ __metadata("design:type", Object)
70
+ ], UserDependents.prototype, "passport_number", void 0);
71
+ __decorate([
72
+ (0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true }),
73
+ __metadata("design:type", Object)
74
+ ], UserDependents.prototype, "passport_type", void 0);
75
+ __decorate([
76
+ (0, typeorm_1.Column)({ type: 'date', nullable: true }),
77
+ __metadata("design:type", Object)
78
+ ], UserDependents.prototype, "passport_issue_date", void 0);
79
+ __decorate([
80
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
81
+ __metadata("design:type", Object)
82
+ ], UserDependents.prototype, "passport_place_of_issue", void 0);
83
+ __decorate([
84
+ (0, typeorm_1.Column)({ type: 'date', nullable: true }),
85
+ __metadata("design:type", Object)
86
+ ], UserDependents.prototype, "passport_expiry_date", void 0);
87
+ __decorate([
88
+ (0, typeorm_1.Column)({ type: 'boolean', default: true }),
89
+ __metadata("design:type", Boolean)
90
+ ], UserDependents.prototype, "is_active", void 0);
91
+ exports.UserDependents = UserDependents = __decorate([
92
+ (0, typeorm_1.Entity)({ name: 'user_dependents' }),
93
+ __metadata("design:paramtypes", [Number, String, String, String, Date, Number, String, Boolean, String, String, Date, String, Date])
94
+ ], UserDependents);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platform-modules/foreign-ministry",
3
- "version": "1.3.200",
3
+ "version": "1.3.201",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -1,80 +1,80 @@
1
- import { Column, Entity } from "typeorm";
2
- import { BaseModel } from './BaseModel';
3
-
4
- export enum DiplomaticAcademyStatus {
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: 'diplomatic_academy_requests' })
14
- export class DiplomaticAcademyRequests 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
- // Diplomatic Academy specific columns
33
- @Column({ type: 'varchar', length: 500, nullable: false })
34
- course_name: string;
35
-
36
- @Column({ type: 'jsonb', nullable: true })
37
- cost_details: {
38
- material_price?: number;
39
- transportation?: number;
40
- accommodation?: number;
41
- allowances?: number;
42
- food?: number;
43
- present?: number;
44
- } | null;
45
-
46
- @Column({ type: 'int', nullable: false })
47
- estimated_participants: number;
48
-
49
- @Column({ type: 'date', nullable: false })
50
- timeline_date_from: Date;
51
-
52
- @Column({ type: 'date', nullable: false })
53
- timeline_date_to: Date;
54
-
55
- @Column({ type: 'time', nullable: true })
56
- timeline_time_from: string | null;
57
-
58
- @Column({ type: 'time', nullable: true })
59
- timeline_time_to: string | null;
60
-
61
- @Column({ type: 'jsonb', nullable: false })
62
- participants_details: Array<{
63
- full_name: string;
64
- passport: string;
65
- age: number;
66
- qualifications: string;
67
- experience: string;
68
- institution: string;
69
- }>;
70
-
71
- @Column({ type: 'enum', enum: DiplomaticAcademyStatus, default: DiplomaticAcademyStatus.PENDING, nullable: false })
72
- status: DiplomaticAcademyStatus;
73
-
74
- @Column({ type: 'int', nullable: true })
75
- course_id: number | null;
76
-
77
- @Column({ type: 'varchar', nullable: true })
78
- workflow_execution_id: string | null;
79
-
80
- }
1
+ import { Column, Entity } from "typeorm";
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum DiplomaticAcademyStatus {
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: 'diplomatic_academy_requests' })
14
+ export class DiplomaticAcademyRequests 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
+ // Diplomatic Academy specific columns
33
+ @Column({ type: 'varchar', length: 500, nullable: false })
34
+ course_name: string;
35
+
36
+ @Column({ type: 'jsonb', nullable: true })
37
+ cost_details: {
38
+ material_price?: number;
39
+ transportation?: number;
40
+ accommodation?: number;
41
+ allowances?: number;
42
+ food?: number;
43
+ present?: number;
44
+ } | null;
45
+
46
+ @Column({ type: 'int', nullable: false })
47
+ estimated_participants: number;
48
+
49
+ @Column({ type: 'date', nullable: false })
50
+ timeline_date_from: Date;
51
+
52
+ @Column({ type: 'date', nullable: false })
53
+ timeline_date_to: Date;
54
+
55
+ @Column({ type: 'time', nullable: true })
56
+ timeline_time_from: string | null;
57
+
58
+ @Column({ type: 'time', nullable: true })
59
+ timeline_time_to: string | null;
60
+
61
+ @Column({ type: 'jsonb', nullable: false })
62
+ participants_details: Array<{
63
+ full_name: string;
64
+ passport: string;
65
+ age: number;
66
+ qualifications: string;
67
+ experience: string;
68
+ institution: string;
69
+ }>;
70
+
71
+ @Column({ type: 'enum', enum: DiplomaticAcademyStatus, default: DiplomaticAcademyStatus.PENDING, nullable: false })
72
+ status: DiplomaticAcademyStatus;
73
+
74
+ @Column({ type: 'int', nullable: true })
75
+ course_id: number | null;
76
+
77
+ @Column({ type: 'varchar', nullable: true })
78
+ workflow_execution_id: string | null;
79
+
80
+ }
@@ -85,7 +85,10 @@ export class GatePassVisitors extends BaseModel {
85
85
  @Column({ type: 'varchar', length: 255, nullable: true })
86
86
  visiting_person_in_department: string | null; // زائر في القسم (Visiting Person in Department)
87
87
 
88
- // QR Code for Gate Pass
88
+ @Column({ type: 'int', nullable: true, unique: true })
89
+ serial_number: number | null;
90
+
91
+ // QR Code for Gate Pass
89
92
  @Column({ type: 'text', nullable: true })
90
93
  qr_code_url: string | null; // QR code URL for this visitor (data URL can be 6000+ characters)
91
94
 
@@ -131,8 +134,9 @@ export class GatePassVisitors extends BaseModel {
131
134
  this.visitor_email_address = visitor_email_address;
132
135
  this.visitor_mobile_number = visitor_mobile_number;
133
136
  this.visitor_photo_url = visitor_photo_url;
134
- this.visitor_photo_file_name = visitor_photo_file_name;
135
- this.gate_pass_generated = false;
137
+ this.visitor_photo_file_name = visitor_photo_file_name;
138
+ this.serial_number = null;
139
+ this.gate_pass_generated = false;
136
140
  this.email_sent = false;
137
141
  }
138
142
  }
@@ -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
+ }