@platform-modules/foreign-ministry 1.3.134 → 1.3.135

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.
@@ -164,6 +164,12 @@ const SecurityChatsModel_1 = require("./models/SecurityChatsModel");
164
164
  const MissionTravelPassportExpiryNotificationConfigModel_1 = require("./models/MissionTravelPassportExpiryNotificationConfigModel");
165
165
  const ServicesNotificationConfigsModel_1 = require("./models/ServicesNotificationConfigsModel");
166
166
  const MoodleUsersModel_1 = require("./models/MoodleUsersModel");
167
+ const MeetingRequestModel_1 = require("./models/MeetingRequestModel");
168
+ const MeetingApprovalModel_1 = require("./models/MeetingApprovalModel");
169
+ const MeetingAttachmentModel_1 = require("./models/MeetingAttachmentModel");
170
+ const MeetingChatModel_1 = require("./models/MeetingChatModel");
171
+ const MeetingWorkflowModel_1 = require("./models/MeetingWorkflowModel");
172
+ const MeetingAttendeeModel_1 = require("./models/MeetingAttendeeModel");
167
173
  exports.AppDataSource = new typeorm_1.DataSource({
168
174
  type: 'postgres',
169
175
  host: process.env.DB_HOST || 'localhost',
@@ -332,6 +338,12 @@ exports.AppDataSource = new typeorm_1.DataSource({
332
338
  SecurityChatsModel_1.SecurityChat,
333
339
  MissionTravelPassportExpiryNotificationConfigModel_1.MissionTravelPassportExpiryNotificationConfig,
334
340
  ServicesNotificationConfigsModel_1.ServicesNotificationConfigs,
335
- MoodleUsersModel_1.MoodleUsers
341
+ MoodleUsersModel_1.MoodleUsers,
342
+ MeetingRequestModel_1.MeetingRequests,
343
+ MeetingApprovalModel_1.MeetingApprovalDetails,
344
+ MeetingAttachmentModel_1.MeetingRequestAttachment,
345
+ MeetingChatModel_1.MeetingRequestChat,
346
+ MeetingWorkflowModel_1.MeetingWorkFlow,
347
+ MeetingAttendeeModel_1.MeetingAttendees,
336
348
  ],
337
349
  });
package/dist/index.d.ts CHANGED
@@ -254,6 +254,12 @@ export * from './models/LanguageCourseChatModel';
254
254
  export * from './models/LanguageCourseWorkflowModel';
255
255
  export * from './models/LanguageCourseCostModel';
256
256
  export * from './models/LanguageCourseLecturerModel';
257
+ export * from './models/MeetingRequestModel';
258
+ export * from './models/MeetingApprovalModel';
259
+ export * from './models/MeetingAttachmentModel';
260
+ export * from './models/MeetingChatModel';
261
+ export * from './models/MeetingWorkflowModel';
262
+ export * from './models/MeetingAttendeeModel';
257
263
  export * from './models/EmployeeMilestonesModel';
258
264
  export * from './models/EmployeeMilestoneDetailsModel';
259
265
  export * from './models/MissionTravelPassportExpiryNotificationConfigModel';
package/dist/index.js CHANGED
@@ -313,6 +313,13 @@ __exportStar(require("./models/LanguageCourseChatModel"), exports);
313
313
  __exportStar(require("./models/LanguageCourseWorkflowModel"), exports);
314
314
  __exportStar(require("./models/LanguageCourseCostModel"), exports);
315
315
  __exportStar(require("./models/LanguageCourseLecturerModel"), exports);
316
+ // Meeting Models
317
+ __exportStar(require("./models/MeetingRequestModel"), exports);
318
+ __exportStar(require("./models/MeetingApprovalModel"), exports);
319
+ __exportStar(require("./models/MeetingAttachmentModel"), exports);
320
+ __exportStar(require("./models/MeetingChatModel"), exports);
321
+ __exportStar(require("./models/MeetingWorkflowModel"), exports);
322
+ __exportStar(require("./models/MeetingAttendeeModel"), exports);
316
323
  // Employee Milestones Models
317
324
  __exportStar(require("./models/EmployeeMilestonesModel"), exports);
318
325
  __exportStar(require("./models/EmployeeMilestoneDetailsModel"), exports);
@@ -0,0 +1,22 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare enum MeetingApprovalStatus {
3
+ PENDING = "Pending",
4
+ IN_PROGRESS = "In Progress",
5
+ APPROVED = "Approved",
6
+ REJECTED = "Rejected"
7
+ }
8
+ export declare class MeetingApprovalDetails extends BaseModel {
9
+ request_id: number;
10
+ service_id: number | null;
11
+ sub_service_id: number | null;
12
+ level: number;
13
+ approver_role_id: number;
14
+ department_id: number | null;
15
+ section_id: number | null;
16
+ approver_user_id: number | null;
17
+ delegate_user_id: number | null;
18
+ approved_by: number | null;
19
+ comment: string;
20
+ approval_status: MeetingApprovalStatus;
21
+ is_allowed: boolean;
22
+ }
@@ -0,0 +1,84 @@
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.MeetingApprovalDetails = exports.MeetingApprovalStatus = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ var MeetingApprovalStatus;
16
+ (function (MeetingApprovalStatus) {
17
+ MeetingApprovalStatus["PENDING"] = "Pending";
18
+ MeetingApprovalStatus["IN_PROGRESS"] = "In Progress";
19
+ MeetingApprovalStatus["APPROVED"] = "Approved";
20
+ MeetingApprovalStatus["REJECTED"] = "Rejected";
21
+ })(MeetingApprovalStatus || (exports.MeetingApprovalStatus = MeetingApprovalStatus = {}));
22
+ let MeetingApprovalDetails = class MeetingApprovalDetails extends BaseModel_1.BaseModel {
23
+ };
24
+ exports.MeetingApprovalDetails = MeetingApprovalDetails;
25
+ __decorate([
26
+ (0, typeorm_1.Column)({ type: 'integer', nullable: false }),
27
+ __metadata("design:type", Number)
28
+ ], MeetingApprovalDetails.prototype, "request_id", void 0);
29
+ __decorate([
30
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
31
+ __metadata("design:type", Object)
32
+ ], MeetingApprovalDetails.prototype, "service_id", void 0);
33
+ __decorate([
34
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
35
+ __metadata("design:type", Object)
36
+ ], MeetingApprovalDetails.prototype, "sub_service_id", void 0);
37
+ __decorate([
38
+ (0, typeorm_1.Column)({ type: 'integer', nullable: false }),
39
+ __metadata("design:type", Number)
40
+ ], MeetingApprovalDetails.prototype, "level", void 0);
41
+ __decorate([
42
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
43
+ __metadata("design:type", Number)
44
+ ], MeetingApprovalDetails.prototype, "approver_role_id", void 0);
45
+ __decorate([
46
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
47
+ __metadata("design:type", Object)
48
+ ], MeetingApprovalDetails.prototype, "department_id", void 0);
49
+ __decorate([
50
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
51
+ __metadata("design:type", Object)
52
+ ], MeetingApprovalDetails.prototype, "section_id", void 0);
53
+ __decorate([
54
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
55
+ __metadata("design:type", Object)
56
+ ], MeetingApprovalDetails.prototype, "approver_user_id", void 0);
57
+ __decorate([
58
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
59
+ __metadata("design:type", Object)
60
+ ], MeetingApprovalDetails.prototype, "delegate_user_id", void 0);
61
+ __decorate([
62
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
63
+ __metadata("design:type", Object)
64
+ ], MeetingApprovalDetails.prototype, "approved_by", void 0);
65
+ __decorate([
66
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true, default: '' }),
67
+ __metadata("design:type", String)
68
+ ], MeetingApprovalDetails.prototype, "comment", void 0);
69
+ __decorate([
70
+ (0, typeorm_1.Column)({
71
+ type: 'enum',
72
+ enum: MeetingApprovalStatus,
73
+ default: MeetingApprovalStatus.PENDING,
74
+ nullable: false,
75
+ }),
76
+ __metadata("design:type", String)
77
+ ], MeetingApprovalDetails.prototype, "approval_status", void 0);
78
+ __decorate([
79
+ (0, typeorm_1.Column)({ type: 'boolean', default: true, nullable: false }),
80
+ __metadata("design:type", Boolean)
81
+ ], MeetingApprovalDetails.prototype, "is_allowed", void 0);
82
+ exports.MeetingApprovalDetails = MeetingApprovalDetails = __decorate([
83
+ (0, typeorm_1.Entity)({ name: 'meeting_approvals' })
84
+ ], MeetingApprovalDetails);
@@ -0,0 +1,11 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare class MeetingRequestAttachment extends BaseModel {
3
+ request_id: number;
4
+ service_id: number | null;
5
+ sub_service_id: number | null;
6
+ file_url: string;
7
+ file_name: string;
8
+ file_type: string;
9
+ file_size: number | null;
10
+ chat_id: number | null;
11
+ }
@@ -0,0 +1,52 @@
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.MeetingRequestAttachment = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ let MeetingRequestAttachment = class MeetingRequestAttachment extends BaseModel_1.BaseModel {
16
+ };
17
+ exports.MeetingRequestAttachment = MeetingRequestAttachment;
18
+ __decorate([
19
+ (0, typeorm_1.Column)({ type: 'integer', nullable: false }),
20
+ __metadata("design:type", Number)
21
+ ], MeetingRequestAttachment.prototype, "request_id", void 0);
22
+ __decorate([
23
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
24
+ __metadata("design:type", Object)
25
+ ], MeetingRequestAttachment.prototype, "service_id", void 0);
26
+ __decorate([
27
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
28
+ __metadata("design:type", Object)
29
+ ], MeetingRequestAttachment.prototype, "sub_service_id", void 0);
30
+ __decorate([
31
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: false }),
32
+ __metadata("design:type", String)
33
+ ], MeetingRequestAttachment.prototype, "file_url", void 0);
34
+ __decorate([
35
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
36
+ __metadata("design:type", String)
37
+ ], MeetingRequestAttachment.prototype, "file_name", void 0);
38
+ __decorate([
39
+ (0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true }),
40
+ __metadata("design:type", String)
41
+ ], MeetingRequestAttachment.prototype, "file_type", void 0);
42
+ __decorate([
43
+ (0, typeorm_1.Column)({ type: 'bigint', nullable: true }),
44
+ __metadata("design:type", Object)
45
+ ], MeetingRequestAttachment.prototype, "file_size", void 0);
46
+ __decorate([
47
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
48
+ __metadata("design:type", Object)
49
+ ], MeetingRequestAttachment.prototype, "chat_id", void 0);
50
+ exports.MeetingRequestAttachment = MeetingRequestAttachment = __decorate([
51
+ (0, typeorm_1.Entity)({ name: 'meeting_attachments' })
52
+ ], MeetingRequestAttachment);
@@ -0,0 +1,12 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare enum MeetingAttendeeStatus {
3
+ INVITED = "Invited",
4
+ ACCEPTED = "Accepted",
5
+ REJECTED = "Rejected",
6
+ NO_SHOW = "No-Show"
7
+ }
8
+ export declare class MeetingAttendees extends BaseModel {
9
+ attendee_id: number;
10
+ meeting_id: number;
11
+ status: MeetingAttendeeStatus;
12
+ }
@@ -0,0 +1,39 @@
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.MeetingAttendees = exports.MeetingAttendeeStatus = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ var MeetingAttendeeStatus;
16
+ (function (MeetingAttendeeStatus) {
17
+ MeetingAttendeeStatus["INVITED"] = "Invited";
18
+ MeetingAttendeeStatus["ACCEPTED"] = "Accepted";
19
+ MeetingAttendeeStatus["REJECTED"] = "Rejected";
20
+ MeetingAttendeeStatus["NO_SHOW"] = "No-Show";
21
+ })(MeetingAttendeeStatus || (exports.MeetingAttendeeStatus = MeetingAttendeeStatus = {}));
22
+ let MeetingAttendees = class MeetingAttendees extends BaseModel_1.BaseModel {
23
+ };
24
+ exports.MeetingAttendees = MeetingAttendees;
25
+ __decorate([
26
+ (0, typeorm_1.Column)({ type: 'integer', nullable: false }),
27
+ __metadata("design:type", Number)
28
+ ], MeetingAttendees.prototype, "attendee_id", void 0);
29
+ __decorate([
30
+ (0, typeorm_1.Column)({ type: 'integer', nullable: false }),
31
+ __metadata("design:type", Number)
32
+ ], MeetingAttendees.prototype, "meeting_id", void 0);
33
+ __decorate([
34
+ (0, typeorm_1.Column)({ type: 'enum', enum: MeetingAttendeeStatus, default: MeetingAttendeeStatus.INVITED, nullable: false }),
35
+ __metadata("design:type", String)
36
+ ], MeetingAttendees.prototype, "status", void 0);
37
+ exports.MeetingAttendees = MeetingAttendees = __decorate([
38
+ (0, typeorm_1.Entity)({ name: 'meeting_attendees' })
39
+ ], MeetingAttendees);
@@ -0,0 +1,19 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare enum MeetingMessageType {
3
+ TEXT = "text",
4
+ IMAGE = "image",
5
+ VIDEO = "video",
6
+ FILE = "file",
7
+ LINK = "link"
8
+ }
9
+ export declare class MeetingRequestChat extends BaseModel {
10
+ request_id: number;
11
+ service_id: number | null;
12
+ sub_service_id: number | null;
13
+ user_id: number;
14
+ role_id: number;
15
+ message: string;
16
+ messageType: MeetingMessageType;
17
+ status: string;
18
+ constructor(request_id: number, user_id: number, role_id: number, message: string, service_id?: number, sub_service_id?: number, messageType?: MeetingMessageType, status?: string);
19
+ }
@@ -0,0 +1,77 @@
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.MeetingRequestChat = exports.MeetingMessageType = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ var MeetingMessageType;
16
+ (function (MeetingMessageType) {
17
+ MeetingMessageType["TEXT"] = "text";
18
+ MeetingMessageType["IMAGE"] = "image";
19
+ MeetingMessageType["VIDEO"] = "video";
20
+ MeetingMessageType["FILE"] = "file";
21
+ MeetingMessageType["LINK"] = "link";
22
+ })(MeetingMessageType || (exports.MeetingMessageType = MeetingMessageType = {}));
23
+ let MeetingRequestChat = class MeetingRequestChat extends BaseModel_1.BaseModel {
24
+ constructor(request_id, user_id, role_id, message, service_id, sub_service_id, messageType, status) {
25
+ super();
26
+ this.request_id = request_id;
27
+ this.service_id = service_id ?? null;
28
+ this.sub_service_id = sub_service_id ?? null;
29
+ this.user_id = user_id;
30
+ this.role_id = role_id;
31
+ this.message = message;
32
+ this.messageType = messageType ?? MeetingMessageType.TEXT;
33
+ this.status = status ?? 'Pending';
34
+ }
35
+ };
36
+ exports.MeetingRequestChat = MeetingRequestChat;
37
+ __decorate([
38
+ (0, typeorm_1.Column)({ type: 'integer', nullable: false }),
39
+ __metadata("design:type", Number)
40
+ ], MeetingRequestChat.prototype, "request_id", void 0);
41
+ __decorate([
42
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
43
+ __metadata("design:type", Object)
44
+ ], MeetingRequestChat.prototype, "service_id", void 0);
45
+ __decorate([
46
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
47
+ __metadata("design:type", Object)
48
+ ], MeetingRequestChat.prototype, "sub_service_id", void 0);
49
+ __decorate([
50
+ (0, typeorm_1.Column)({ type: 'integer', nullable: false }),
51
+ __metadata("design:type", Number)
52
+ ], MeetingRequestChat.prototype, "user_id", void 0);
53
+ __decorate([
54
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
55
+ __metadata("design:type", Number)
56
+ ], MeetingRequestChat.prototype, "role_id", void 0);
57
+ __decorate([
58
+ (0, typeorm_1.Column)({ type: 'text', nullable: false }),
59
+ __metadata("design:type", String)
60
+ ], MeetingRequestChat.prototype, "message", void 0);
61
+ __decorate([
62
+ (0, typeorm_1.Column)({
63
+ type: 'enum',
64
+ enum: MeetingMessageType,
65
+ default: MeetingMessageType.TEXT,
66
+ nullable: false,
67
+ }),
68
+ __metadata("design:type", String)
69
+ ], MeetingRequestChat.prototype, "messageType", void 0);
70
+ __decorate([
71
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
72
+ __metadata("design:type", String)
73
+ ], MeetingRequestChat.prototype, "status", void 0);
74
+ exports.MeetingRequestChat = MeetingRequestChat = __decorate([
75
+ (0, typeorm_1.Entity)({ name: 'meeting_chats' }),
76
+ __metadata("design:paramtypes", [Number, Number, Number, String, Number, Number, String, String])
77
+ ], MeetingRequestChat);
@@ -0,0 +1,68 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare enum MeetingRequestStatus {
3
+ PENDING = "Pending",
4
+ ASSIGNED = "Assigned",
5
+ IN_PROGRESS = "In Progress",
6
+ APPROVED = "Approved",
7
+ REJECTED = "Rejected"
8
+ }
9
+ export declare enum RequestResourceSystem {
10
+ ORIGIN_MC = "Origin M&C",
11
+ MINISTRY = "Ministry"
12
+ }
13
+ export declare enum MeetingRequestType {
14
+ INTERNAL = "Internal",
15
+ EXTERNAL = "External",
16
+ OTHER_MINISTERS = "Other Ministers"
17
+ }
18
+ export declare enum MeetingType {
19
+ PHYSICAL = "Physical",
20
+ ONLINE = "Online"
21
+ }
22
+ export declare enum OtherResourcesBooking {
23
+ PRINTERS = "Printers",
24
+ DEVICES = "Devices"
25
+ }
26
+ export declare enum YesNo {
27
+ YES = "Yes",
28
+ NO = "No"
29
+ }
30
+ export declare enum OnlineMeetingDetails {
31
+ PLATFORM = "Platform",
32
+ MEETING_LINK = "Meeting Link",
33
+ UID_PWD = "UID/PWD"
34
+ }
35
+ export declare enum MeetingLocation {
36
+ EMBASSY = "Embassy",
37
+ MINISTRY = "Ministry",
38
+ EXTERNAL_VENUE = "External Venue"
39
+ }
40
+ export declare class MeetingRequests extends BaseModel {
41
+ req_user_department_id: number | null;
42
+ req_user_section_id: number | null;
43
+ service_id: number | null;
44
+ sub_service_id: number | null;
45
+ user_id: number;
46
+ department_id: number | null;
47
+ receiving_department_id: number | null;
48
+ request_resource_system: RequestResourceSystem | null;
49
+ request_type: MeetingRequestType | null;
50
+ meeting_type: MeetingType | null;
51
+ meeting_date: string | null;
52
+ from_time: string | null;
53
+ to_time: string | null;
54
+ hall_id: number | null;
55
+ other_resources_booking: OtherResourcesBooking | null;
56
+ comments: string | null;
57
+ food_service_required: YesNo | null;
58
+ organization_name: string | null;
59
+ person_name: string | null;
60
+ contact_number: string | null;
61
+ protocal_support_required: YesNo | null;
62
+ external_attendees_required_gate_pass: YesNo | null;
63
+ online_meeting_details: OnlineMeetingDetails | null;
64
+ meeting_link: string | null;
65
+ meeting_location: MeetingLocation | null;
66
+ status: MeetingRequestStatus;
67
+ workflow_execution_id: string | null;
68
+ }
@@ -0,0 +1,174 @@
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.MeetingRequests = exports.MeetingLocation = exports.OnlineMeetingDetails = exports.YesNo = exports.OtherResourcesBooking = exports.MeetingType = exports.MeetingRequestType = exports.RequestResourceSystem = exports.MeetingRequestStatus = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ var MeetingRequestStatus;
16
+ (function (MeetingRequestStatus) {
17
+ MeetingRequestStatus["PENDING"] = "Pending";
18
+ MeetingRequestStatus["ASSIGNED"] = "Assigned";
19
+ MeetingRequestStatus["IN_PROGRESS"] = "In Progress";
20
+ MeetingRequestStatus["APPROVED"] = "Approved";
21
+ MeetingRequestStatus["REJECTED"] = "Rejected";
22
+ })(MeetingRequestStatus || (exports.MeetingRequestStatus = MeetingRequestStatus = {}));
23
+ var RequestResourceSystem;
24
+ (function (RequestResourceSystem) {
25
+ RequestResourceSystem["ORIGIN_MC"] = "Origin M&C";
26
+ RequestResourceSystem["MINISTRY"] = "Ministry";
27
+ })(RequestResourceSystem || (exports.RequestResourceSystem = RequestResourceSystem = {}));
28
+ var MeetingRequestType;
29
+ (function (MeetingRequestType) {
30
+ MeetingRequestType["INTERNAL"] = "Internal";
31
+ MeetingRequestType["EXTERNAL"] = "External";
32
+ MeetingRequestType["OTHER_MINISTERS"] = "Other Ministers";
33
+ })(MeetingRequestType || (exports.MeetingRequestType = MeetingRequestType = {}));
34
+ var MeetingType;
35
+ (function (MeetingType) {
36
+ MeetingType["PHYSICAL"] = "Physical";
37
+ MeetingType["ONLINE"] = "Online";
38
+ })(MeetingType || (exports.MeetingType = MeetingType = {}));
39
+ var OtherResourcesBooking;
40
+ (function (OtherResourcesBooking) {
41
+ OtherResourcesBooking["PRINTERS"] = "Printers";
42
+ OtherResourcesBooking["DEVICES"] = "Devices";
43
+ })(OtherResourcesBooking || (exports.OtherResourcesBooking = OtherResourcesBooking = {}));
44
+ var YesNo;
45
+ (function (YesNo) {
46
+ YesNo["YES"] = "Yes";
47
+ YesNo["NO"] = "No";
48
+ })(YesNo || (exports.YesNo = YesNo = {}));
49
+ var OnlineMeetingDetails;
50
+ (function (OnlineMeetingDetails) {
51
+ OnlineMeetingDetails["PLATFORM"] = "Platform";
52
+ OnlineMeetingDetails["MEETING_LINK"] = "Meeting Link";
53
+ OnlineMeetingDetails["UID_PWD"] = "UID/PWD";
54
+ })(OnlineMeetingDetails || (exports.OnlineMeetingDetails = OnlineMeetingDetails = {}));
55
+ var MeetingLocation;
56
+ (function (MeetingLocation) {
57
+ MeetingLocation["EMBASSY"] = "Embassy";
58
+ MeetingLocation["MINISTRY"] = "Ministry";
59
+ MeetingLocation["EXTERNAL_VENUE"] = "External Venue";
60
+ })(MeetingLocation || (exports.MeetingLocation = MeetingLocation = {}));
61
+ let MeetingRequests = class MeetingRequests extends BaseModel_1.BaseModel {
62
+ };
63
+ exports.MeetingRequests = MeetingRequests;
64
+ __decorate([
65
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
66
+ __metadata("design:type", Object)
67
+ ], MeetingRequests.prototype, "req_user_department_id", void 0);
68
+ __decorate([
69
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
70
+ __metadata("design:type", Object)
71
+ ], MeetingRequests.prototype, "req_user_section_id", void 0);
72
+ __decorate([
73
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
74
+ __metadata("design:type", Object)
75
+ ], MeetingRequests.prototype, "service_id", void 0);
76
+ __decorate([
77
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
78
+ __metadata("design:type", Object)
79
+ ], MeetingRequests.prototype, "sub_service_id", void 0);
80
+ __decorate([
81
+ (0, typeorm_1.Column)({ type: 'int', nullable: false }),
82
+ __metadata("design:type", Number)
83
+ ], MeetingRequests.prototype, "user_id", void 0);
84
+ __decorate([
85
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
86
+ __metadata("design:type", Object)
87
+ ], MeetingRequests.prototype, "department_id", void 0);
88
+ __decorate([
89
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
90
+ __metadata("design:type", Object)
91
+ ], MeetingRequests.prototype, "receiving_department_id", void 0);
92
+ __decorate([
93
+ (0, typeorm_1.Column)({ type: 'enum', enum: RequestResourceSystem, nullable: true }),
94
+ __metadata("design:type", Object)
95
+ ], MeetingRequests.prototype, "request_resource_system", void 0);
96
+ __decorate([
97
+ (0, typeorm_1.Column)({ type: 'enum', enum: MeetingRequestType, nullable: true }),
98
+ __metadata("design:type", Object)
99
+ ], MeetingRequests.prototype, "request_type", void 0);
100
+ __decorate([
101
+ (0, typeorm_1.Column)({ type: 'enum', enum: MeetingType, nullable: true }),
102
+ __metadata("design:type", Object)
103
+ ], MeetingRequests.prototype, "meeting_type", void 0);
104
+ __decorate([
105
+ (0, typeorm_1.Column)({ type: 'date', nullable: true }),
106
+ __metadata("design:type", Object)
107
+ ], MeetingRequests.prototype, "meeting_date", void 0);
108
+ __decorate([
109
+ (0, typeorm_1.Column)({ type: 'time', nullable: true }),
110
+ __metadata("design:type", Object)
111
+ ], MeetingRequests.prototype, "from_time", void 0);
112
+ __decorate([
113
+ (0, typeorm_1.Column)({ type: 'time', nullable: true }),
114
+ __metadata("design:type", Object)
115
+ ], MeetingRequests.prototype, "to_time", void 0);
116
+ __decorate([
117
+ (0, typeorm_1.Column)({ type: 'int', nullable: true }),
118
+ __metadata("design:type", Object)
119
+ ], MeetingRequests.prototype, "hall_id", void 0);
120
+ __decorate([
121
+ (0, typeorm_1.Column)({ type: 'enum', enum: OtherResourcesBooking, nullable: true }),
122
+ __metadata("design:type", Object)
123
+ ], MeetingRequests.prototype, "other_resources_booking", void 0);
124
+ __decorate([
125
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
126
+ __metadata("design:type", Object)
127
+ ], MeetingRequests.prototype, "comments", void 0);
128
+ __decorate([
129
+ (0, typeorm_1.Column)({ type: 'enum', enum: YesNo, nullable: true }),
130
+ __metadata("design:type", Object)
131
+ ], MeetingRequests.prototype, "food_service_required", void 0);
132
+ __decorate([
133
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
134
+ __metadata("design:type", Object)
135
+ ], MeetingRequests.prototype, "organization_name", void 0);
136
+ __decorate([
137
+ (0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
138
+ __metadata("design:type", Object)
139
+ ], MeetingRequests.prototype, "person_name", void 0);
140
+ __decorate([
141
+ (0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
142
+ __metadata("design:type", Object)
143
+ ], MeetingRequests.prototype, "contact_number", void 0);
144
+ __decorate([
145
+ (0, typeorm_1.Column)({ type: 'enum', enum: YesNo, nullable: true }),
146
+ __metadata("design:type", Object)
147
+ ], MeetingRequests.prototype, "protocal_support_required", void 0);
148
+ __decorate([
149
+ (0, typeorm_1.Column)({ type: 'enum', enum: YesNo, nullable: true }),
150
+ __metadata("design:type", Object)
151
+ ], MeetingRequests.prototype, "external_attendees_required_gate_pass", void 0);
152
+ __decorate([
153
+ (0, typeorm_1.Column)({ type: 'enum', enum: OnlineMeetingDetails, nullable: true }),
154
+ __metadata("design:type", Object)
155
+ ], MeetingRequests.prototype, "online_meeting_details", void 0);
156
+ __decorate([
157
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
158
+ __metadata("design:type", Object)
159
+ ], MeetingRequests.prototype, "meeting_link", void 0);
160
+ __decorate([
161
+ (0, typeorm_1.Column)({ type: 'enum', enum: MeetingLocation, nullable: true }),
162
+ __metadata("design:type", Object)
163
+ ], MeetingRequests.prototype, "meeting_location", void 0);
164
+ __decorate([
165
+ (0, typeorm_1.Column)({ type: 'enum', enum: MeetingRequestStatus, default: MeetingRequestStatus.PENDING, nullable: false }),
166
+ __metadata("design:type", String)
167
+ ], MeetingRequests.prototype, "status", void 0);
168
+ __decorate([
169
+ (0, typeorm_1.Column)({ type: 'varchar', nullable: true }),
170
+ __metadata("design:type", Object)
171
+ ], MeetingRequests.prototype, "workflow_execution_id", void 0);
172
+ exports.MeetingRequests = MeetingRequests = __decorate([
173
+ (0, typeorm_1.Entity)({ name: 'meeting_requests' })
174
+ ], MeetingRequests);
@@ -0,0 +1,17 @@
1
+ import { BaseModel } from './BaseModel';
2
+ export declare enum MeetingWorkFlowStatus {
3
+ COMPLETED = "Completed",
4
+ NOT_YET_STARTED = "Not Yet Started",
5
+ PENDING = "Pending"
6
+ }
7
+ export declare class MeetingWorkFlow extends BaseModel {
8
+ request_id: number;
9
+ service_id: number | null;
10
+ sub_service_id: number | null;
11
+ content: string;
12
+ status: MeetingWorkFlowStatus;
13
+ user_id: number | null;
14
+ role_id: number | null;
15
+ department_id: number | null;
16
+ section_id: number | null;
17
+ }
@@ -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.MeetingWorkFlow = exports.MeetingWorkFlowStatus = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const BaseModel_1 = require("./BaseModel");
15
+ var MeetingWorkFlowStatus;
16
+ (function (MeetingWorkFlowStatus) {
17
+ MeetingWorkFlowStatus["COMPLETED"] = "Completed";
18
+ MeetingWorkFlowStatus["NOT_YET_STARTED"] = "Not Yet Started";
19
+ MeetingWorkFlowStatus["PENDING"] = "Pending";
20
+ })(MeetingWorkFlowStatus || (exports.MeetingWorkFlowStatus = MeetingWorkFlowStatus = {}));
21
+ let MeetingWorkFlow = class MeetingWorkFlow extends BaseModel_1.BaseModel {
22
+ };
23
+ exports.MeetingWorkFlow = MeetingWorkFlow;
24
+ __decorate([
25
+ (0, typeorm_1.Column)({ type: 'integer', nullable: false }),
26
+ __metadata("design:type", Number)
27
+ ], MeetingWorkFlow.prototype, "request_id", void 0);
28
+ __decorate([
29
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
30
+ __metadata("design:type", Object)
31
+ ], MeetingWorkFlow.prototype, "service_id", void 0);
32
+ __decorate([
33
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
34
+ __metadata("design:type", Object)
35
+ ], MeetingWorkFlow.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
+ ], MeetingWorkFlow.prototype, "content", void 0);
40
+ __decorate([
41
+ (0, typeorm_1.Column)({ type: 'enum', enum: MeetingWorkFlowStatus, default: MeetingWorkFlowStatus.NOT_YET_STARTED, nullable: false }),
42
+ __metadata("design:type", String)
43
+ ], MeetingWorkFlow.prototype, "status", void 0);
44
+ __decorate([
45
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
46
+ __metadata("design:type", Object)
47
+ ], MeetingWorkFlow.prototype, "user_id", void 0);
48
+ __decorate([
49
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
50
+ __metadata("design:type", Object)
51
+ ], MeetingWorkFlow.prototype, "role_id", void 0);
52
+ __decorate([
53
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
54
+ __metadata("design:type", Object)
55
+ ], MeetingWorkFlow.prototype, "department_id", void 0);
56
+ __decorate([
57
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
58
+ __metadata("design:type", Object)
59
+ ], MeetingWorkFlow.prototype, "section_id", void 0);
60
+ exports.MeetingWorkFlow = MeetingWorkFlow = __decorate([
61
+ (0, typeorm_1.Entity)({ name: 'meeting_workflows' })
62
+ ], MeetingWorkFlow);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platform-modules/foreign-ministry",
3
- "version": "1.3.134",
3
+ "version": "1.3.135",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -170,6 +170,12 @@ import { SecurityChat } from './models/SecurityChatsModel';
170
170
  import { MissionTravelPassportExpiryNotificationConfig } from './models/MissionTravelPassportExpiryNotificationConfigModel';
171
171
  import { ServicesNotificationConfigs } from './models/ServicesNotificationConfigsModel';
172
172
  import { MoodleUsers } from './models/MoodleUsersModel';
173
+ import { MeetingRequests } from './models/MeetingRequestModel';
174
+ import { MeetingApprovalDetails } from './models/MeetingApprovalModel';
175
+ import { MeetingRequestAttachment } from './models/MeetingAttachmentModel';
176
+ import { MeetingRequestChat } from './models/MeetingChatModel';
177
+ import { MeetingWorkFlow } from './models/MeetingWorkflowModel';
178
+ import { MeetingAttendees } from './models/MeetingAttendeeModel';
173
179
 
174
180
 
175
181
  export const AppDataSource = new DataSource({
@@ -340,6 +346,12 @@ export const AppDataSource = new DataSource({
340
346
  SecurityChat,
341
347
  MissionTravelPassportExpiryNotificationConfig,
342
348
  ServicesNotificationConfigs,
343
- MoodleUsers
349
+ MoodleUsers,
350
+ MeetingRequests,
351
+ MeetingApprovalDetails,
352
+ MeetingRequestAttachment,
353
+ MeetingRequestChat,
354
+ MeetingWorkFlow,
355
+ MeetingAttendees,
344
356
  ],
345
357
  });
package/src/index.ts CHANGED
@@ -260,7 +260,13 @@ export * from './models/LanguageCourseChatModel';
260
260
  export * from './models/LanguageCourseWorkflowModel';
261
261
  export * from './models/LanguageCourseCostModel';
262
262
  export * from './models/LanguageCourseLecturerModel';
263
-
263
+ // Meeting Models
264
+ export * from './models/MeetingRequestModel';
265
+ export * from './models/MeetingApprovalModel';
266
+ export * from './models/MeetingAttachmentModel';
267
+ export * from './models/MeetingChatModel';
268
+ export * from './models/MeetingWorkflowModel';
269
+ export * from './models/MeetingAttendeeModel';
264
270
 
265
271
  // Employee Milestones Models
266
272
  export * from './models/EmployeeMilestonesModel';
@@ -0,0 +1,56 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum MeetingApprovalStatus {
5
+ PENDING = 'Pending',
6
+ IN_PROGRESS = 'In Progress',
7
+ APPROVED = 'Approved',
8
+ REJECTED = 'Rejected',
9
+ }
10
+
11
+ @Entity({ name: 'meeting_approvals' })
12
+ export class MeetingApprovalDetails extends BaseModel {
13
+ @Column({ type: 'integer', nullable: false })
14
+ request_id: number;
15
+
16
+ @Column({ type: 'integer', nullable: true })
17
+ service_id: number | null;
18
+
19
+ @Column({ type: 'integer', nullable: true })
20
+ sub_service_id: number | null;
21
+
22
+ @Column({ type: '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: MeetingApprovalStatus,
49
+ default: MeetingApprovalStatus.PENDING,
50
+ nullable: false,
51
+ })
52
+ approval_status: MeetingApprovalStatus;
53
+
54
+ @Column({ type: 'boolean', default: true, nullable: false })
55
+ is_allowed: boolean;
56
+ }
@@ -0,0 +1,29 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ @Entity({ name: 'meeting_attachments' })
5
+ export class MeetingRequestAttachment extends BaseModel {
6
+ @Column({ type: 'integer', nullable: false })
7
+ request_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
+ }
@@ -0,0 +1,21 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum MeetingAttendeeStatus {
5
+ INVITED = 'Invited',
6
+ ACCEPTED = 'Accepted',
7
+ REJECTED = 'Rejected',
8
+ NO_SHOW = 'No-Show',
9
+ }
10
+
11
+ @Entity({ name: 'meeting_attendees' })
12
+ export class MeetingAttendees extends BaseModel {
13
+ @Column({ type: 'integer', nullable: false })
14
+ attendee_id: number;
15
+
16
+ @Column({ type: 'integer', nullable: false })
17
+ meeting_id: number;
18
+
19
+ @Column({ type: 'enum', enum: MeetingAttendeeStatus, default: MeetingAttendeeStatus.INVITED, nullable: false })
20
+ status: MeetingAttendeeStatus;
21
+ }
@@ -0,0 +1,63 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum MeetingMessageType {
5
+ TEXT = 'text',
6
+ IMAGE = 'image',
7
+ VIDEO = 'video',
8
+ FILE = 'file',
9
+ LINK = 'link',
10
+ }
11
+
12
+ @Entity({ name: 'meeting_chats' })
13
+ export class MeetingRequestChat extends BaseModel {
14
+ @Column({ type: 'integer', nullable: false })
15
+ request_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: MeetingMessageType,
35
+ default: MeetingMessageType.TEXT,
36
+ nullable: false,
37
+ })
38
+ messageType: MeetingMessageType;
39
+
40
+ @Column({ type: 'text', nullable: true })
41
+ status: string;
42
+
43
+ constructor(
44
+ request_id: number,
45
+ user_id: number,
46
+ role_id: number,
47
+ message: string,
48
+ service_id?: number,
49
+ sub_service_id?: number,
50
+ messageType?: MeetingMessageType,
51
+ status?: string
52
+ ) {
53
+ super();
54
+ this.request_id = request_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 ?? MeetingMessageType.TEXT;
61
+ this.status = status ?? 'Pending';
62
+ }
63
+ }
@@ -0,0 +1,132 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum MeetingRequestStatus {
5
+ PENDING = 'Pending',
6
+ ASSIGNED = 'Assigned',
7
+ IN_PROGRESS = 'In Progress',
8
+ APPROVED = 'Approved',
9
+ REJECTED = 'Rejected',
10
+ }
11
+
12
+ export enum RequestResourceSystem {
13
+ ORIGIN_MC = 'Origin M&C',
14
+ MINISTRY = 'Ministry',
15
+ }
16
+
17
+ export enum MeetingRequestType {
18
+ INTERNAL = 'Internal',
19
+ EXTERNAL = 'External',
20
+ OTHER_MINISTERS = 'Other Ministers',
21
+ }
22
+
23
+ export enum MeetingType {
24
+ PHYSICAL = 'Physical',
25
+ ONLINE = 'Online',
26
+ }
27
+
28
+ export enum OtherResourcesBooking {
29
+ PRINTERS = 'Printers',
30
+ DEVICES = 'Devices',
31
+ }
32
+
33
+ export enum YesNo {
34
+ YES = 'Yes',
35
+ NO = 'No',
36
+ }
37
+
38
+ export enum OnlineMeetingDetails {
39
+ PLATFORM = 'Platform',
40
+ MEETING_LINK = 'Meeting Link',
41
+ UID_PWD = 'UID/PWD',
42
+ }
43
+
44
+ export enum MeetingLocation {
45
+ EMBASSY = 'Embassy',
46
+ MINISTRY = 'Ministry',
47
+ EXTERNAL_VENUE = 'External Venue',
48
+ }
49
+
50
+ @Entity({ name: 'meeting_requests' })
51
+ export class MeetingRequests extends BaseModel {
52
+ @Column({ type: 'int', nullable: true })
53
+ req_user_department_id: number | null;
54
+
55
+ @Column({ type: 'int', nullable: true })
56
+ req_user_section_id: number | null;
57
+
58
+ @Column({ type: 'int', nullable: true })
59
+ service_id: number | null;
60
+
61
+ @Column({ type: 'int', nullable: true })
62
+ sub_service_id: number | null;
63
+
64
+ @Column({ type: 'int', nullable: false })
65
+ user_id: number;
66
+
67
+ @Column({ type: 'int', nullable: true })
68
+ department_id: number | null;
69
+
70
+ @Column({ type: 'int', nullable: true })
71
+ receiving_department_id: number | null;
72
+
73
+ @Column({ type: 'enum', enum: RequestResourceSystem, nullable: true })
74
+ request_resource_system: RequestResourceSystem | null;
75
+
76
+ @Column({ type: 'enum', enum: MeetingRequestType, nullable: true })
77
+ request_type: MeetingRequestType | null;
78
+
79
+ @Column({ type: 'enum', enum: MeetingType, nullable: true })
80
+ meeting_type: MeetingType | null;
81
+
82
+ @Column({ type: 'date', nullable: true })
83
+ meeting_date: string | null;
84
+
85
+ @Column({ type: 'time', nullable: true })
86
+ from_time: string | null;
87
+
88
+ @Column({ type: 'time', nullable: true })
89
+ to_time: string | null;
90
+
91
+ @Column({ type: 'int', nullable: true })
92
+ hall_id: number | null;
93
+
94
+ @Column({ type: 'enum', enum: OtherResourcesBooking, nullable: true })
95
+ other_resources_booking: OtherResourcesBooking | null;
96
+
97
+ @Column({ type: 'text', nullable: true })
98
+ comments: string | null;
99
+
100
+ @Column({ type: 'enum', enum: YesNo, nullable: true })
101
+ food_service_required: YesNo | null;
102
+
103
+ @Column({ type: 'varchar', length: 255, nullable: true })
104
+ organization_name: string | null;
105
+
106
+ @Column({ type: 'varchar', length: 255, nullable: true })
107
+ person_name: string | null;
108
+
109
+ @Column({ type: 'varchar', length: 50, nullable: true })
110
+ contact_number: string | null;
111
+
112
+ @Column({ type: 'enum', enum: YesNo, nullable: true })
113
+ protocal_support_required: YesNo | null;
114
+
115
+ @Column({ type: 'enum', enum: YesNo, nullable: true })
116
+ external_attendees_required_gate_pass: YesNo | null;
117
+
118
+ @Column({ type: 'enum', enum: OnlineMeetingDetails, nullable: true })
119
+ online_meeting_details: OnlineMeetingDetails | null;
120
+
121
+ @Column({ type: 'varchar', length: 500, nullable: true })
122
+ meeting_link: string | null;
123
+
124
+ @Column({ type: 'enum', enum: MeetingLocation, nullable: true })
125
+ meeting_location: MeetingLocation | null;
126
+
127
+ @Column({ type: 'enum', enum: MeetingRequestStatus, default: MeetingRequestStatus.PENDING, nullable: false })
128
+ status: MeetingRequestStatus;
129
+
130
+ @Column({ type: 'varchar', nullable: true })
131
+ workflow_execution_id: string | null;
132
+ }
@@ -0,0 +1,38 @@
1
+ import { Column, Entity } from 'typeorm';
2
+ import { BaseModel } from './BaseModel';
3
+
4
+ export enum MeetingWorkFlowStatus {
5
+ COMPLETED = 'Completed',
6
+ NOT_YET_STARTED = 'Not Yet Started',
7
+ PENDING = 'Pending',
8
+ }
9
+
10
+ @Entity({ name: 'meeting_workflows' })
11
+ export class MeetingWorkFlow extends BaseModel {
12
+ @Column({ type: 'integer', nullable: false })
13
+ request_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: MeetingWorkFlowStatus, default: MeetingWorkFlowStatus.NOT_YET_STARTED, nullable: false })
25
+ status: MeetingWorkFlowStatus;
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
+ }