@platform-modules/foreign-ministry 1.3.144 → 1.3.145

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 (51) hide show
  1. package/.env +15 -6
  2. package/dist/data-source.js +12 -0
  3. package/dist/index.d.ts +10 -0
  4. package/dist/index.js +23 -1
  5. package/dist/models/AppointmentApprovalModel.d.ts +22 -0
  6. package/dist/models/AppointmentApprovalModel.js +84 -0
  7. package/dist/models/AppointmentAttachmentModel.d.ts +11 -0
  8. package/dist/models/AppointmentAttachmentModel.js +52 -0
  9. package/dist/models/AppointmentAttendeeModel.d.ts +14 -0
  10. package/dist/models/AppointmentAttendeeModel.js +47 -0
  11. package/dist/models/AppointmentChatModel.d.ts +19 -0
  12. package/dist/models/AppointmentChatModel.js +77 -0
  13. package/dist/models/AppointmentRequestModel.d.ts +47 -0
  14. package/dist/models/AppointmentRequestModel.js +126 -0
  15. package/dist/models/AppointmentWorkflowModel.d.ts +17 -0
  16. package/dist/models/AppointmentWorkflowModel.js +62 -0
  17. package/dist/models/HelpContentMappedCategoriesModel.d.ts +6 -0
  18. package/dist/models/HelpContentMappedCategoriesModel.js +34 -0
  19. package/dist/models/HelpContentMappedTagsModel.d.ts +6 -0
  20. package/dist/models/HelpContentMappedTagsModel.js +34 -0
  21. package/dist/models/HelpContentTagsModel.d.ts +5 -0
  22. package/dist/models/HelpContentTagsModel.js +29 -0
  23. package/dist/models/LMSExternalCourseParticipationRequestModel.d.ts +1 -0
  24. package/dist/models/LMSExternalCourseParticipationRequestModel.js +4 -0
  25. package/dist/models/questionTagsModel.d.ts +6 -0
  26. package/dist/models/questionTagsModel.js +34 -0
  27. package/package.json +1 -1
  28. package/src/data-source.ts +12 -0
  29. package/src/index.ts +12 -0
  30. package/src/models/AppointmentApprovalModel.ts +57 -0
  31. package/src/models/AppointmentAttachmentModel.ts +30 -0
  32. package/src/models/AppointmentAttendeeModel.ts +28 -0
  33. package/src/models/AppointmentChatModel.ts +64 -0
  34. package/src/models/AppointmentRequestModel.ts +93 -0
  35. package/src/models/AppointmentWorkflowModel.ts +39 -0
  36. package/src/models/DocumentTranslationRequestModel.ts +54 -54
  37. package/src/models/LMSExternalCourseParticipationRequestModel.ts +3 -0
  38. package/src/models/LeaveConfigModel.ts +71 -71
  39. package/src/models/MissionTravelApprovalModel.ts +101 -101
  40. package/src/models/MissionTravelAttachmentModel.ts +56 -56
  41. package/src/models/MissionTravelChatModel.ts +52 -52
  42. package/src/models/MissionTravelPersonModel.ts +105 -105
  43. package/src/models/MissionTravelWorkflowModel.ts +54 -54
  44. package/src/models/RegisterCandidateRequestModel.ts +177 -177
  45. package/src/models/SectionModel.ts +35 -35
  46. package/src/models/ServicesNotificationConfigsModel.ts +55 -55
  47. package/dist/models/MissionTravelClassConfigModel.d.ts +0 -10
  48. package/dist/models/MissionTravelClassConfigModel.js +0 -50
  49. package/dist/models/MissionTravelPerdiemModel.d.ts +0 -10
  50. package/dist/models/MissionTravelPerdiemModel.js +0 -54
  51. /package/src/models/{LeaveConfigGradesModel.Ts → LeaveConfigGradesModel.ts} +0 -0
@@ -0,0 +1,62 @@
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.AppointmentWorkFlow = exports.AppointmentWorkFlowStatus = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ var AppointmentWorkFlowStatus;
16
+ (function (AppointmentWorkFlowStatus) {
17
+ AppointmentWorkFlowStatus["COMPLETED"] = "Completed";
18
+ AppointmentWorkFlowStatus["NOT_YET_STARTED"] = "Not Yet Started";
19
+ AppointmentWorkFlowStatus["PENDING"] = "Pending";
20
+ })(AppointmentWorkFlowStatus || (exports.AppointmentWorkFlowStatus = AppointmentWorkFlowStatus = {}));
21
+ let AppointmentWorkFlow = class AppointmentWorkFlow extends BaseModel_1.BaseModel {
22
+ };
23
+ exports.AppointmentWorkFlow = AppointmentWorkFlow;
24
+ __decorate([
25
+ (0, typeorm_1.Column)({ type: 'integer', nullable: false }),
26
+ __metadata("design:type", Number)
27
+ ], AppointmentWorkFlow.prototype, "appointment_id", void 0);
28
+ __decorate([
29
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
30
+ __metadata("design:type", Object)
31
+ ], AppointmentWorkFlow.prototype, "service_id", void 0);
32
+ __decorate([
33
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
34
+ __metadata("design:type", Object)
35
+ ], AppointmentWorkFlow.prototype, "sub_service_id", void 0);
36
+ __decorate([
37
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: false }),
38
+ __metadata("design:type", String)
39
+ ], AppointmentWorkFlow.prototype, "content", void 0);
40
+ __decorate([
41
+ (0, typeorm_1.Column)({ type: 'enum', enum: AppointmentWorkFlowStatus, default: AppointmentWorkFlowStatus.NOT_YET_STARTED, nullable: false }),
42
+ __metadata("design:type", String)
43
+ ], AppointmentWorkFlow.prototype, "status", void 0);
44
+ __decorate([
45
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
46
+ __metadata("design:type", Object)
47
+ ], AppointmentWorkFlow.prototype, "user_id", void 0);
48
+ __decorate([
49
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
50
+ __metadata("design:type", Object)
51
+ ], AppointmentWorkFlow.prototype, "role_id", void 0);
52
+ __decorate([
53
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
54
+ __metadata("design:type", Object)
55
+ ], AppointmentWorkFlow.prototype, "department_id", void 0);
56
+ __decorate([
57
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
58
+ __metadata("design:type", Object)
59
+ ], AppointmentWorkFlow.prototype, "section_id", void 0);
60
+ exports.AppointmentWorkFlow = AppointmentWorkFlow = __decorate([
61
+ (0, typeorm_1.Entity)({ name: 'appointment_workflows' })
62
+ ], AppointmentWorkFlow);
@@ -0,0 +1,6 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare class HelpContentMappedCategories extends BaseModel {
3
+ help_content_category_Id: number;
4
+ help_content_Id: number;
5
+ constructor(help_content_category_Id: number, help_content_Id: number);
6
+ }
@@ -0,0 +1,34 @@
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.HelpContentMappedCategories = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ let HelpContentMappedCategories = class HelpContentMappedCategories extends BaseModel_1.BaseModel {
16
+ constructor(help_content_category_Id, help_content_Id) {
17
+ super();
18
+ this.help_content_category_Id = help_content_category_Id,
19
+ this.help_content_Id = help_content_Id;
20
+ }
21
+ };
22
+ exports.HelpContentMappedCategories = HelpContentMappedCategories;
23
+ __decorate([
24
+ (0, typeorm_1.Column)({ nullable: true }),
25
+ __metadata("design:type", Number)
26
+ ], HelpContentMappedCategories.prototype, "help_content_category_Id", void 0);
27
+ __decorate([
28
+ (0, typeorm_1.Column)({ nullable: true }),
29
+ __metadata("design:type", Number)
30
+ ], HelpContentMappedCategories.prototype, "help_content_Id", void 0);
31
+ exports.HelpContentMappedCategories = HelpContentMappedCategories = __decorate([
32
+ (0, typeorm_1.Entity)({ name: 'help_content_mapped_categories' }),
33
+ __metadata("design:paramtypes", [Number, Number])
34
+ ], HelpContentMappedCategories);
@@ -0,0 +1,6 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare class HelpContentMappedTags extends BaseModel {
3
+ help_content_tag_Id: number;
4
+ help_content_Id: number;
5
+ constructor(help_content_tag_Id: number, help_content_Id: number);
6
+ }
@@ -0,0 +1,34 @@
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.HelpContentMappedTags = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ let HelpContentMappedTags = class HelpContentMappedTags extends BaseModel_1.BaseModel {
16
+ constructor(help_content_tag_Id, help_content_Id) {
17
+ super();
18
+ this.help_content_tag_Id = help_content_tag_Id,
19
+ this.help_content_Id = help_content_Id;
20
+ }
21
+ };
22
+ exports.HelpContentMappedTags = HelpContentMappedTags;
23
+ __decorate([
24
+ (0, typeorm_1.Column)({ nullable: true }),
25
+ __metadata("design:type", Number)
26
+ ], HelpContentMappedTags.prototype, "help_content_tag_Id", void 0);
27
+ __decorate([
28
+ (0, typeorm_1.Column)({ nullable: true }),
29
+ __metadata("design:type", Number)
30
+ ], HelpContentMappedTags.prototype, "help_content_Id", void 0);
31
+ exports.HelpContentMappedTags = HelpContentMappedTags = __decorate([
32
+ (0, typeorm_1.Entity)({ name: 'help_content_mapped_tags' }),
33
+ __metadata("design:paramtypes", [Number, Number])
34
+ ], HelpContentMappedTags);
@@ -0,0 +1,5 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare class HelpContentTags extends BaseModel {
3
+ name: string;
4
+ constructor(name: string);
5
+ }
@@ -0,0 +1,29 @@
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.HelpContentTags = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ let HelpContentTags = class HelpContentTags extends BaseModel_1.BaseModel {
16
+ constructor(name) {
17
+ super();
18
+ this.name = name;
19
+ }
20
+ };
21
+ exports.HelpContentTags = HelpContentTags;
22
+ __decorate([
23
+ (0, typeorm_1.Column)({ nullable: true }),
24
+ __metadata("design:type", String)
25
+ ], HelpContentTags.prototype, "name", void 0);
26
+ exports.HelpContentTags = HelpContentTags = __decorate([
27
+ (0, typeorm_1.Entity)({ name: 'help_content_tags' }),
28
+ __metadata("design:paramtypes", [String])
29
+ ], HelpContentTags);
@@ -8,6 +8,7 @@ export declare enum LMSExternalCourseParticipationStatus {
8
8
  }
9
9
  export declare class LMSExternalCourseParticipationRequests extends BaseModel {
10
10
  req_user_department_id: number | null;
11
+ department_id: number | null;
11
12
  req_user_section_id: number | null;
12
13
  service_id: number | null;
13
14
  sub_service_id: number | null;
@@ -27,6 +27,10 @@ __decorate([
27
27
  (0, typeorm_1.Column)({ type: 'int', nullable: true }),
28
28
  __metadata("design:type", Object)
29
29
  ], LMSExternalCourseParticipationRequests.prototype, "req_user_department_id", void 0);
30
+ __decorate([
31
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
32
+ __metadata("design:type", Object)
33
+ ], LMSExternalCourseParticipationRequests.prototype, "department_id", void 0);
30
34
  __decorate([
31
35
  (0, typeorm_1.Column)({ type: 'int', nullable: true }),
32
36
  __metadata("design:type", Object)
@@ -0,0 +1,6 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare class QuestionTags extends BaseModel {
3
+ name: string;
4
+ question_Id: number;
5
+ constructor(name: string, question_Id: number);
6
+ }
@@ -0,0 +1,34 @@
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.QuestionTags = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ let QuestionTags = class QuestionTags extends BaseModel_1.BaseModel {
16
+ constructor(name, question_Id) {
17
+ super();
18
+ this.name = name,
19
+ this.question_Id = question_Id;
20
+ }
21
+ };
22
+ exports.QuestionTags = QuestionTags;
23
+ __decorate([
24
+ (0, typeorm_1.Column)({ nullable: true }),
25
+ __metadata("design:type", String)
26
+ ], QuestionTags.prototype, "name", void 0);
27
+ __decorate([
28
+ (0, typeorm_1.Column)({ nullable: true }),
29
+ __metadata("design:type", Number)
30
+ ], QuestionTags.prototype, "question_Id", void 0);
31
+ exports.QuestionTags = QuestionTags = __decorate([
32
+ (0, typeorm_1.Entity)({ name: 'question_tags' }),
33
+ __metadata("design:paramtypes", [String, Number])
34
+ ], QuestionTags);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platform-modules/foreign-ministry",
3
- "version": "1.3.144",
3
+ "version": "1.3.145",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -176,6 +176,12 @@ import { MeetingRequestAttachment } from './models/MeetingAttachmentModel';
176
176
  import { MeetingRequestChat } from './models/MeetingChatModel';
177
177
  import { MeetingWorkFlow } from './models/MeetingWorkflowModel';
178
178
  import { MeetingAttendees } from './models/MeetingAttendeeModel';
179
+ import { AppointmentRequests } from './models/AppointmentRequestModel';
180
+ import { AppointmentApprovalDetails } from './models/AppointmentApprovalModel';
181
+ import { AppointmentRequestAttachment } from './models/AppointmentAttachmentModel';
182
+ import { AppointmentRequestChat } from './models/AppointmentChatModel';
183
+ import { AppointmentWorkFlow } from './models/AppointmentWorkflowModel';
184
+ import { AppointmentAttendees } from './models/AppointmentAttendeeModel';
179
185
  import { HallRequests } from './models/HallRequestModel';
180
186
  import { HallApprovalDetails } from './models/HallApprovalModel';
181
187
  import { HallRequestAttachment } from './models/HallAttachmentModel';
@@ -362,6 +368,12 @@ export const AppDataSource = new DataSource({
362
368
  MeetingRequestChat,
363
369
  MeetingWorkFlow,
364
370
  MeetingAttendees,
371
+ AppointmentRequests,
372
+ AppointmentApprovalDetails,
373
+ AppointmentRequestAttachment,
374
+ AppointmentRequestChat,
375
+ AppointmentWorkFlow,
376
+ AppointmentAttendees,
365
377
  HallRequests,
366
378
  HallApprovalDetails,
367
379
  HallRequestAttachment,
package/src/index.ts CHANGED
@@ -267,6 +267,18 @@ export * from './models/MeetingAttachmentModel';
267
267
  export * from './models/MeetingChatModel';
268
268
  export * from './models/MeetingWorkflowModel';
269
269
  export * from './models/MeetingAttendeeModel';
270
+ // Appointment Models (export entities only to avoid name collisions)
271
+ export { AppointmentRequests } from './models/AppointmentRequestModel';
272
+ export { AppointmentApprovalDetails } from './models/AppointmentApprovalModel';
273
+ export { AppointmentRequestAttachment } from './models/AppointmentAttachmentModel';
274
+ export { AppointmentRequestChat } from './models/AppointmentChatModel';
275
+ export { AppointmentWorkFlow } from './models/AppointmentWorkflowModel';
276
+ export { AppointmentAttendees } from './models/AppointmentAttendeeModel';
277
+ // Appointment enums / types
278
+ export { AppointmentApprovalStatus } from './models/AppointmentApprovalModel';
279
+ export { AppointmentAttendeeStatus } from './models/AppointmentAttendeeModel';
280
+ export { AppointmentMessageType } from './models/AppointmentChatModel';
281
+ export { AppointmentWorkFlowStatus } from './models/AppointmentWorkflowModel';
270
282
  // Hall Models
271
283
  export * from './models/HallRequestModel';
272
284
  export * from './models/HallApprovalModel';
@@ -0,0 +1,57 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum AppointmentApprovalStatus {
5
+ PENDING = 'Pending',
6
+ IN_PROGRESS = 'In Progress',
7
+ APPROVED = 'Approved',
8
+ REJECTED = 'Rejected',
9
+ }
10
+
11
+ @Entity({ name: 'appointment_approvals' })
12
+ export class AppointmentApprovalDetails extends BaseModel {
13
+ @Column({ type: 'integer', nullable: false })
14
+ appointment_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: 'integer', nullable: false })
23
+ level: number;
24
+
25
+ @Column({ type: 'integer', nullable: true })
26
+ approver_role_id: number;
27
+
28
+ @Column({ type: 'integer', nullable: true })
29
+ department_id: number | null;
30
+
31
+ @Column({ type: 'integer', nullable: true })
32
+ section_id: number | null;
33
+
34
+ @Column({ type: 'integer', nullable: true })
35
+ approver_user_id: number | null;
36
+
37
+ @Column({ type: 'integer', nullable: true })
38
+ delegate_user_id: number | null;
39
+
40
+ @Column({ type: 'integer', nullable: true })
41
+ approved_by: number | null;
42
+
43
+ @Column({ type: 'varchar', length: 500, nullable: true, default: '' })
44
+ comment: string;
45
+
46
+ @Column({
47
+ type: 'enum',
48
+ enum: AppointmentApprovalStatus,
49
+ default: AppointmentApprovalStatus.PENDING,
50
+ nullable: false,
51
+ })
52
+ approval_status: AppointmentApprovalStatus;
53
+
54
+ @Column({ type: 'boolean', default: true, nullable: false })
55
+ is_allowed: boolean;
56
+ }
57
+
@@ -0,0 +1,30 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ @Entity({ name: 'appointment_attachments' })
5
+ export class AppointmentRequestAttachment extends BaseModel {
6
+ @Column({ type: 'integer', nullable: false })
7
+ appointment_id: number;
8
+
9
+ @Column({ type: 'integer', nullable: true })
10
+ service_id: number | null;
11
+
12
+ @Column({ type: 'integer', nullable: true })
13
+ sub_service_id: number | null;
14
+
15
+ @Column({ type: 'varchar', length: 500, nullable: false })
16
+ file_url: string;
17
+
18
+ @Column({ type: 'varchar', length: 255, nullable: true })
19
+ file_name: string;
20
+
21
+ @Column({ type: 'varchar', length: 100, nullable: true })
22
+ file_type: string;
23
+
24
+ @Column({ type: 'bigint', nullable: true })
25
+ file_size: number | null;
26
+
27
+ @Column({ type: 'integer', nullable: true })
28
+ chat_id: number | null;
29
+ }
30
+
@@ -0,0 +1,28 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum AppointmentAttendeeStatus {
5
+ INVITED = 'Invited',
6
+ ACCEPTED = 'Accepted',
7
+ REJECTED = 'Rejected',
8
+ NO_SHOW = 'No-Show',
9
+ }
10
+
11
+ @Entity({ name: 'appointment_attendees' })
12
+ export class AppointmentAttendees extends BaseModel {
13
+ @Column({ type: 'integer', nullable: false })
14
+ attendee_id: number;
15
+
16
+ @Column({ type: 'integer', nullable: false })
17
+ appointment_id: number;
18
+
19
+ @Column({ type: 'enum', enum: AppointmentAttendeeStatus, default: AppointmentAttendeeStatus.INVITED, nullable: false })
20
+ status: AppointmentAttendeeStatus;
21
+
22
+ @Column({ type: 'varchar', length: 255, nullable: true })
23
+ attendee_email: string | null;
24
+
25
+ @Column({ type: 'varchar', length: 255, nullable: true })
26
+ attendee_name: string | null;
27
+ }
28
+
@@ -0,0 +1,64 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum AppointmentMessageType {
5
+ TEXT = 'text',
6
+ IMAGE = 'image',
7
+ VIDEO = 'video',
8
+ FILE = 'file',
9
+ LINK = 'link',
10
+ }
11
+
12
+ @Entity({ name: 'appointment_chats' })
13
+ export class AppointmentRequestChat extends BaseModel {
14
+ @Column({ type: 'integer', nullable: false })
15
+ appointment_id: number;
16
+
17
+ @Column({ type: 'integer', nullable: true })
18
+ service_id: number | null;
19
+
20
+ @Column({ type: 'integer', nullable: true })
21
+ sub_service_id: number | null;
22
+
23
+ @Column({ type: 'integer', nullable: false })
24
+ user_id: number;
25
+
26
+ @Column({ type: 'integer', nullable: true })
27
+ role_id: number;
28
+
29
+ @Column({ type: 'text', nullable: false })
30
+ message: string;
31
+
32
+ @Column({
33
+ type: 'enum',
34
+ enum: AppointmentMessageType,
35
+ default: AppointmentMessageType.TEXT,
36
+ nullable: false,
37
+ })
38
+ messageType: AppointmentMessageType;
39
+
40
+ @Column({ type: 'text', nullable: true })
41
+ status: string;
42
+
43
+ constructor(
44
+ appointment_id: number,
45
+ user_id: number,
46
+ role_id: number,
47
+ message: string,
48
+ service_id?: number,
49
+ sub_service_id?: number,
50
+ messageType?: AppointmentMessageType,
51
+ status?: string
52
+ ) {
53
+ super();
54
+ this.appointment_id = appointment_id;
55
+ this.service_id = service_id ?? null;
56
+ this.sub_service_id = sub_service_id ?? null;
57
+ this.user_id = user_id;
58
+ this.role_id = role_id;
59
+ this.message = message;
60
+ this.messageType = messageType ?? AppointmentMessageType.TEXT;
61
+ this.status = status ?? 'Pending';
62
+ }
63
+ }
64
+
@@ -0,0 +1,93 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum AppointmentRequestStatus {
5
+ PENDING = 'Pending',
6
+ ASSIGNED = 'Assigned',
7
+ IN_PROGRESS = 'In Progress',
8
+ APPROVED = 'Approved',
9
+ REJECTED = 'Rejected',
10
+ }
11
+
12
+ export enum AppointmentRequestType {
13
+ INTERNAL = 'Internal',
14
+ EXTERNAL = 'External',
15
+ OTHER_MINISTERS = 'Other Ministers',
16
+ }
17
+
18
+ export enum AppointmentType {
19
+ PHYSICAL = 'Physical',
20
+ ONLINE = 'Online',
21
+ }
22
+
23
+ export enum AppointmentYesNo {
24
+ YES = 'Yes',
25
+ NO = 'No',
26
+ }
27
+
28
+ export enum AppointmentLocation {
29
+ EMBASSY = 'Embassy',
30
+ MINISTRY = 'Ministry',
31
+ EXTERNAL_VENUE = 'External Venue',
32
+ }
33
+
34
+ @Entity({ name: 'appointment_requests' })
35
+ export class AppointmentRequests extends BaseModel {
36
+ @Column({ type: 'int', nullable: true })
37
+ req_user_department_id: number | null;
38
+
39
+ @Column({ type: 'int', nullable: true })
40
+ req_user_section_id: number | null;
41
+
42
+ @Column({ type: 'int', nullable: true })
43
+ service_id: number | null;
44
+
45
+ @Column({ type: 'int', nullable: true })
46
+ sub_service_id: number | null;
47
+
48
+ @Column({ type: 'int', nullable: false })
49
+ user_id: number;
50
+
51
+ @Column({ type: 'int', nullable: true })
52
+ department_id: number | null;
53
+
54
+ @Column({ type: 'int', nullable: true })
55
+ receiving_department_id: number | null;
56
+
57
+ @Column({ type: 'enum', enum: AppointmentRequestType, nullable: true })
58
+ request_type: AppointmentRequestType | null;
59
+
60
+ @Column({ type: 'enum', enum: AppointmentType, nullable: true })
61
+ appointment_type: AppointmentType | null;
62
+
63
+ @Column({ type: 'date', nullable: true })
64
+ appointment_date: string | null;
65
+
66
+ @Column({ type: 'time', nullable: true })
67
+ from_time: string | null;
68
+
69
+ @Column({ type: 'time', nullable: true })
70
+ to_time: string | null;
71
+
72
+ @Column({ type: 'text', nullable: true })
73
+ comments: string | null;
74
+
75
+ @Column({ type: 'varchar', length: 255, nullable: true })
76
+ person_name: string | null;
77
+
78
+ @Column({ type: 'varchar', length: 50, nullable: true })
79
+ contact_number: string | null;
80
+
81
+ @Column({ type: 'text', nullable: true })
82
+ agenda: string | null;
83
+
84
+ @Column({ type: 'enum', enum: AppointmentLocation, nullable: true })
85
+ appointment_location: AppointmentLocation | null;
86
+
87
+ @Column({ type: 'enum', enum: AppointmentRequestStatus, default: AppointmentRequestStatus.PENDING, nullable: false })
88
+ status: AppointmentRequestStatus;
89
+
90
+ @Column({ type: 'varchar', nullable: true })
91
+ workflow_execution_id: string | null;
92
+ }
93
+
@@ -0,0 +1,39 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum AppointmentWorkFlowStatus {
5
+ COMPLETED = 'Completed',
6
+ NOT_YET_STARTED = 'Not Yet Started',
7
+ PENDING = 'Pending',
8
+ }
9
+
10
+ @Entity({ name: 'appointment_workflows' })
11
+ export class AppointmentWorkFlow extends BaseModel {
12
+ @Column({ type: 'integer', nullable: false })
13
+ appointment_id: number;
14
+
15
+ @Column({ type: 'integer', nullable: true })
16
+ service_id: number | null;
17
+
18
+ @Column({ type: 'integer', nullable: true })
19
+ sub_service_id: number | null;
20
+
21
+ @Column({ type: 'varchar', length: 500, nullable: false })
22
+ content: string;
23
+
24
+ @Column({ type: 'enum', enum: AppointmentWorkFlowStatus, default: AppointmentWorkFlowStatus.NOT_YET_STARTED, nullable: false })
25
+ status: AppointmentWorkFlowStatus;
26
+
27
+ @Column({ type: 'integer', nullable: true })
28
+ user_id: number | null;
29
+
30
+ @Column({ type: 'integer', nullable: true })
31
+ role_id: number | null;
32
+
33
+ @Column({ type: 'integer', nullable: true })
34
+ department_id: number | null;
35
+
36
+ @Column({ type: 'integer', nullable: true })
37
+ section_id: number | null;
38
+ }
39
+