import { pgTable, timestamp, uuid, varchar, text } from 'drizzle-orm/pg-core'; export const users = pgTable('users', { id: uuid('id').defaultRandom().primaryKey(), email: varchar('email', { length: 255 }).notNull().unique(), name: varchar('name', { length: 255 }).notNull(), passwordHash: varchar('password_hash', { length: 255 }).notNull(), createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(), }); export const events = pgTable('events', { id: uuid('id').defaultRandom().primaryKey(), creatorId: uuid('creator_id').references(() => users.id), title: varchar('title', { length: 255 }).notNull(), createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(), videoUrl: varchar('video_url', { length: 255 }).notNull().unique(), }); export const videos = pgTable('videos', { id: uuid('id').defaultRandom().primaryKey(), userId: uuid('user_id').notNull().references(() => users.id), objectKey: varchar('object_key', { length: 1024 }).notNull().unique(), bucket: varchar('bucket', { length: 255 }).notNull(), uploadUrl: text('upload_url').notNull(), downloadUrl: text('download_url'), status: varchar('status', { length: 32 }).notNull().default('pending'), expiresAt: timestamp('expires_at', { withTimezone: true }), createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(), updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(), });