19 lines
846 B
TypeScript
19 lines
846 B
TypeScript
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;
|