generator client { provider = "prisma-client" output = "../app/generated/prisma" } datasource db { provider = "postgresql" } model User { id String @id @default(cuid()) email String @unique password String name String? role String @default("member") plan String @default("free") createdAt DateTime @default(now()) updatedAt DateTime @updatedAt accounts TrackedAccount[] tiktokToken TikTokToken? } model TikTokToken { id String @id @default(cuid()) userId String @unique user User @relation(fields: [userId], references: [id], onDelete: Cascade) openId String accessToken String refreshToken String expiresAt DateTime createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model TikTokPKCE { id String @id @default(cuid()) state String @unique codeVerifier String userId String createdAt DateTime @default(now()) } model TrackedAccount { id String @id @default(cuid()) platform String username String accountId String userId String user User @relation(fields: [userId], references: [id], onDelete: Cascade) snapshots Snapshot[] createdAt DateTime @default(now()) } model Snapshot { id String @id @default(cuid()) accountId String account TrackedAccount @relation(fields: [accountId], references: [id], onDelete: Cascade) followers Int likes Int @default(0) videoCount Int @default(0) views Int @default(0) createdAt DateTime @default(now()) }