// 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 }