🗃️ db: redesign collection schema with manual pivot table to media

This commit is contained in:
2026-03-29 10:43:20 +07:00
parent 3768ae4c26
commit f1e79945b0
3 changed files with 71 additions and 11 deletions

View File

@ -49,11 +49,11 @@ model Media {
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
bannerPromotion HeroBanner[] @relation("MediaBannerPromotion")
logs MediaLog[] @relation("MediaLogs")
episodes Episode[] @relation("MediaEpisodes")
collections Collection[] @relation("MediaCollections")
reviews MediaReview[] @relation("MediaReviews")
bannerPromotion HeroBanner[] @relation("MediaBannerPromotion")
logs MediaLog[] @relation("MediaLogs")
episodes Episode[] @relation("MediaEpisodes")
reviews MediaReview[] @relation("MediaReviews")
inCollections CollectionMedia[] @relation("CollectionMedia")
@@index([status, onDraft, deletedAt])
@@index([mediaType])
@ -420,7 +420,6 @@ model Collection {
id String @id @db.Uuid
name String @db.VarChar(115)
slug String @db.VarChar(115)
medias Media[] @relation("MediaCollections")
owner User @relation("UserCollections", fields: [ownerId], references: [id])
ownerId String @db.Uuid
accessStatus AccessStatus @default(private)
@ -431,10 +430,21 @@ model Collection {
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
media_saved CollectionMedia[] @relation("CollectionMedia")
@@unique([slug, ownerId])
@@map("collections")
}
model CollectionMedia {
id String @id @db.Uuid
collection Collection @relation("CollectionMedia", fields: [collectionId], references: [id])
collectionId String @db.Uuid
media Media @relation("CollectionMedia", fields: [mediaId], references: [id])
mediaId String @db.Uuid
savedAt DateTime @default(now())
@@unique([collectionId, mediaId])
}
model WatchHistory {
id String @id @db.Uuid
episode Episode @relation("EpisodeWatchHistories", fields: [id], references: [id])