diff options
Diffstat (limited to 'db/schema/procurementRFQ.ts')
| -rw-r--r-- | db/schema/procurementRFQ.ts | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/db/schema/procurementRFQ.ts b/db/schema/procurementRFQ.ts index 18cf5f9d..fe60bb0e 100644 --- a/db/schema/procurementRFQ.ts +++ b/db/schema/procurementRFQ.ts @@ -1,5 +1,5 @@ import { foreignKey, pgTable, pgView, serial, varchar, text, timestamp, boolean, integer, numeric, date, alias, check } from "drizzle-orm/pg-core"; -import { eq, sql, and, or, relations } from "drizzle-orm"; +import { eq, sql, relations } from "drizzle-orm"; import { projects } from "./projects"; import { users } from "./users"; import { vendors } from "./vendors"; @@ -12,25 +12,25 @@ export const procurementRfqs = pgTable( // RFQ 고유 코드 rfqCode: varchar("rfq_code", { length: 50 }).unique(), // ex) "RFQ-2025-001" - // 프로젝트 참조 - projectId: integer("project_id") - .references(() => projects.id, { onDelete: "set null" }), + // 프로젝트: ECC RFQ는 프로젝트 테이블과 1:N 관계를 가져야 함 + // WHY?: 여러 프로젝트 혹은 여러 시리즈의 동일 품목을 PR로 묶어 올리기 때문 + projectId: varchar("project_id", { length: 1000 }), + // SS, II, null 값을 가질 수 있음. + // SS = 시리즈 통합, II = 품목 통합, 공란 = 통합 없음 series: varchar("series", { length: 50 }), - // itemId: integer("item_id") - // .notNull() - // .references(() => items.id, { onDelete: "cascade" }), - - itemCode: varchar("item_code", { length: 100 }), - itemName: varchar("item_name", { length: 255 }), + // 자재코드, 자재명: ECC RFQ는 자재코드, 자재명을 가지지 않음 + // WHY?: 여러 프로젝트 혹은 여러 시리즈의 동일 품목을 PR로 묶어 올리기 때문 + // 아래 컬럼은 대표 자재코드, 대표 자재명으로 사용 + itemCode: varchar("item_code", { length: 100 }), + itemName: varchar("item_name", { length: 255 }), dueDate: date("due_date", { mode: "date" }) - .$type<Date>() - .notNull(), + .$type<Date>(), // 인터페이스한 값은 dueDate가 없으므로 notNull 제약조건 제거 rfqSendDate: date("rfq_send_date", { mode: "date" }) - .$type<Date | null>(), // notNull() 제약조건 제거, null 허용 + .$type<Date | null>(), // notNull() 제약조건 제거, null 허용 (ECC에서 수신 후 보내지 않은 RFQ) status: varchar("status", { length: 30 }) .$type<"RFQ Created" | "RFQ Vendor Assignned" | "RFQ Sent" | "Quotation Analysis" | "PO Transfer" | "PO Create">() @@ -38,7 +38,7 @@ export const procurementRfqs = pgTable( .notNull(), rfqSealedYn: boolean("rfq_sealed_yn").default(false), - picCode: varchar("pic_code", { length: 50 }), + picCode: varchar("pic_code", { length: 50 }), // 구매그룹에 대응시킴 (담당자 코드로 3자리) remark: text("remark"), // 생성자 |
