20 lines
864 B
TypeScript
20 lines
864 B
TypeScript
import { pgTable, uuid, text, timestamp, index, uniqueIndex } from "drizzle-orm/pg-core";
|
|
import { authUsers } from "./auth.js";
|
|
|
|
export const boardApiKeys = pgTable(
|
|
"board_api_keys",
|
|
{
|
|
id: uuid("id").primaryKey().defaultRandom(),
|
|
userId: text("user_id").notNull().references(() => authUsers.id, { onDelete: "cascade" }),
|
|
name: text("name").notNull(),
|
|
keyHash: text("key_hash").notNull(),
|
|
lastUsedAt: timestamp("last_used_at", { withTimezone: true }),
|
|
revokedAt: timestamp("revoked_at", { withTimezone: true }),
|
|
expiresAt: timestamp("expires_at", { withTimezone: true }),
|
|
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
},
|
|
(table) => ({
|
|
keyHashIdx: uniqueIndex("board_api_keys_key_hash_idx").on(table.keyHash),
|
|
userIdx: index("board_api_keys_user_idx").on(table.userId),
|
|
}),
|
|
);
|