larsen/plice/prisma/schema.prisma

86 lines
1.8 KiB
Text
Raw Permalink Normal View History

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[]
2023-11-20 15:08:30 +00:00
@@index([username])
2023-11-19 13:15:37 +00:00
}
// 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
2023-11-19 22:19:19 +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
versions TrackVersion[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
2023-11-20 15:12:24 +00:00
@@index([producerId])
2023-11-19 13:15:37 +00:00
}
model TrackVersion {
2024-02-10 03:43:36 +00:00
id String @id @default(uuid())
2023-11-19 22:19:19 +00:00
track Track @relation(fields: [trackId], references: [id], onDelete: Cascade)
trackId Int
2023-11-19 22:19:19 +00:00
comments Comment[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
2023-11-20 15:12:24 +00:00
@@index([trackId])
2023-11-19 13:15:37 +00:00
}
model Comment {
id Int @id @default(autoincrement())
content String
2023-11-19 22:19:19 +00:00
author User @relation(fields: [authorId], references: [id], onDelete: Cascade)
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)
2024-02-10 03:43:36 +00:00
trackVersionId String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
2023-11-20 15:12:24 +00:00
@@index([authorId, trackVersionId])
2023-11-19 13:15:37 +00:00
}