summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-07-04 00:21:05 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-07-04 00:21:05 +0000
commitb9a109073d11262dd7ed84e25ff3cd0144c0c391 (patch)
treebe716b1681997a489972bf9561f1c8a1298e4484 /db
parent766f95945a7ca0fdb258d6a83229593e4fcccfa6 (diff)
(최겸) 0703 평가기준표 대표님 작업사항
Diffstat (limited to 'db')
-rw-r--r--db/schema/evaluationCriteria.ts31
1 files changed, 21 insertions, 10 deletions
diff --git a/db/schema/evaluationCriteria.ts b/db/schema/evaluationCriteria.ts
index f87b2219..9e1bd9d2 100644
--- a/db/schema/evaluationCriteria.ts
+++ b/db/schema/evaluationCriteria.ts
@@ -7,7 +7,7 @@ import {
serial,
text,
timestamp,
- varchar
+ varchar, pgEnum
} from 'drizzle-orm/pg-core';
import { eq, relations, sql } from 'drizzle-orm';
import { users } from './users';
@@ -24,10 +24,10 @@ const REG_EVAL_CRITERIA_CATEGORY = [
{ label: '품질', value: 'quality' },
];
const REG_EVAL_CRITERIA_ITEM = [
- { label: '가점항목', value: 'customer-service' },
+ { label: '가점항목', value: 'bonus' },
{ label: '납기', value: 'delivery' },
- { label: '경영현황', value: 'management-status' },
- { label: '감점항목', value: 'penalty-item' },
+ { label: '경영현황', value: 'management' },
+ { label: '감점항목', value: 'penalty' },
{ label: '구매', value: 'procurement' },
{ label: '품질', value: 'quality' },
];
@@ -44,14 +44,18 @@ const REG_EVAL_CRITERIA_ITEM_ENUM = REG_EVAL_CRITERIA_ITEM.map(c => c.value) as
// ----------------------------------------------------------------------------------------------------
+
+export const scoreTypeEnum = pgEnum("score_type", ["fixed", "variable"]);
+
+
/* TABLE SCHEMATA */
const regEvalCriteria = pgTable('reg_eval_criteria', {
id: serial('id').primaryKey(),
- category: varchar('category', { enum: REG_EVAL_CRITERIA_CATEGORY_ENUM, length: 32 }).default('quality').notNull(),
- category2: varchar('category2', { enum: REG_EVAL_CRITERIA_CATEGORY2_ENUM, length: 32 }).default('processScore').notNull(),
- item: varchar('item', { enum: REG_EVAL_CRITERIA_ITEM_ENUM, length: 32 }).default('quality').notNull(),
- classification: varchar('classification', { length: 255 }).notNull(),
- range: varchar('range', { length: 255 }),
+ category: varchar('category', { enum: REG_EVAL_CRITERIA_CATEGORY_ENUM, length: 32 }).default('quality').notNull(), //평가부문
+ category2: varchar('category2', { enum: REG_EVAL_CRITERIA_CATEGORY2_ENUM, length: 32 }).default('processScore').notNull(), //점수유형
+ item: varchar('item', { enum: REG_EVAL_CRITERIA_ITEM_ENUM, length: 32 }).default('quality').notNull(), //항목
+ classification: varchar('classification', { length: 255 }).notNull(),//구분
+ range: varchar('range', { length: 255 }),//범위, 실제로 평가명
remarks: text('remarks'),
createdAt: timestamp('created_at').defaultNow().notNull(),
updatedAt: timestamp('updated_at').defaultNow().notNull(),
@@ -63,7 +67,14 @@ const regEvalCriteria = pgTable('reg_eval_criteria', {
.notNull()
.references(() => users.id, { onDelete: "set null" }),
+ //새로 추가
+ variableScoreMin: decimal('variable_score_min ', { precision: 5, scale: 2 }),
+ variableScoreMax: decimal('variable_score_max ', { precision: 5, scale: 2 }),
+ variableScoreUnit: varchar('variable_score_unit ', { length: 100 }),
+ scoreType: scoreTypeEnum("score_type").notNull().default("fixed"),
});
+
+
const regEvalCriteriaDetails = pgTable('reg_eval_criteria_details', {
id: serial('id').primaryKey(),
criteriaId: integer('criteria_id')
@@ -88,7 +99,7 @@ const regEvalCriteriaView = pgView('reg_eval_criteria_view').as((qb) =>
id: regEvalCriteriaDetails.id,
criteriaId: regEvalCriteriaDetails.criteriaId,
category: regEvalCriteria.category,
- scoreCategory: regEvalCriteria.category2,
+ category2: regEvalCriteria.category2,
item: regEvalCriteria.item,
classification: regEvalCriteria.classification,
range: regEvalCriteria.range,