db: change id in episode model to composite

This commit is contained in:
2026-07-02 11:33:48 +07:00
parent 7a63b43c9f
commit 7387386aee

View File

@ -279,13 +279,14 @@ model UserFollow {
model UserWatchHistory { model UserWatchHistory {
user User @relation(fields: [user_id], references: [id]) user User @relation(fields: [user_id], references: [id])
episode Episode @relation(fields: [episode_id], references: [id]) episode Episode @relation(fields: [episode_number, media_id], references: [episode_number, media_id])
updated_at DateTime @updatedAt @db.Timestamptz() updated_at DateTime @updatedAt @db.Timestamptz()
user_id String @db.Uuid user_id String @db.Uuid
episode_id String @db.Uuid episode_number Int @db.SmallInt
media_id String @db.Uuid
@@id([user_id, episode_id]) @@id([user_id, episode_number, media_id])
@@map("user_watch_histories") @@map("user_watch_histories")
} }
@ -376,6 +377,7 @@ model Media {
related_media MediaRelation[] @relation("MediaRelationRelatedMedia") related_media MediaRelation[] @relation("MediaRelationRelatedMedia")
updated_by_id String? @db.Uuid updated_by_id String? @db.Uuid
deleted_by_id String? @db.Uuid deleted_by_id String? @db.Uuid
episodes Episode[]
home_media_banners HomeMediaBanner[] home_media_banners HomeMediaBanner[]
saved_to_collections MediaCollection[] saved_to_collections MediaCollection[]
@ -640,8 +642,8 @@ model VoiceActor {
character_id String @db.Uuid character_id String @db.Uuid
media_character MediaCharacter @relation(fields: [media_id, character_id], references: [media_id, character_id]) media_character MediaCharacter @relation(fields: [media_id, character_id], references: [media_id, character_id])
@@map("voice_actors")
@@unique([media_id, character_id, staff_id, language]) @@unique([media_id, character_id, staff_id, language])
@@map("voice_actors")
} }
model Staff { model Staff {
@ -659,37 +661,37 @@ model Staff {
} }
model Episode { model Episode {
id String @id @default(uuid(7)) @db.Uuid episode_number Int @db.SmallInt
media_id String @db.Uuid mal_url String? @db.VarChar(255)
episode Int @db.SmallInt forum_url String? @db.VarChar(255)
mal_url String? @db.VarChar(255) title String @db.VarChar(155)
forum_url String? @db.VarChar(255) title_origin String? @db.VarChar(155)
title String @db.VarChar(155) title_romanji String? @db.VarChar(155)
title_origin String? @db.VarChar(155) aired_at DateTime? @db.Date
title_romanji String? @db.VarChar(155) filler Boolean
aired_at DateTime? @db.Date recap Boolean
filler Boolean total_score Int @default(0)
recap Boolean score_count Int @default(0)
total_score Int @default(0) deleted_at DateTime? @db.Timestamptz()
score_count Int @default(0) updated_at DateTime @updatedAt @db.Timestamptz()
deleted_at DateTime? @db.Timestamptz() created_at DateTime @default(now()) @db.Timestamptz()
updated_at DateTime @updatedAt @db.Timestamptz() created_by User @relation(fields: [created_by_id], references: [id])
created_at DateTime @default(now()) @db.Timestamptz()
created_by User @relation(fields: [created_by_id], references: [id])
videos Video[] videos Video[]
created_by_id String @db.Uuid created_by_id String @db.Uuid
comments Comment[] comments Comment[]
watch_histories UserWatchHistory[] watch_histories UserWatchHistory[]
media Media @relation(fields: [media_id], references: [id])
media_id String @db.Uuid
@@index([media_id, episode]) @@id([media_id, episode_number])
@@map("episodes") @@map("episodes")
} }
model Video { model Video {
id String @id @default(uuid(7)) @db.Uuid id String @id @default(uuid(7)) @db.Uuid
service VideoService[] service VideoService[]
Episode Episode @relation(fields: [episode_id], references: [id]) episode Episode @relation(fields: [episode_number, media_id], references: [episode_number, media_id])
video_code String @db.VarChar(255) video_code String @db.VarChar(255)
short_code String? @db.VarChar(255) short_code String? @db.VarChar(255)
thumbnail_code String? @db.VarChar(255) thumbnail_code String? @db.VarChar(255)
@ -698,7 +700,8 @@ model Video {
deleted_at DateTime? @db.Timestamptz() deleted_at DateTime? @db.Timestamptz()
updated_at DateTime @updatedAt @db.Timestamptz() updated_at DateTime @updatedAt @db.Timestamptz()
episode_id String @db.Uuid episode_number Int @db.SmallInt
media_id String @db.Uuid
created_by_id String @db.Uuid created_by_id String @db.Uuid
video_submission VideoSubmission? video_submission VideoSubmission?
@ -762,17 +765,18 @@ model VideoServiceSubmission {
model Comment { model Comment {
id String @id @default(uuid(7)) @db.Uuid id String @id @default(uuid(7)) @db.Uuid
user User @relation(fields: [user_id], references: [id]) user User @relation(fields: [user_id], references: [id])
episode Episode @relation(fields: [episode_id], references: [id]) episode Episode @relation(fields: [episode_number, media_id], references: [episode_number, media_id])
content String @db.Text content String @db.Text
created_at DateTime @default(now()) @db.Timestamptz() created_at DateTime @default(now()) @db.Timestamptz()
updated_at DateTime @updatedAt @db.Timestamptz() updated_at DateTime @updatedAt @db.Timestamptz()
deleted_at DateTime? @db.Timestamptz() deleted_at DateTime? @db.Timestamptz()
user_id String @db.Uuid user_id String @db.Uuid
episode_id String @db.Uuid episode_number Int @db.SmallInt
likes CommentLike[] media_id String @db.Uuid
audit_logs CommentAuditLog[] likes CommentLike[]
reports CommentReport[] audit_logs CommentAuditLog[]
reports CommentReport[]
@@map("comments") @@map("comments")
} }