import { pgTable, uuid, varchar, timestamp } from 'drizzle-orm/pg-core'; import { users } from './users.js'; export const sessions = pgTable('sessions', { id: uuid('id').primaryKey().defaultRandom(), userId: uuid('user_id') .notNull() .references(() => users.id, { onDelete: 'cascade' }), refreshTokenHash: varchar('refresh_token_hash', { length: 255 }).notNull(), userAgent: varchar('user_agent', { length: 500 }), ipAddress: varchar('ip_address', { length: 45 }), lastActiveAt: timestamp('last_active_at', { withTimezone: true }).notNull().defaultNow(), expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(), createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(), }); export type Session = typeof sessions.$inferSelect; export type NewSession = typeof sessions.$inferInsert;