summaryrefslogtreecommitdiff
path: root/db/schema/logs.ts
blob: 1f402e1fd69a6c1573ef122a61d72ecc28e5fc98 (plain)
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(),
  });