generator client { provider = "prisma-client-js" } datasource db { provider = "sqlite" url = env("DATABASE_URL") } model User { id String @id @default(uuid()) email String @unique passwordHash String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt apiKeys ApiKey[] events Event[] journals Journal[] tasks Task[] settings Settings? } model ApiKey { id String @id @default(uuid()) userId String keyHash String @unique name String lastUsedAt DateTime? createdAt DateTime @default(now()) user User @relation(fields: [userId], references: [id], onDelete: Cascade) @@index([userId]) } model Event { id String @id @default(uuid()) userId String date String type String content String mediaPath String? metadata String? latitude Float? longitude Float? placeName String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt user User @relation(fields: [userId], references: [id], onDelete: Cascade) @@index([userId, date]) @@index([date]) } model Journal { id String @id @default(uuid()) userId String date String title String? content String eventCount Int generatedAt DateTime @default(now()) user User @relation(fields: [userId], references: [id], onDelete: Cascade) tasks Task[] @@unique([userId, date]) @@index([userId]) } model Task { id String @id @default(uuid()) userId String journalId String type String @default("journal_generate") status String @default("pending") provider String model String? prompt String request String? response String? error String? title String? createdAt DateTime @default(now()) completedAt DateTime? user User @relation(fields: [userId], references: [id], onDelete: Cascade) journal Journal @relation(fields: [journalId], references: [id], onDelete: Cascade) @@index([userId]) @@index([journalId]) } model Settings { userId String @id aiProvider String @default("groq") aiApiKey String? aiModel String @default("llama-3.3-70b-versatile") aiBaseUrl String? journalPrompt String? language String @default("en") timezone String @default("UTC") providerSettings String? journalContextDays Int @default(10) user User @relation(fields: [userId], references: [id], onDelete: Cascade) }