generator client { provider = "prisma-client-js" } datasource db { provider = "sqlite" url = env("DATABASE_URL") } model User { id String @id @unique username String @unique tracks Track[] comments Comment[] auth_session Session[] key Key[] } // Auth Stuff model Session { id String @id @unique user_id String active_expires BigInt idle_expires BigInt user User @relation(references: [id], fields: [user_id], onDelete: Cascade) @@index([user_id]) } model Key { id String @id @unique hashed_password String? user_id String user User @relation(references: [id], fields: [user_id], onDelete: Cascade) @@index([user_id]) } // Application stuff model Track { id Int @id @default(autoincrement()) title String objectKey String versions TrackVersion[] producer User @relation(fields: [producerId], references: [id], onDelete: Cascade) producerId String } model TrackVersion { id Int @id @default(autoincrement()) track Track @relation(fields: [trackId], references: [id], onDelete: Cascade) trackId Int comments Comment[] } model Comment { id Int @id @default(autoincrement()) author User @relation(fields: [authorId], references: [id]) authorId String trackVersion TrackVersion @relation(fields: [trackVersionId], references: [id], onDelete: Cascade) trackVersionId Int }