gemcap-be-common 1.4.162 → 1.4.164
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.
|
@@ -33,6 +33,15 @@ export interface IScoringRule {
|
|
|
33
33
|
gte?: number;
|
|
34
34
|
between?: [number, number];
|
|
35
35
|
}
|
|
36
|
+
export type TScorecardVersionCriterionTypes = typeof SCORECARD_CRITERION_TYPES[number];
|
|
37
|
+
export declare const SCORECARD_CRITERION_TYPES: readonly ["boolean", "enum", "number", "range", "rating"];
|
|
38
|
+
export declare const SCORECARD_CRITERION_TYPE: {
|
|
39
|
+
readonly BOOLEAN: "boolean";
|
|
40
|
+
readonly ENUM: "enum";
|
|
41
|
+
readonly NUMBER: "number";
|
|
42
|
+
readonly RANGE: "range";
|
|
43
|
+
readonly RATING: "rating";
|
|
44
|
+
};
|
|
36
45
|
export interface IScorecardDefinition {
|
|
37
46
|
sections: {
|
|
38
47
|
key: string;
|
|
@@ -42,7 +51,7 @@ export interface IScorecardDefinition {
|
|
|
42
51
|
criteria: {
|
|
43
52
|
key: string;
|
|
44
53
|
label: string;
|
|
45
|
-
type:
|
|
54
|
+
type: TScorecardVersionCriterionTypes;
|
|
46
55
|
options?: string[];
|
|
47
56
|
min?: number;
|
|
48
57
|
max?: number;
|
|
@@ -50,10 +59,17 @@ export interface IScorecardDefinition {
|
|
|
50
59
|
}[];
|
|
51
60
|
}[];
|
|
52
61
|
}
|
|
62
|
+
export type TScorecardVersionStatus = typeof SCORECARD_VERSION_STATUSES[number];
|
|
63
|
+
export declare const SCORECARD_VERSION_STATUSES: readonly ["draft", "active", "archived"];
|
|
64
|
+
export declare const SCORECARD_VERSION_STATUS: {
|
|
65
|
+
readonly DRAFT: "draft";
|
|
66
|
+
readonly ACTIVE: "active";
|
|
67
|
+
readonly ARCHIVED: "archived";
|
|
68
|
+
};
|
|
53
69
|
export interface IScorecardVersion {
|
|
54
70
|
scorecardId: mongoose.Types.ObjectId;
|
|
55
71
|
version: string;
|
|
56
|
-
status:
|
|
72
|
+
status: TScorecardVersionStatus;
|
|
57
73
|
validFrom: Date;
|
|
58
74
|
validTo?: Date;
|
|
59
75
|
definition: IScorecardDefinition;
|
|
@@ -72,7 +88,6 @@ export interface IScorecardVersionPlain extends IScorecardVersion {
|
|
|
72
88
|
_id: string;
|
|
73
89
|
}
|
|
74
90
|
export type TScorecardVersionModel = Model<IScorecardVersion>;
|
|
75
|
-
export declare const CRITERION_TYPES: readonly ["boolean", "enum", "number", "range", "rating"];
|
|
76
91
|
export declare const ScorecardDefinitionJoiSchema: Joi.ObjectSchema<any>;
|
|
77
92
|
export declare const ScorecardVersionSchema: mongoose.Schema<IScorecardVersion, TScorecardVersionModel, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IScorecardVersion, mongoose.Document<unknown, {}, mongoose.FlatRecord<IScorecardVersion>> & mongoose.FlatRecord<IScorecardVersion> & {
|
|
78
93
|
_id: mongoose.Types.ObjectId;
|
|
@@ -3,17 +3,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ScorecardVersion = exports.ScorecardVersionSchema = exports.ScorecardDefinitionJoiSchema = exports.
|
|
6
|
+
exports.ScorecardVersion = exports.ScorecardVersionSchema = exports.ScorecardDefinitionJoiSchema = exports.SCORECARD_VERSION_STATUS = exports.SCORECARD_VERSION_STATUSES = exports.SCORECARD_CRITERION_TYPE = exports.SCORECARD_CRITERION_TYPES = void 0;
|
|
7
7
|
const joi_1 = __importDefault(require("joi"));
|
|
8
8
|
const mongoose_1 = __importDefault(require("mongoose"));
|
|
9
9
|
const _models_1 = require("./_models");
|
|
10
|
-
exports.
|
|
10
|
+
exports.SCORECARD_CRITERION_TYPES = [
|
|
11
11
|
'boolean',
|
|
12
12
|
'enum',
|
|
13
13
|
'number',
|
|
14
14
|
'range',
|
|
15
15
|
'rating',
|
|
16
16
|
];
|
|
17
|
+
exports.SCORECARD_CRITERION_TYPE = {
|
|
18
|
+
BOOLEAN: 'boolean',
|
|
19
|
+
ENUM: 'enum',
|
|
20
|
+
NUMBER: 'number',
|
|
21
|
+
RANGE: 'range',
|
|
22
|
+
RATING: 'rating',
|
|
23
|
+
};
|
|
24
|
+
exports.SCORECARD_VERSION_STATUSES = [
|
|
25
|
+
'draft',
|
|
26
|
+
'active',
|
|
27
|
+
'archived',
|
|
28
|
+
];
|
|
29
|
+
exports.SCORECARD_VERSION_STATUS = {
|
|
30
|
+
DRAFT: 'draft',
|
|
31
|
+
ACTIVE: 'active',
|
|
32
|
+
ARCHIVED: 'archived',
|
|
33
|
+
};
|
|
17
34
|
const scoringRuleSchema = joi_1.default.object({
|
|
18
35
|
score: joi_1.default.number().required(),
|
|
19
36
|
// mutually exclusive conditions
|
|
@@ -32,7 +49,7 @@ const criterionSchema = joi_1.default.object({
|
|
|
32
49
|
.required(),
|
|
33
50
|
label: joi_1.default.string().required(),
|
|
34
51
|
type: joi_1.default.string()
|
|
35
|
-
.valid(...exports.
|
|
52
|
+
.valid(...exports.SCORECARD_CRITERION_TYPES)
|
|
36
53
|
.required(),
|
|
37
54
|
options: joi_1.default.when('type', {
|
|
38
55
|
is: 'enum',
|
|
@@ -91,7 +108,7 @@ exports.ScorecardVersionSchema = new mongoose_1.default.Schema({
|
|
|
91
108
|
},
|
|
92
109
|
status: {
|
|
93
110
|
type: String,
|
|
94
|
-
enum:
|
|
111
|
+
enum: exports.SCORECARD_VERSION_STATUSES,
|
|
95
112
|
required: true,
|
|
96
113
|
index: true,
|
|
97
114
|
},
|
|
@@ -13,6 +13,24 @@ export interface IScoringRule {
|
|
|
13
13
|
between?: [number, number];
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
export type TScorecardVersionCriterionTypes = typeof SCORECARD_CRITERION_TYPES[number];
|
|
17
|
+
|
|
18
|
+
export const SCORECARD_CRITERION_TYPES = [
|
|
19
|
+
'boolean',
|
|
20
|
+
'enum',
|
|
21
|
+
'number',
|
|
22
|
+
'range',
|
|
23
|
+
'rating',
|
|
24
|
+
] as const;
|
|
25
|
+
|
|
26
|
+
export const SCORECARD_CRITERION_TYPE = {
|
|
27
|
+
BOOLEAN: 'boolean',
|
|
28
|
+
ENUM: 'enum',
|
|
29
|
+
NUMBER: 'number',
|
|
30
|
+
RANGE: 'range',
|
|
31
|
+
RATING: 'rating',
|
|
32
|
+
} as const satisfies Record<Uppercase<TScorecardVersionCriterionTypes>, TScorecardVersionCriterionTypes>;
|
|
33
|
+
|
|
16
34
|
export interface IScorecardDefinition {
|
|
17
35
|
sections: {
|
|
18
36
|
key: string;
|
|
@@ -22,7 +40,7 @@ export interface IScorecardDefinition {
|
|
|
22
40
|
criteria: {
|
|
23
41
|
key: string;
|
|
24
42
|
label: string;
|
|
25
|
-
type:
|
|
43
|
+
type: TScorecardVersionCriterionTypes;
|
|
26
44
|
options?: string[];
|
|
27
45
|
min?: number;
|
|
28
46
|
max?: number;
|
|
@@ -31,11 +49,24 @@ export interface IScorecardDefinition {
|
|
|
31
49
|
}[];
|
|
32
50
|
}
|
|
33
51
|
|
|
52
|
+
export type TScorecardVersionStatus = typeof SCORECARD_VERSION_STATUSES[number];
|
|
53
|
+
|
|
54
|
+
export const SCORECARD_VERSION_STATUSES = [
|
|
55
|
+
'draft',
|
|
56
|
+
'active',
|
|
57
|
+
'archived',
|
|
58
|
+
] as const;
|
|
59
|
+
|
|
60
|
+
export const SCORECARD_VERSION_STATUS = {
|
|
61
|
+
DRAFT: 'draft',
|
|
62
|
+
ACTIVE: 'active',
|
|
63
|
+
ARCHIVED: 'archived',
|
|
64
|
+
} as const satisfies Record<Uppercase<TScorecardVersionStatus>, TScorecardVersionStatus>;
|
|
34
65
|
|
|
35
66
|
export interface IScorecardVersion {
|
|
36
67
|
scorecardId: mongoose.Types.ObjectId;
|
|
37
68
|
version: string;
|
|
38
|
-
status:
|
|
69
|
+
status: TScorecardVersionStatus;
|
|
39
70
|
validFrom: Date;
|
|
40
71
|
validTo?: Date;
|
|
41
72
|
definition: IScorecardDefinition;
|
|
@@ -59,13 +90,6 @@ export interface IScorecardVersionPlain extends IScorecardVersion {
|
|
|
59
90
|
|
|
60
91
|
export type TScorecardVersionModel = Model<IScorecardVersion>;
|
|
61
92
|
|
|
62
|
-
export const CRITERION_TYPES = [
|
|
63
|
-
'boolean',
|
|
64
|
-
'enum',
|
|
65
|
-
'number',
|
|
66
|
-
'range',
|
|
67
|
-
'rating',
|
|
68
|
-
] as const;
|
|
69
93
|
|
|
70
94
|
const scoringRuleSchema = Joi.object({
|
|
71
95
|
score: Joi.number().required(),
|
|
@@ -89,7 +113,7 @@ const criterionSchema = Joi.object({
|
|
|
89
113
|
label: Joi.string().required(),
|
|
90
114
|
|
|
91
115
|
type: Joi.string()
|
|
92
|
-
.valid(...
|
|
116
|
+
.valid(...SCORECARD_CRITERION_TYPES)
|
|
93
117
|
.required(),
|
|
94
118
|
|
|
95
119
|
options: Joi.when('type', {
|
|
@@ -160,7 +184,7 @@ export const ScorecardVersionSchema = new mongoose.Schema<IScorecardVersion, TSc
|
|
|
160
184
|
},
|
|
161
185
|
status: {
|
|
162
186
|
type: String,
|
|
163
|
-
enum:
|
|
187
|
+
enum: SCORECARD_VERSION_STATUSES,
|
|
164
188
|
required: true,
|
|
165
189
|
index: true,
|
|
166
190
|
},
|
|
@@ -184,7 +208,7 @@ ScorecardVersionSchema.index(
|
|
|
184
208
|
|
|
185
209
|
ScorecardVersionSchema.index(
|
|
186
210
|
{ scorecardId: 1, status: 1 },
|
|
187
|
-
{ unique: true, partialFilterExpression: { status: 'active' } }
|
|
211
|
+
{ unique: true, partialFilterExpression: { status: 'active' } },
|
|
188
212
|
);
|
|
189
213
|
|
|
190
214
|
ScorecardVersionSchema.pre('save', function(next) {
|