From b9a109073d11262dd7ed84e25ff3cd0144c0c391 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Fri, 4 Jul 2025 00:21:05 +0000 Subject: (최겸) 0703 평가기준표 대표님 작업사항 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/schema/evaluationCriteria.ts | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'db/schema') 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, -- cgit v1.2.3