diff options
Diffstat (limited to 'src/server/db/schema/auth.ts')
| -rw-r--r-- | src/server/db/schema/auth.ts | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/server/db/schema/auth.ts b/src/server/db/schema/auth.ts new file mode 100644 index 0000000..5843fdb --- /dev/null +++ b/src/server/db/schema/auth.ts @@ -0,0 +1,55 @@ +import { boolean, text, timestamp } from 'drizzle-orm/pg-core'; +import { pgTableCreator } from 'drizzle-orm/pg-core'; + +const createTable = pgTableCreator((name) => `blog_${name}`); + +export const users = createTable('users', { + id: text('id').primaryKey(), + name: text('name').notNull(), + email: text('email').notNull().unique(), + emailVerified: boolean('email_verified').notNull(), + image: text('image'), + createdAt: timestamp('created_at').notNull(), + updatedAt: timestamp('updated_at').notNull(), + role: text('role').notNull(), +}); + +export const sessions = createTable('sessions', { + id: text('id').primaryKey(), + expiresAt: timestamp('expires_at').notNull(), + token: text('token').notNull().unique(), + createdAt: timestamp('created_at').notNull(), + updatedAt: timestamp('updated_at').notNull(), + ipAddress: text('ip_address'), + userAgent: text('user_agent'), + userId: text('user_id') + .notNull() + .references(() => users.id, { onDelete: 'cascade' }), +}); + +export const accounts = createTable('accounts', { + id: text('id').primaryKey(), + accountId: text('account_id').notNull(), + providerId: text('provider_id').notNull(), + userId: text('user_id') + .notNull() + .references(() => users.id, { onDelete: 'cascade' }), + accessToken: text('access_token'), + refreshToken: text('refresh_token'), + idToken: text('id_token'), + accessTokenExpiresAt: timestamp('access_token_expires_at'), + refreshTokenExpiresAt: timestamp('refresh_token_expires_at'), + scope: text('scope'), + password: text('password'), + createdAt: timestamp('created_at').notNull(), + updatedAt: timestamp('updated_at').notNull(), +}); + +export const verifications = createTable('verifications', { + id: text('id').primaryKey(), + identifier: text('identifier').notNull(), + value: text('value').notNull(), + expiresAt: timestamp('expires_at').notNull(), + createdAt: timestamp('created_at'), + updatedAt: timestamp('updated_at'), +}); |
