From 27d772ec6bb51d6a796523edabea3cff0cce3e41 Mon Sep 17 00:00:00 2001 From: Rafi Arrafif Date: Fri, 15 May 2026 21:00:00 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20db:=20add=20genres=20an?= =?UTF-8?q?d=20related=20entities?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prisma/schema.prisma | 62 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index a365505..2b29399 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -251,10 +251,10 @@ model Media { producers MediaProducer[] licensors MediaLicensor[] studios MediaStudio[] - // genres MediaGenre[] - // explicit_genres MediaExplicitGenre[] - // themes MediaTheme[] - // demographics MediaDemographic[] + genres MediaGenre[] + explicit_genres MediaExplicitGenre[] + themes MediaTheme[] + demographics MediaDemographic[] // relations MediaRelation[] // external_links MediaExternalLink[] // characters MediaCharacter[] @@ -366,6 +366,60 @@ model Producer { @@map("producers") } +model MediaGenre { + media Media @relation(fields: [media_id], references: [id]) + genre Genre @relation(fields: [genre_id], references: [id]) + + media_id String @db.Uuid + genre_id String @db.Uuid + @@id([media_id, genre_id]) + @@map("media_genres") +} + +model MediaExplicitGenre { + media Media @relation(fields: [media_id], references: [id]) + genre Genre @relation(fields: [genre_id], references: [id]) + + media_id String @db.Uuid + genre_id String @db.Uuid + @@id([media_id, genre_id]) + @@map("media_explicit_genres") +} + +model MediaTheme { + media Media @relation(fields: [media_id], references: [id]) + theme Genre @relation(fields: [genre_id], references: [id]) + + media_id String @db.Uuid + genre_id String @db.Uuid + @@id([media_id, genre_id]) + @@map("media_themes") +} + +model MediaDemographic { + media Media @relation(fields: [media_id], references: [id]) + demographic Genre @relation(fields: [demographic_id], references: [id]) + + media_id String @db.Uuid + demographic_id String @db.Uuid + @@id([media_id, demographic_id]) + @@map("media_demographics") +} + +model Genre { + id String @id @db.Uuid @default(uuid(7)) + mal_id Int @unique @db.SmallInt + name String @db.VarChar(100) + slug String @db.VarChar(115) + thumbnail_url String? @db.VarChar(255) + + media_genres MediaGenre[] + media_explicit_genres MediaExplicitGenre[] + media_themes MediaTheme[] + media_demographics MediaDemographic[] + @@map("genres") +} + /**