2024-05-25 06:02:26 +00:00
|
|
|
import { relations } from 'drizzle-orm';
|
2024-06-26 17:15:38 +00:00
|
|
|
import { citext, timestamps } from '../utils';
|
|
|
|
|
import { createId } from '@paralleldrive/cuid2';
|
2024-05-25 06:02:26 +00:00
|
|
|
import { sessionsTable } from './sessions.table';
|
2024-06-26 17:15:38 +00:00
|
|
|
import { boolean, pgTable, text } from 'drizzle-orm/pg-core';
|
|
|
|
|
import { emailVerificationsTable } from './email-verifications.table';
|
2024-05-25 06:02:26 +00:00
|
|
|
|
|
|
|
|
export const usersTable = pgTable('users', {
|
|
|
|
|
id: text('id')
|
|
|
|
|
.primaryKey()
|
|
|
|
|
.$defaultFn(() => createId()),
|
|
|
|
|
avatar: text('avatar'),
|
|
|
|
|
email: citext('email').notNull().unique(),
|
|
|
|
|
verified: boolean('verified').notNull().default(false),
|
|
|
|
|
...timestamps
|
|
|
|
|
});
|
|
|
|
|
|
2024-06-26 17:15:38 +00:00
|
|
|
export const usersRelations = relations(usersTable, ({ many, one }) => ({
|
2024-05-25 06:02:26 +00:00
|
|
|
sessions: many(sessionsTable),
|
2024-06-26 17:15:38 +00:00
|
|
|
emailVerifications: one(emailVerificationsTable, {
|
|
|
|
|
fields: [usersTable.id],
|
|
|
|
|
references: [emailVerificationsTable.userId]
|
|
|
|
|
})
|
2024-05-25 06:02:26 +00:00
|
|
|
}));
|