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;