85 lines
1.7 KiB
Plaintext
85 lines
1.7 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
output = "../generated/prisma"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("POSTGRES_URI")
|
|
}
|
|
|
|
model Movie {
|
|
id String @id @default(uuid())
|
|
|
|
title String
|
|
description String?
|
|
|
|
releaseYear Int @map("release_year")
|
|
rating Float @default(0.0)
|
|
|
|
isAvailabel Boolean @default(false) @map("is_available")
|
|
|
|
genre Genre @default(DRAMMA)
|
|
|
|
poster MoviePoster @relation(fields: [posterId], references: [id])
|
|
posterId String @unique @map("poster_id")
|
|
|
|
reviews Review[] @relation("movie_reviews")
|
|
actors Actor[] @relation("movie_actors")
|
|
|
|
createdAt DateTime @default(now()) @map("created_at")
|
|
updatedAt DateTime @updatedAt @map("updated_at")
|
|
|
|
@@index([releaseYear, title])
|
|
@@map("movies")
|
|
}
|
|
|
|
model MoviePoster {
|
|
id String @id @default(uuid())
|
|
|
|
url String
|
|
|
|
movie Movie? @relation()
|
|
|
|
createdAt DateTime @default(now()) @map("created_at")
|
|
updatedAt DateTime @updatedAt @map("updated_at")
|
|
|
|
@@map("movie_posters")
|
|
}
|
|
|
|
model Review {
|
|
id String @id @default(uuid())
|
|
|
|
text String
|
|
rating Decimal @default(0.0)
|
|
|
|
movie Movie @relation("movie_reviews", fields: [movieId], references: [id], onDelete: Cascade)
|
|
movieId String @map("movie_id")
|
|
|
|
createdAt DateTime @default(now()) @map("created_at")
|
|
updatedAt DateTime @updatedAt @map("updated_at")
|
|
|
|
@@map("reviews")
|
|
}
|
|
|
|
model Actor {
|
|
id String @id @default(uuid())
|
|
|
|
name String
|
|
movies Movie[] @relation("movie_actors")
|
|
|
|
createdAt DateTime @default(now()) @map("created_at")
|
|
updatedAt DateTime @updatedAt @map("updated_at")
|
|
|
|
@@map("actors")
|
|
}
|
|
|
|
enum Genre {
|
|
ACTION
|
|
COMEDY
|
|
DRAMMA
|
|
HORROR
|
|
|
|
@@map("enum_genres")
|
|
}
|