2023-11-19 13:15:37 +00:00
|
|
|
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 {
|
2023-11-20 01:19:45 +00:00
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
title String
|
|
|
|
objectKey String
|
2023-11-19 22:19:19 +00:00
|
|
|
|
2023-11-20 01:19:45 +00:00
|
|
|
producer User @relation(fields: [producerId], references: [id], onDelete: Cascade)
|
2023-11-19 13:15:37 +00:00
|
|
|
producerId String
|
2023-11-19 22:19:19 +00:00
|
|
|
|
2023-11-20 01:19:45 +00:00
|
|
|
versions TrackVersion[]
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
updatedAt DateTime @updatedAt
|
2023-11-19 13:15:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
model TrackVersion {
|
2023-11-20 01:19:45 +00:00
|
|
|
id Int @id @default(autoincrement())
|
2023-11-19 22:19:19 +00:00
|
|
|
|
2023-11-20 01:19:45 +00:00
|
|
|
track Track @relation(fields: [trackId], references: [id], onDelete: Cascade)
|
|
|
|
trackId Int
|
2023-11-19 22:19:19 +00:00
|
|
|
|
2023-11-20 01:19:45 +00:00
|
|
|
comments Comment[]
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
updatedAt DateTime @updatedAt
|
2023-11-19 13:15:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
model Comment {
|
2023-11-20 01:19:45 +00:00
|
|
|
id Int @id @default(autoincrement())
|
|
|
|
content String
|
2023-11-19 22:19:19 +00:00
|
|
|
|
2023-11-20 01:19:45 +00:00
|
|
|
author User @relation(fields: [authorId], references: [id])
|
|
|
|
authorId String
|
2023-11-19 22:19:19 +00:00
|
|
|
|
2023-11-19 13:15:37 +00:00
|
|
|
trackVersion TrackVersion @relation(fields: [trackVersionId], references: [id], onDelete: Cascade)
|
|
|
|
trackVersionId Int
|
2023-11-20 01:19:45 +00:00
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
updatedAt DateTime @updatedAt
|
2023-11-19 13:15:37 +00:00
|
|
|
}
|