summaryrefslogtreecommitdiff
path: root/src/server/db/schema/auth.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/db/schema/auth.ts')
-rw-r--r--src/server/db/schema/auth.ts55
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'),
+});