1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
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(),
});
|