generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") directUrl = env("DIRECT_DATABASE_URL") } model User { id String @id @default(uuid()) email String @unique passwordHash String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt refreshTokens RefreshToken[] passwordResetTokens PasswordResetToken[] @@index([email]) } model RefreshToken { id String @id @default(uuid()) userId String tokenHash String @unique expiresAt DateTime revokedAt DateTime? replacedById String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt user User @relation(fields: [userId], references: [id], onDelete: Cascade) replacedBy RefreshToken? @relation("RefreshRotation", fields: [replacedById], references: [id]) replaces RefreshToken[] @relation("RefreshRotation") @@index([userId]) @@index([expiresAt]) } model PasswordResetToken { id String @id @default(uuid()) userId String tokenHash String @unique expiresAt DateTime usedAt DateTime? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt user User @relation(fields: [userId], references: [id], onDelete: Cascade) @@index([userId]) @@index([expiresAt]) }