import { pgTable, serial, varchar, text, timestamp, boolean, integer ,pgView} from "drizzle-orm/pg-core"; import { items } from "./items"; import { sql, eq, relations} from "drizzle-orm"; import { users } from "./users"; import { vendorCandidates, vendors } from "./vendors"; export const vendorCandidateLogs = pgTable("vendor_candidate_logs", { id: serial("id").primaryKey(), // 어떤 vendor candidate에 대한 로그인지 vendorCandidateId: integer("vendor_candidate_id") .references(() => vendorCandidates.id, { onDelete: "cascade" }) .notNull(), // 어떤 user가 한 것인지 userId: integer("user_id") .references(() => users.id, { onDelete: "cascade" }) .notNull(), // 액션(행동) 종류 (예: "status_change", "invite_sent" 등) action: varchar("action", { length: 100 }).notNull(), // 상태가 바뀌는 로그라면, 이전/이후 상태를 기록 oldStatus: varchar("old_status", { length: 30 }), newStatus: varchar("new_status", { length: 30 }), // 기타 필요하면 메시지/설명/메타데이터 등에 대한 컬럼 추가 comment: text("comment"), // 변경 사유나 코멘트 등 createdAt: timestamp("created_at").defaultNow().notNull(), }); export const vendorsLogs = pgTable("vendors_logs", { id: serial("id").primaryKey(), // 어떤 vendor candidate에 대한 로그인지 vendorId: integer("vendor_id") .references(() => vendors.id, { onDelete: "cascade" }) .notNull(), // 어떤 user가 한 것인지 userId: integer("user_id") .references(() => users.id, { onDelete: "cascade" }) .notNull(), // 액션(행동) 종류 (예: "status_change", "invite_sent" 등) action: varchar("action", { length: 100 }).notNull(), // 상태가 바뀌는 로그라면, 이전/이후 상태를 기록 oldStatus: varchar("old_status", { length: 30 }), newStatus: varchar("new_status", { length: 30 }), // 기타 필요하면 메시지/설명/메타데이터 등에 대한 컬럼 추가 comment: text("comment"), // 변경 사유나 코멘트 등 createdAt: timestamp("created_at").defaultNow().notNull(), });