🗃️ db: add genres and related entities

This commit is contained in:
2026-05-15 21:00:00 +07:00
parent 1dd0bcd811
commit 27d772ec6b

View File

@ -251,10 +251,10 @@ model Media {
producers MediaProducer[] producers MediaProducer[]
licensors MediaLicensor[] licensors MediaLicensor[]
studios MediaStudio[] studios MediaStudio[]
// genres MediaGenre[] genres MediaGenre[]
// explicit_genres MediaExplicitGenre[] explicit_genres MediaExplicitGenre[]
// themes MediaTheme[] themes MediaTheme[]
// demographics MediaDemographic[] demographics MediaDemographic[]
// relations MediaRelation[] // relations MediaRelation[]
// external_links MediaExternalLink[] // external_links MediaExternalLink[]
// characters MediaCharacter[] // characters MediaCharacter[]
@ -366,6 +366,60 @@ model Producer {
@@map("producers") @@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")
}
/** /**