frontend/prisma/schema.prisma
2023-04-20 20:37:55 +02:00

101 lines
2.1 KiB
Plaintext

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgres"
url = "postgresql://postgres:b359a3f0b1129da7@141.147.61.193:3021/postgres"
}
model Song {
id String @id @default(uuid())
name String
image String
hasMultipleNELs Boolean
neuralEffectLevel Float
instrumentations String[]
genre Genre @relation(fields: [genreId], references: [id])
genreId String
complexityDisplayValue ComplexityLevel
neuralEffectLevelDisplayValue NELevel
usersFavorited AuthUser? @relation(fields: [usersFavoritedId], references: [id])
usersFavoritedId String?
}
model MentalState {
id String @id @default(uuid())
name String
genres Genre[]
}
model Genre {
id String @id @default(uuid())
name String
mentalState MentalState[]
isNature Boolean
activities Activity[]
Song Song[]
}
model Activity {
id String @id @default(uuid())
name String
genre Genre @relation(fields: [genreId], references: [id])
genreId String
}
model AuthUser {
id String @id @unique
name String
username String @unique
favorites Song[]
auth_session AuthSession[]
auth_key AuthKey[]
@@map("auth_user")
}
model AuthSession {
id String @id @unique
user_id String
active_expires BigInt
idle_expires BigInt
auth_user AuthUser @relation(references: [id], fields: [user_id], onDelete: Cascade)
@@index([user_id])
@@map("auth_session")
}
model AuthKey {
id String @id @unique
hashed_password String?
user_id String
primary_key Boolean
expires BigInt?
auth_user AuthUser @relation(references: [id], fields: [user_id], onDelete: Cascade)
@@index([user_id])
@@map("auth_key")
}
enum ComplexityLevel {
Low
Medium
High
}
enum NELevel {
Low
Medium
High
}