22 lines
1.0 KiB
TypeScript
22 lines
1.0 KiB
TypeScript
import { pgTable, uuid, varchar, timestamp, boolean } from 'drizzle-orm/pg-core';
|
|
import { userRoleEnum, selfLevelEnum } from './enums.js';
|
|
|
|
export const users = pgTable('users', {
|
|
id: uuid('id').primaryKey().defaultRandom(),
|
|
email: varchar('email', { length: 255 }).notNull().unique(),
|
|
passwordHash: varchar('password_hash', { length: 255 }).notNull(),
|
|
nickname: varchar('nickname', { length: 30 }).notNull(),
|
|
avatarUrl: varchar('avatar_url', { length: 500 }),
|
|
country: varchar('country', { length: 100 }),
|
|
city: varchar('city', { length: 100 }),
|
|
selfLevel: selfLevelEnum('self_level'),
|
|
isPublic: boolean('is_public').notNull().default(true),
|
|
role: userRoleEnum('role').notNull().default('free'),
|
|
emailVerifiedAt: timestamp('email_verified_at', { withTimezone: true }),
|
|
createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
|
|
updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
|
|
});
|
|
|
|
export type User = typeof users.$inferSelect;
|
|
export type NewUser = typeof users.$inferInsert;
|