datasource db { provider = "sqlite" } generator client { provider = "prisma-client-js" } model Account { id String @id @default(cuid()) userId String type String provider String providerAccountId String refresh_token String? access_token String? expires_at Int? token_type String? scope String? id_token String? session_state String? user User @relation(fields: [userId], references: [id], onDelete: Cascade) @@unique([provider, providerAccountId]) } model Session { id String @id @default(cuid()) sessionToken String @unique userId String expires DateTime user User @relation(fields: [userId], references: [id], onDelete: Cascade) } model User { id String @id @default(cuid()) name String? email String? @unique emailVerified DateTime? image String? credits Int @default(50) customApiKey String? hfUsername String? createdAt DateTime @default(now()) accounts Account[] sessions Session[] chats Chat[] images UserImage[] creations Creation[] } model UserImage { id String @id @default(cuid()) userId String url String hfRepo String? hfPath String? createdAt DateTime @default(now()) user User @relation(fields: [userId], references: [id], onDelete: Cascade) @@index([userId]) } model Character { id String @id @default(cuid()) name String avatar String profileUrl String? description String personality String systemPrompt String greeting String isCustom Boolean @default(true) isPublic Boolean @default(true) userId String? createdAt DateTime @default(now()) chats Chat[] @@index([isPublic]) @@index([userId]) } model Chat { id String @id @default(cuid()) characterId String userId String createdAt DateTime @default(now()) character Character @relation(fields: [characterId], references: [id], onDelete: Cascade) user User @relation(fields: [userId], references: [id], onDelete: Cascade) messages Message[] @@index([userId]) @@index([characterId]) } model Message { id String @id @default(cuid()) chatId String role String content String imageUrl String? model String? promptTokens Int? completionTokens Int? createdAt DateTime @default(now()) chat Chat @relation(fields: [chatId], references: [id], onDelete: Cascade) @@index([chatId]) } model Creation { id String @id @default(cuid()) prompt String? imageUrl String? aspectRatio String? resolution String? createdAt DateTime @default(now()) userId String requestId String? @unique status String @default("processing") error String? duration String? inputImages String? mode String? modelId String? title String? type String? url String? user User @relation(fields: [userId], references: [id], onDelete: Cascade) } model VerificationToken { identifier String token String @unique expires DateTime @@unique([identifier, token]) }