pkgs/db/src/schemas/users.ts (view raw)
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 |
import * as s from "drizzle-orm/sqlite-core";
export const users = s.sqliteTable("users", {
id: s.integer("id").primaryKey({ autoIncrement: true }),
discordId: s.text("discord_id").unique(),
displayName: s.text("display_name"),
username: s.text("username"),
avatar: s.text("avatar"),
createdAt: s.integer("created_at", { mode: "timestamp" }).notNull(),
updatedAt: s.integer("updated_at", { mode: "timestamp" }).notNull(),
});
export const sessions = s.sqliteTable("sessions", {
id: s.text("id").primaryKey(),
userId: s
.integer("user_id")
.notNull()
.references(() => users.id, { onDelete: "cascade" }),
accessToken: s.text("access_token").notNull(),
refreshToken: s.text("refresh_token").notNull(),
scope: s.text("scope"),
tokenType: s.text("token_type"),
expiresAt: s.integer("expires_at", { mode: "timestamp" }).notNull(),
createdAt: s.integer("created_at", { mode: "timestamp" }).notNull(),
});
export type User = typeof users.$inferSelect;
export type NewUser = typeof users.$inferInsert;
export type Session = typeof sessions.$inferSelect;
export type NewSession = typeof sessions.$inferInsert;
|