feat: add sessions schema with Drizzle ORM integration

This commit is contained in:
Mathis HERRIOT
2026-01-05 14:15:13 +01:00
parent 04ca5090df
commit 7001082fb2

View File

@@ -0,0 +1,18 @@
import { pgTable, varchar, timestamp, uuid, index, boolean } from 'drizzle-orm/pg-core';
import { users } from './users';
export const sessions = pgTable('sessions', {
id: uuid('id').primaryKey().defaultRandom(),
userId: uuid('user_id').notNull().references(() => users.uuid, { onDelete: 'cascade' }),
refreshToken: varchar('refresh_token', { length: 512 }).notNull().unique(),
userAgent: varchar('user_agent', { length: 255 }),
ipHash: varchar('ip_hash', { length: 64 }), // IP hachée pour la protection de la vie privée (RGPD)
isValid: boolean('is_valid').notNull().default(true),
expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
}, (table) => ({
userIdIdx: index('sessions_user_id_idx').on(table.userId),
refreshTokenIdx: index('sessions_refresh_token_idx').on(table.refreshToken),
expiresAtIdx: index('sessions_expires_at_idx').on(table.expiresAt),
}));