@platform-modules/foreign-ministry 1.3.116 → 1.3.117
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.
- package/.env +3 -17
- package/dist/data-source.js +1 -5
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -2
- package/dist/models/DiplomaticClubCardApprovalModel.d.ts +16 -0
- package/dist/models/DiplomaticClubCardApprovalModel.js +58 -0
- package/dist/models/DiplomaticClubCardAttachmentModel.d.ts +9 -0
- package/dist/models/DiplomaticClubCardAttachmentModel.js +44 -0
- package/dist/models/DiplomaticClubCardChatModel.d.ts +7 -0
- package/dist/models/{HelpContentMappedCategoriesModel.js → DiplomaticClubCardChatModel.js} +18 -16
- package/dist/models/DiplomaticClubCardMemberModel.d.ts +13 -0
- package/dist/models/DiplomaticClubCardMemberModel.js +60 -0
- package/dist/models/DiplomaticClubCardRequestModel.d.ts +33 -0
- package/dist/models/DiplomaticClubCardRequestModel.js +98 -0
- package/dist/models/DiplomaticClubCardWorkFlowModel.d.ts +12 -0
- package/dist/models/DiplomaticClubCardWorkFlowModel.js +42 -0
- package/dist/models/DiplomaticServiceDetailsModel.d.ts +20 -0
- package/dist/models/DiplomaticServiceDetailsModel.js +65 -0
- package/dist/models/DiplomaticSettingsModel.d.ts +11 -0
- package/dist/models/DiplomaticSettingsModel.js +59 -0
- package/dist/models/DiplomaticTitleModel.d.ts +12 -0
- package/dist/models/DiplomaticTitleModel.js +45 -0
- package/dist/models/LMSCourseExternalLecturerRequestModel.d.ts +22 -9
- package/dist/models/LMSCourseExternalLecturerRequestModel.js +71 -19
- package/dist/models/LMSExternalCourseParticipationCandidateModel.d.ts +0 -16
- package/dist/models/LMSExternalCourseParticipationCandidateModel.js +1 -48
- package/dist/models/PassportRequestApprovalModel.d.ts +22 -0
- package/dist/models/PassportRequestApprovalModel.js +91 -0
- package/dist/models/PassportRequestAttachmentModel.d.ts +10 -0
- package/dist/models/PassportRequestAttachmentModel.js +54 -0
- package/dist/models/PassportRequestChatModel.d.ts +8 -0
- package/dist/models/PassportRequestChatModel.js +44 -0
- package/dist/models/PassportRequestDependentModel.d.ts +20 -0
- package/dist/models/PassportRequestDependentModel.js +85 -0
- package/dist/models/PassportRequestModel.d.ts +40 -0
- package/dist/models/PassportRequestModel.js +128 -0
- package/dist/models/PassportRequestWorkFlowModel.d.ts +15 -0
- package/dist/models/PassportRequestWorkFlowModel.js +60 -0
- package/dist/models/SecurityDeptMainRequestModel.d.ts +3 -2
- package/dist/models/SecurityDeptMainRequestModel.js +2 -1
- package/dist/models/SubscriptionAmountModel.d.ts +67 -0
- package/dist/models/SubscriptionAmountModel.js +114 -0
- package/package.json +1 -1
- package/src/data-source.ts +1 -5
- package/src/index.ts +0 -2
- package/src/models/DiplomaticClubCardMembersModel.ts +75 -75
- package/src/models/DiplomaticClubSubscriptionMasterModel.ts +26 -26
- package/src/models/DiplomaticRequestsModel.ts +157 -157
- package/src/models/LMSCourseExternalLecturerRequestModel.ts +60 -18
- package/src/models/LMSExternalCourseParticipationCandidateModel.ts +0 -37
- package/src/models/RegisterCandidateRequestModel.ts +177 -177
- package/src/models/SecurityDeptMainRequestModel.ts +3 -2
- package/dist/models/HelpContentMappedCategoriesModel.d.ts +0 -6
- package/dist/models/HelpContentMappedTagsModel.d.ts +0 -6
- package/dist/models/HelpContentMappedTagsModel.js +0 -34
- package/dist/models/HelpContentTagsModel.d.ts +0 -5
- package/dist/models/HelpContentTagsModel.js +0 -29
- package/dist/models/LMSCourseExternalLecturerCostModel.d.ts +0 -13
- package/dist/models/LMSCourseExternalLecturerCostModel.js +0 -60
- package/dist/models/LMSCourseExternalLecturerLecturerModel.d.ts +0 -15
- package/dist/models/LMSCourseExternalLecturerLecturerModel.js +0 -68
- package/dist/models/questionTagsModel.d.ts +0 -6
- package/dist/models/questionTagsModel.js +0 -34
- package/fix-lms-external-course-enum-conflict.sql +0 -11
- package/src/models/LMSCourseExternalLecturerCostModel.ts +0 -36
- package/src/models/LMSCourseExternalLecturerLecturerModel.ts +0 -42
- /package/src/models/{LeaveConfigGradesModel.ts → LeaveConfigGradesModel.Ts} +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
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.DiplomaticSettings = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const BaseModel_1 = require("./BaseModel");
|
|
15
|
+
let DiplomaticSettings = class DiplomaticSettings extends BaseModel_1.BaseModel {
|
|
16
|
+
constructor(service_id, approval_level, approver_role_id, sub_service_id, department_id, section_id) {
|
|
17
|
+
super();
|
|
18
|
+
this.service_id = service_id;
|
|
19
|
+
this.approval_level = approval_level;
|
|
20
|
+
this.approver_role_id = approver_role_id;
|
|
21
|
+
this.is_active = true;
|
|
22
|
+
this.sub_service_id = sub_service_id;
|
|
23
|
+
this.department_id = department_id;
|
|
24
|
+
this.section_id = section_id;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
exports.DiplomaticSettings = DiplomaticSettings;
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, typeorm_1.Column)({ type: 'int' }),
|
|
30
|
+
__metadata("design:type", Number)
|
|
31
|
+
], DiplomaticSettings.prototype, "service_id", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, typeorm_1.Column)({ type: 'int' }),
|
|
34
|
+
__metadata("design:type", Number)
|
|
35
|
+
], DiplomaticSettings.prototype, "approval_level", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, typeorm_1.Column)({ type: 'int' }),
|
|
38
|
+
__metadata("design:type", Number)
|
|
39
|
+
], DiplomaticSettings.prototype, "approver_role_id", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, typeorm_1.Column)({ type: 'boolean', default: true }),
|
|
42
|
+
__metadata("design:type", Boolean)
|
|
43
|
+
], DiplomaticSettings.prototype, "is_active", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
46
|
+
__metadata("design:type", Number)
|
|
47
|
+
], DiplomaticSettings.prototype, "sub_service_id", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
50
|
+
__metadata("design:type", Number)
|
|
51
|
+
], DiplomaticSettings.prototype, "department_id", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
54
|
+
__metadata("design:type", Number)
|
|
55
|
+
], DiplomaticSettings.prototype, "section_id", void 0);
|
|
56
|
+
exports.DiplomaticSettings = DiplomaticSettings = __decorate([
|
|
57
|
+
(0, typeorm_1.Entity)({ name: 'diplomatic_settings' }),
|
|
58
|
+
__metadata("design:paramtypes", [Number, Number, Number, Number, Number, Number])
|
|
59
|
+
], DiplomaticSettings);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel';
|
|
2
|
+
export declare enum TitleCategory {
|
|
3
|
+
EMPLOYEE = "Employee",
|
|
4
|
+
NON_EMPLOYEE = "Non Employee"
|
|
5
|
+
}
|
|
6
|
+
export declare class DiplomaticTitles extends BaseModel {
|
|
7
|
+
title_name: string;
|
|
8
|
+
title_name_arabic: string | null;
|
|
9
|
+
category: TitleCategory;
|
|
10
|
+
is_active: boolean;
|
|
11
|
+
display_order: number | null;
|
|
12
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
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.DiplomaticTitles = exports.TitleCategory = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const BaseModel_1 = require("./BaseModel");
|
|
15
|
+
var TitleCategory;
|
|
16
|
+
(function (TitleCategory) {
|
|
17
|
+
TitleCategory["EMPLOYEE"] = "Employee";
|
|
18
|
+
TitleCategory["NON_EMPLOYEE"] = "Non Employee";
|
|
19
|
+
})(TitleCategory || (exports.TitleCategory = TitleCategory = {}));
|
|
20
|
+
let DiplomaticTitles = class DiplomaticTitles extends BaseModel_1.BaseModel {
|
|
21
|
+
};
|
|
22
|
+
exports.DiplomaticTitles = DiplomaticTitles;
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: false }),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], DiplomaticTitles.prototype, "title_name", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 100, nullable: true }),
|
|
29
|
+
__metadata("design:type", Object)
|
|
30
|
+
], DiplomaticTitles.prototype, "title_name_arabic", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, typeorm_1.Column)({ type: 'enum', enum: TitleCategory, nullable: false }),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], DiplomaticTitles.prototype, "category", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, typeorm_1.Column)({ type: 'boolean', default: true, nullable: false }),
|
|
37
|
+
__metadata("design:type", Boolean)
|
|
38
|
+
], DiplomaticTitles.prototype, "is_active", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
41
|
+
__metadata("design:type", Object)
|
|
42
|
+
], DiplomaticTitles.prototype, "display_order", void 0);
|
|
43
|
+
exports.DiplomaticTitles = DiplomaticTitles = __decorate([
|
|
44
|
+
(0, typeorm_1.Entity)({ name: 'diplomatic_titles' })
|
|
45
|
+
], DiplomaticTitles);
|
|
@@ -12,15 +12,28 @@ export declare class LMSCourseExternalLecturerRequests extends BaseModel {
|
|
|
12
12
|
service_id: number | null;
|
|
13
13
|
sub_service_id: number | null;
|
|
14
14
|
user_id: number;
|
|
15
|
-
course_name: string;
|
|
16
|
-
course_level: string;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
course_name: string | null;
|
|
16
|
+
course_level: string | null;
|
|
17
|
+
material_price: string | null;
|
|
18
|
+
transportation: string | null;
|
|
19
|
+
accommodation: string | null;
|
|
20
|
+
allowances: string | null;
|
|
21
|
+
food: string | null;
|
|
22
|
+
present: string | null;
|
|
23
|
+
currency_type: string | null;
|
|
24
|
+
reason_of_course: string | null;
|
|
25
|
+
estimated_number_of_participants: number | null;
|
|
26
|
+
date_from: Date | null;
|
|
27
|
+
date_to: Date | null;
|
|
28
|
+
time_from: string | null;
|
|
29
|
+
time_to: string | null;
|
|
30
|
+
lecturer_full_name: string | null;
|
|
31
|
+
passport: string | null;
|
|
32
|
+
age: number | null;
|
|
33
|
+
qualifications: string | null;
|
|
34
|
+
experience: string | null;
|
|
35
|
+
cv_attachment: string | null;
|
|
36
|
+
course_material: string | null;
|
|
24
37
|
status: LMSCourseExternalLecturerStatus;
|
|
25
38
|
workflow_execution_id: string | null;
|
|
26
39
|
}
|
|
@@ -44,41 +44,93 @@ __decorate([
|
|
|
44
44
|
__metadata("design:type", Number)
|
|
45
45
|
], LMSCourseExternalLecturerRequests.prototype, "user_id", void 0);
|
|
46
46
|
__decorate([
|
|
47
|
-
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable:
|
|
48
|
-
__metadata("design:type",
|
|
47
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
|
|
48
|
+
__metadata("design:type", Object)
|
|
49
49
|
], LMSCourseExternalLecturerRequests.prototype, "course_name", void 0);
|
|
50
50
|
__decorate([
|
|
51
|
-
(0, typeorm_1.Column)({ type: 'varchar', length:
|
|
52
|
-
__metadata("design:type",
|
|
51
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
|
|
52
|
+
__metadata("design:type", Object)
|
|
53
53
|
], LMSCourseExternalLecturerRequests.prototype, "course_level", void 0);
|
|
54
54
|
__decorate([
|
|
55
|
-
(0, typeorm_1.Column)({ type: 'varchar',
|
|
56
|
-
__metadata("design:type",
|
|
57
|
-
], LMSCourseExternalLecturerRequests.prototype, "
|
|
55
|
+
(0, typeorm_1.Column)({ type: 'varchar', nullable: true }),
|
|
56
|
+
__metadata("design:type", Object)
|
|
57
|
+
], LMSCourseExternalLecturerRequests.prototype, "material_price", void 0);
|
|
58
58
|
__decorate([
|
|
59
|
-
(0, typeorm_1.Column)({ type: '
|
|
60
|
-
__metadata("design:type",
|
|
59
|
+
(0, typeorm_1.Column)({ type: 'varchar', nullable: true }),
|
|
60
|
+
__metadata("design:type", Object)
|
|
61
|
+
], LMSCourseExternalLecturerRequests.prototype, "transportation", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
(0, typeorm_1.Column)({ type: 'varchar', nullable: true }),
|
|
64
|
+
__metadata("design:type", Object)
|
|
65
|
+
], LMSCourseExternalLecturerRequests.prototype, "accommodation", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
(0, typeorm_1.Column)({ type: 'varchar', nullable: true }),
|
|
68
|
+
__metadata("design:type", Object)
|
|
69
|
+
], LMSCourseExternalLecturerRequests.prototype, "allowances", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
(0, typeorm_1.Column)({ type: 'varchar', nullable: true }),
|
|
72
|
+
__metadata("design:type", Object)
|
|
73
|
+
], LMSCourseExternalLecturerRequests.prototype, "food", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
|
|
76
|
+
__metadata("design:type", Object)
|
|
77
|
+
], LMSCourseExternalLecturerRequests.prototype, "present", void 0);
|
|
78
|
+
__decorate([
|
|
79
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
|
|
80
|
+
__metadata("design:type", Object)
|
|
81
|
+
], LMSCourseExternalLecturerRequests.prototype, "currency_type", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
84
|
+
__metadata("design:type", Object)
|
|
61
85
|
], LMSCourseExternalLecturerRequests.prototype, "reason_of_course", void 0);
|
|
62
86
|
__decorate([
|
|
63
|
-
(0, typeorm_1.Column)({ type: 'int', nullable:
|
|
64
|
-
__metadata("design:type",
|
|
87
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
88
|
+
__metadata("design:type", Object)
|
|
65
89
|
], LMSCourseExternalLecturerRequests.prototype, "estimated_number_of_participants", void 0);
|
|
66
90
|
__decorate([
|
|
67
|
-
(0, typeorm_1.Column)({ type: 'date', nullable:
|
|
68
|
-
__metadata("design:type",
|
|
91
|
+
(0, typeorm_1.Column)({ type: 'date', nullable: true }),
|
|
92
|
+
__metadata("design:type", Object)
|
|
69
93
|
], LMSCourseExternalLecturerRequests.prototype, "date_from", void 0);
|
|
70
94
|
__decorate([
|
|
71
|
-
(0, typeorm_1.Column)({ type: 'date', nullable:
|
|
72
|
-
__metadata("design:type",
|
|
95
|
+
(0, typeorm_1.Column)({ type: 'date', nullable: true }),
|
|
96
|
+
__metadata("design:type", Object)
|
|
73
97
|
], LMSCourseExternalLecturerRequests.prototype, "date_to", void 0);
|
|
74
98
|
__decorate([
|
|
75
|
-
(0, typeorm_1.Column)({ type: '
|
|
76
|
-
__metadata("design:type",
|
|
99
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
|
|
100
|
+
__metadata("design:type", Object)
|
|
77
101
|
], LMSCourseExternalLecturerRequests.prototype, "time_from", void 0);
|
|
78
102
|
__decorate([
|
|
79
|
-
(0, typeorm_1.Column)({ type: '
|
|
80
|
-
__metadata("design:type",
|
|
103
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
|
|
104
|
+
__metadata("design:type", Object)
|
|
81
105
|
], LMSCourseExternalLecturerRequests.prototype, "time_to", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
|
|
108
|
+
__metadata("design:type", Object)
|
|
109
|
+
], LMSCourseExternalLecturerRequests.prototype, "lecturer_full_name", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
|
|
112
|
+
__metadata("design:type", Object)
|
|
113
|
+
], LMSCourseExternalLecturerRequests.prototype, "passport", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
116
|
+
__metadata("design:type", Object)
|
|
117
|
+
], LMSCourseExternalLecturerRequests.prototype, "age", void 0);
|
|
118
|
+
__decorate([
|
|
119
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
120
|
+
__metadata("design:type", Object)
|
|
121
|
+
], LMSCourseExternalLecturerRequests.prototype, "qualifications", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
124
|
+
__metadata("design:type", Object)
|
|
125
|
+
], LMSCourseExternalLecturerRequests.prototype, "experience", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
|
|
128
|
+
__metadata("design:type", Object)
|
|
129
|
+
], LMSCourseExternalLecturerRequests.prototype, "cv_attachment", void 0);
|
|
130
|
+
__decorate([
|
|
131
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
|
|
132
|
+
__metadata("design:type", Object)
|
|
133
|
+
], LMSCourseExternalLecturerRequests.prototype, "course_material", void 0);
|
|
82
134
|
__decorate([
|
|
83
135
|
(0, typeorm_1.Column)({ type: 'enum', enum: LMSCourseExternalLecturerStatus, default: LMSCourseExternalLecturerStatus.PENDING, nullable: false }),
|
|
84
136
|
__metadata("design:type", String)
|
|
@@ -1,23 +1,7 @@
|
|
|
1
1
|
import { BaseModel } from './BaseModel';
|
|
2
|
-
export declare enum LMSExternalCourseParticipationCandidateApprovalStatus {
|
|
3
|
-
PENDING = "Pending",
|
|
4
|
-
IN_PROGRESS = "In Progress",
|
|
5
|
-
APPROVED = "Approved",
|
|
6
|
-
REJECTED = "Rejected"
|
|
7
|
-
}
|
|
8
2
|
export declare class LMSExternalCourseParticipationCandidate extends BaseModel {
|
|
9
3
|
request_id: number;
|
|
10
4
|
candidate_id: number;
|
|
11
5
|
candidate_name: string | null;
|
|
12
6
|
candidate_profile_url: string | null;
|
|
13
|
-
service_id: number | null;
|
|
14
|
-
sub_service_id: number | null;
|
|
15
|
-
approver_role_id: number;
|
|
16
|
-
department_id: number | null;
|
|
17
|
-
section_id: number | null;
|
|
18
|
-
approver_user_id: number | null;
|
|
19
|
-
delegate_user_id: number | null;
|
|
20
|
-
approved_by: number | null;
|
|
21
|
-
comment: string;
|
|
22
|
-
approval_status: LMSExternalCourseParticipationCandidateApprovalStatus;
|
|
23
7
|
}
|
|
@@ -9,16 +9,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.LMSExternalCourseParticipationCandidate =
|
|
12
|
+
exports.LMSExternalCourseParticipationCandidate = void 0;
|
|
13
13
|
const typeorm_1 = require("typeorm");
|
|
14
14
|
const BaseModel_1 = require("./BaseModel");
|
|
15
|
-
var LMSExternalCourseParticipationCandidateApprovalStatus;
|
|
16
|
-
(function (LMSExternalCourseParticipationCandidateApprovalStatus) {
|
|
17
|
-
LMSExternalCourseParticipationCandidateApprovalStatus["PENDING"] = "Pending";
|
|
18
|
-
LMSExternalCourseParticipationCandidateApprovalStatus["IN_PROGRESS"] = "In Progress";
|
|
19
|
-
LMSExternalCourseParticipationCandidateApprovalStatus["APPROVED"] = "Approved";
|
|
20
|
-
LMSExternalCourseParticipationCandidateApprovalStatus["REJECTED"] = "Rejected";
|
|
21
|
-
})(LMSExternalCourseParticipationCandidateApprovalStatus || (exports.LMSExternalCourseParticipationCandidateApprovalStatus = LMSExternalCourseParticipationCandidateApprovalStatus = {}));
|
|
22
15
|
let LMSExternalCourseParticipationCandidate = class LMSExternalCourseParticipationCandidate extends BaseModel_1.BaseModel {
|
|
23
16
|
};
|
|
24
17
|
exports.LMSExternalCourseParticipationCandidate = LMSExternalCourseParticipationCandidate;
|
|
@@ -38,46 +31,6 @@ __decorate([
|
|
|
38
31
|
(0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
|
|
39
32
|
__metadata("design:type", Object)
|
|
40
33
|
], LMSExternalCourseParticipationCandidate.prototype, "candidate_profile_url", void 0);
|
|
41
|
-
__decorate([
|
|
42
|
-
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
43
|
-
__metadata("design:type", Object)
|
|
44
|
-
], LMSExternalCourseParticipationCandidate.prototype, "service_id", void 0);
|
|
45
|
-
__decorate([
|
|
46
|
-
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
47
|
-
__metadata("design:type", Object)
|
|
48
|
-
], LMSExternalCourseParticipationCandidate.prototype, "sub_service_id", void 0);
|
|
49
|
-
__decorate([
|
|
50
|
-
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
51
|
-
__metadata("design:type", Number)
|
|
52
|
-
], LMSExternalCourseParticipationCandidate.prototype, "approver_role_id", void 0);
|
|
53
|
-
__decorate([
|
|
54
|
-
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
55
|
-
__metadata("design:type", Object)
|
|
56
|
-
], LMSExternalCourseParticipationCandidate.prototype, "department_id", void 0);
|
|
57
|
-
__decorate([
|
|
58
|
-
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
59
|
-
__metadata("design:type", Object)
|
|
60
|
-
], LMSExternalCourseParticipationCandidate.prototype, "section_id", void 0);
|
|
61
|
-
__decorate([
|
|
62
|
-
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
63
|
-
__metadata("design:type", Object)
|
|
64
|
-
], LMSExternalCourseParticipationCandidate.prototype, "approver_user_id", void 0);
|
|
65
|
-
__decorate([
|
|
66
|
-
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
67
|
-
__metadata("design:type", Object)
|
|
68
|
-
], LMSExternalCourseParticipationCandidate.prototype, "delegate_user_id", void 0);
|
|
69
|
-
__decorate([
|
|
70
|
-
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
71
|
-
__metadata("design:type", Object)
|
|
72
|
-
], LMSExternalCourseParticipationCandidate.prototype, "approved_by", void 0);
|
|
73
|
-
__decorate([
|
|
74
|
-
(0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true, default: '' }),
|
|
75
|
-
__metadata("design:type", String)
|
|
76
|
-
], LMSExternalCourseParticipationCandidate.prototype, "comment", void 0);
|
|
77
|
-
__decorate([
|
|
78
|
-
(0, typeorm_1.Column)({ type: 'enum', enum: LMSExternalCourseParticipationCandidateApprovalStatus, enumName: 'lms_external_course_participation_candidate_approval_status_enum', default: LMSExternalCourseParticipationCandidateApprovalStatus.PENDING, nullable: false }),
|
|
79
|
-
__metadata("design:type", String)
|
|
80
|
-
], LMSExternalCourseParticipationCandidate.prototype, "approval_status", void 0);
|
|
81
34
|
exports.LMSExternalCourseParticipationCandidate = LMSExternalCourseParticipationCandidate = __decorate([
|
|
82
35
|
(0, typeorm_1.Entity)({ name: 'lms_external_course_participation_candidates' })
|
|
83
36
|
], LMSExternalCourseParticipationCandidate);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel';
|
|
2
|
+
export declare enum PassportRequestApprovalStatus {
|
|
3
|
+
PENDING = "Pending",
|
|
4
|
+
APPROVED = "Approved",
|
|
5
|
+
REJECTED = "Rejected",
|
|
6
|
+
IN_PROGRESS = "In Progress"
|
|
7
|
+
}
|
|
8
|
+
export declare class PassportRequestApprovals extends BaseModel {
|
|
9
|
+
request_id: number;
|
|
10
|
+
approver_user_id: number | null;
|
|
11
|
+
approver_role_id: number | null;
|
|
12
|
+
level: number;
|
|
13
|
+
department_id: number | null;
|
|
14
|
+
section_id: number | null;
|
|
15
|
+
delegate_user_id: number | null;
|
|
16
|
+
approved_by: string | null;
|
|
17
|
+
comment: string | null;
|
|
18
|
+
approval_status: PassportRequestApprovalStatus;
|
|
19
|
+
service_id: number | null;
|
|
20
|
+
sub_service_id: number | null;
|
|
21
|
+
constructor(request_id: number, level: number, approver_user_id?: number | null, approver_role_id?: number | null, department_id?: number | null, section_id?: number | null, delegate_user_id?: number | null, approved_by?: string | null, comment?: string | null, approval_status?: PassportRequestApprovalStatus, service_id?: number | null, sub_service_id?: number | null);
|
|
22
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
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.PassportRequestApprovals = exports.PassportRequestApprovalStatus = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const BaseModel_1 = require("./BaseModel");
|
|
15
|
+
var PassportRequestApprovalStatus;
|
|
16
|
+
(function (PassportRequestApprovalStatus) {
|
|
17
|
+
PassportRequestApprovalStatus["PENDING"] = "Pending";
|
|
18
|
+
PassportRequestApprovalStatus["APPROVED"] = "Approved";
|
|
19
|
+
PassportRequestApprovalStatus["REJECTED"] = "Rejected";
|
|
20
|
+
PassportRequestApprovalStatus["IN_PROGRESS"] = "In Progress";
|
|
21
|
+
})(PassportRequestApprovalStatus || (exports.PassportRequestApprovalStatus = PassportRequestApprovalStatus = {}));
|
|
22
|
+
let PassportRequestApprovals = class PassportRequestApprovals extends BaseModel_1.BaseModel {
|
|
23
|
+
constructor(request_id, level, approver_user_id, approver_role_id, department_id, section_id, delegate_user_id, approved_by, comment, approval_status, service_id, sub_service_id) {
|
|
24
|
+
super();
|
|
25
|
+
this.request_id = request_id;
|
|
26
|
+
this.approver_user_id = approver_user_id || null;
|
|
27
|
+
this.approver_role_id = approver_role_id || null;
|
|
28
|
+
this.level = level;
|
|
29
|
+
this.department_id = department_id || null;
|
|
30
|
+
this.section_id = section_id || null;
|
|
31
|
+
this.delegate_user_id = delegate_user_id || null;
|
|
32
|
+
this.approved_by = approved_by || null;
|
|
33
|
+
this.comment = comment || null;
|
|
34
|
+
this.approval_status = approval_status || PassportRequestApprovalStatus.PENDING;
|
|
35
|
+
this.service_id = service_id || null;
|
|
36
|
+
this.sub_service_id = sub_service_id || null;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.PassportRequestApprovals = PassportRequestApprovals;
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: false }),
|
|
42
|
+
__metadata("design:type", Number)
|
|
43
|
+
], PassportRequestApprovals.prototype, "request_id", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
46
|
+
__metadata("design:type", Object)
|
|
47
|
+
], PassportRequestApprovals.prototype, "approver_user_id", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
50
|
+
__metadata("design:type", Object)
|
|
51
|
+
], PassportRequestApprovals.prototype, "approver_role_id", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: false, default: 0 }),
|
|
54
|
+
__metadata("design:type", Number)
|
|
55
|
+
], PassportRequestApprovals.prototype, "level", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
58
|
+
__metadata("design:type", Object)
|
|
59
|
+
], PassportRequestApprovals.prototype, "department_id", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
62
|
+
__metadata("design:type", Object)
|
|
63
|
+
], PassportRequestApprovals.prototype, "section_id", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
66
|
+
__metadata("design:type", Object)
|
|
67
|
+
], PassportRequestApprovals.prototype, "delegate_user_id", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: true }),
|
|
70
|
+
__metadata("design:type", Object)
|
|
71
|
+
], PassportRequestApprovals.prototype, "approved_by", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
74
|
+
__metadata("design:type", Object)
|
|
75
|
+
], PassportRequestApprovals.prototype, "comment", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
(0, typeorm_1.Column)({ type: 'enum', enum: PassportRequestApprovalStatus, default: PassportRequestApprovalStatus.PENDING, nullable: false }),
|
|
78
|
+
__metadata("design:type", String)
|
|
79
|
+
], PassportRequestApprovals.prototype, "approval_status", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
82
|
+
__metadata("design:type", Object)
|
|
83
|
+
], PassportRequestApprovals.prototype, "service_id", void 0);
|
|
84
|
+
__decorate([
|
|
85
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
86
|
+
__metadata("design:type", Object)
|
|
87
|
+
], PassportRequestApprovals.prototype, "sub_service_id", void 0);
|
|
88
|
+
exports.PassportRequestApprovals = PassportRequestApprovals = __decorate([
|
|
89
|
+
(0, typeorm_1.Entity)({ name: 'passport_request_approvals' }),
|
|
90
|
+
__metadata("design:paramtypes", [Number, Number, Object, Object, Object, Object, Object, Object, Object, String, Object, Object])
|
|
91
|
+
], PassportRequestApprovals);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel';
|
|
2
|
+
export declare class PassportRequestAttachments extends BaseModel {
|
|
3
|
+
request_id: number;
|
|
4
|
+
dependent_id: number | null;
|
|
5
|
+
file_name: string;
|
|
6
|
+
file_path: string;
|
|
7
|
+
file_type: string | null;
|
|
8
|
+
attachment_type: string | null;
|
|
9
|
+
constructor(request_id: number, file_name: string, file_path: string, dependent_id?: number | null, file_type?: string | null, attachment_type?: string | null);
|
|
10
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
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.PassportRequestAttachments = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const BaseModel_1 = require("./BaseModel");
|
|
15
|
+
let PassportRequestAttachments = class PassportRequestAttachments extends BaseModel_1.BaseModel {
|
|
16
|
+
constructor(request_id, file_name, file_path, dependent_id, file_type, attachment_type) {
|
|
17
|
+
super();
|
|
18
|
+
this.request_id = request_id;
|
|
19
|
+
this.dependent_id = dependent_id || null;
|
|
20
|
+
this.file_name = file_name;
|
|
21
|
+
this.file_path = file_path;
|
|
22
|
+
this.file_type = file_type || null;
|
|
23
|
+
this.attachment_type = attachment_type || null;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.PassportRequestAttachments = PassportRequestAttachments;
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: false }),
|
|
29
|
+
__metadata("design:type", Number)
|
|
30
|
+
], PassportRequestAttachments.prototype, "request_id", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: true }),
|
|
33
|
+
__metadata("design:type", Object)
|
|
34
|
+
], PassportRequestAttachments.prototype, "dependent_id", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255, nullable: false }),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], PassportRequestAttachments.prototype, "file_name", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: false }),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], PassportRequestAttachments.prototype, "file_path", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
|
|
45
|
+
__metadata("design:type", Object)
|
|
46
|
+
], PassportRequestAttachments.prototype, "file_type", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
|
|
49
|
+
__metadata("design:type", Object)
|
|
50
|
+
], PassportRequestAttachments.prototype, "attachment_type", void 0);
|
|
51
|
+
exports.PassportRequestAttachments = PassportRequestAttachments = __decorate([
|
|
52
|
+
(0, typeorm_1.Entity)({ name: 'passport_request_attachments' }),
|
|
53
|
+
__metadata("design:paramtypes", [Number, String, String, Object, Object, Object])
|
|
54
|
+
], PassportRequestAttachments);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel';
|
|
2
|
+
export declare class PassportRequestChat extends BaseModel {
|
|
3
|
+
request_id: number;
|
|
4
|
+
user_id: number;
|
|
5
|
+
message: string;
|
|
6
|
+
message_type: string | null;
|
|
7
|
+
constructor(request_id: number, user_id: number, message: string, message_type?: string | null);
|
|
8
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
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.PassportRequestChat = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const BaseModel_1 = require("./BaseModel");
|
|
15
|
+
let PassportRequestChat = class PassportRequestChat extends BaseModel_1.BaseModel {
|
|
16
|
+
constructor(request_id, user_id, message, message_type) {
|
|
17
|
+
super();
|
|
18
|
+
this.request_id = request_id;
|
|
19
|
+
this.user_id = user_id;
|
|
20
|
+
this.message = message;
|
|
21
|
+
this.message_type = message_type || null;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.PassportRequestChat = PassportRequestChat;
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: false }),
|
|
27
|
+
__metadata("design:type", Number)
|
|
28
|
+
], PassportRequestChat.prototype, "request_id", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, typeorm_1.Column)({ type: 'int', nullable: false }),
|
|
31
|
+
__metadata("design:type", Number)
|
|
32
|
+
], PassportRequestChat.prototype, "user_id", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: false }),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], PassportRequestChat.prototype, "message", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
|
|
39
|
+
__metadata("design:type", Object)
|
|
40
|
+
], PassportRequestChat.prototype, "message_type", void 0);
|
|
41
|
+
exports.PassportRequestChat = PassportRequestChat = __decorate([
|
|
42
|
+
(0, typeorm_1.Entity)({ name: 'passport_request_chats' }),
|
|
43
|
+
__metadata("design:paramtypes", [Number, Number, String, Object])
|
|
44
|
+
], PassportRequestChat);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel';
|
|
2
|
+
export declare enum DependentRelation {
|
|
3
|
+
SELF = "Self",
|
|
4
|
+
SPOUSE = "Spouse",
|
|
5
|
+
CHILD = "Child"
|
|
6
|
+
}
|
|
7
|
+
export declare class PassportRequestDependents extends BaseModel {
|
|
8
|
+
request_id: number;
|
|
9
|
+
first_name: string;
|
|
10
|
+
family_name: string;
|
|
11
|
+
last_name: string;
|
|
12
|
+
gender: string;
|
|
13
|
+
nationality: string;
|
|
14
|
+
place_of_birth: string;
|
|
15
|
+
job_occupation: string;
|
|
16
|
+
relation: DependentRelation;
|
|
17
|
+
age: number;
|
|
18
|
+
passport_request_type: string;
|
|
19
|
+
constructor(request_id: number, first_name: string, family_name: string, last_name: string, gender: string, nationality: string, place_of_birth: string, job_occupation: string, relation: DependentRelation, age: number, passport_request_type: string);
|
|
20
|
+
}
|