Compare commits
2 Commits
03acd7be29
...
e07d9cfa87
| Author | SHA1 | Date | |
|---|---|---|---|
| e07d9cfa87 | |||
| 8cb63e0e36 |
@ -85,6 +85,19 @@ enum audit_action {
|
||||
flag
|
||||
}
|
||||
|
||||
enum privacy_level {
|
||||
public
|
||||
unlisted
|
||||
private
|
||||
}
|
||||
|
||||
enum collection_access_level {
|
||||
owner
|
||||
moderator
|
||||
contributor
|
||||
viewer
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@ -134,6 +147,11 @@ model User {
|
||||
comment_likes CommentLike[]
|
||||
comment_audit_logs CommentAuditLog[]
|
||||
comment_reports CommentReport[]
|
||||
home_media_banners HomeMediaBanner[]
|
||||
watch_histories UserWatchHistory[]
|
||||
saved_collections CollectionMember[] @relation("CollectionMemberUser")
|
||||
invited_collections CollectionMember[] @relation("CollectionMemberInviter")
|
||||
contributed_collections MediaCollection[] @relation("MediaCollectionAdder")
|
||||
@@index([email])
|
||||
@@index([username])
|
||||
@@map("users")
|
||||
@ -187,7 +205,7 @@ model UserSession {
|
||||
}
|
||||
|
||||
model UserPreference {
|
||||
user_id String @id @db.Uuid
|
||||
user User @relation(fields: [user_id], references: [id])
|
||||
char_as_partner Character @relation(fields: [char_as_partner_id], references: [id])
|
||||
comment_picture String? @db.VarChar(255)
|
||||
enable_watch_history Boolean @default(true)
|
||||
@ -205,7 +223,7 @@ model UserPreference {
|
||||
rating_preferences UserRatingPreference[]
|
||||
country_preferences UserCountryPreference[]
|
||||
|
||||
user User @relation(fields: [user_id], references: [id])
|
||||
user_id String @id @db.Uuid
|
||||
char_as_partner_id String @db.Uuid
|
||||
@@map("user_preferences")
|
||||
}
|
||||
@ -248,12 +266,51 @@ model UserFollow {
|
||||
following User @relation("UserFollowFollowing", fields: [following_id], references: [id])
|
||||
created_at DateTime @default(now()) @db.Timestamptz()
|
||||
|
||||
follower_id String @db.Uuid
|
||||
following_id String @db.Uuid
|
||||
follower_id String @db.Uuid
|
||||
following_id String @db.Uuid
|
||||
@@id([follower_id, following_id])
|
||||
@@map("user_follows")
|
||||
}
|
||||
|
||||
model UserWatchHistory {
|
||||
user User @relation(fields: [user_id], references: [id])
|
||||
episode Episode @relation(fields: [episode_id], references: [id])
|
||||
updated_at DateTime @updatedAt @db.Timestamptz()
|
||||
|
||||
user_id String @db.Uuid
|
||||
episode_id String @db.Uuid
|
||||
@@id([user_id, episode_id])
|
||||
@@map("user_watch_histories")
|
||||
}
|
||||
|
||||
model Collection {
|
||||
id String @id @db.Uuid @default(uuid(7))
|
||||
name String @db.VarChar(64)
|
||||
code String? @db.VarChar(12)
|
||||
cover_url String? @db.VarChar(255)
|
||||
privacy privacy_level @default(private)
|
||||
created_at DateTime @default(now()) @db.Timestamptz()
|
||||
updated_at DateTime @updatedAt @db.Timestamptz()
|
||||
|
||||
saved_media MediaCollection[]
|
||||
members CollectionMember[]
|
||||
@@map("collections")
|
||||
}
|
||||
|
||||
model CollectionMember {
|
||||
collection Collection @relation(fields: [collection_id], references: [id])
|
||||
user User @relation(fields: [user_id], references: [id], name: "CollectionMemberUser")
|
||||
access_level collection_access_level
|
||||
invited_by User? @relation(fields: [invited_by_id], references: [id], name: "CollectionMemberInviter")
|
||||
invited_at DateTime? @db.Timestamptz()
|
||||
|
||||
collection_id String @db.Uuid
|
||||
user_id String @db.Uuid
|
||||
invited_by_id String? @db.Uuid
|
||||
@@id([collection_id, user_id])
|
||||
@@map("collection_members")
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@ -315,6 +372,8 @@ model Media {
|
||||
created_by_id String? @db.Uuid
|
||||
updated_by_id String? @db.Uuid
|
||||
deleted_by_id String? @db.Uuid
|
||||
home_media_banners HomeMediaBanner[]
|
||||
saved_to_collections MediaCollection[]
|
||||
@@map("medias")
|
||||
}
|
||||
|
||||
@ -334,6 +393,19 @@ model MediaSubmission {
|
||||
@@map("media_submissions")
|
||||
}
|
||||
|
||||
model MediaCollection {
|
||||
media Media @relation(fields: [media_id], references: [id])
|
||||
collection Collection @relation(fields: [collection_id], references: [id])
|
||||
added_by User @relation(fields: [added_by_id], references: [id], name: "MediaCollectionAdder")
|
||||
added_at DateTime @default(now()) @db.Timestamptz()
|
||||
|
||||
media_id String @db.Uuid
|
||||
collection_id String @db.Uuid
|
||||
added_by_id String @db.Uuid
|
||||
@@id([media_id, collection_id])
|
||||
@@map("media_collections")
|
||||
}
|
||||
|
||||
model MediaTrailer {
|
||||
media_id String @id @db.Uuid
|
||||
url String? @db.VarChar(255)
|
||||
@ -579,6 +651,7 @@ model Episode {
|
||||
videos Video[]
|
||||
created_by_id String @db.Uuid
|
||||
comments Comment[]
|
||||
watch_histories UserWatchHistory[]
|
||||
@@index([media_id, episode])
|
||||
@@map("episodes")
|
||||
}
|
||||
@ -740,3 +813,17 @@ model Country {
|
||||
Media Media[]
|
||||
@@map("countries")
|
||||
}
|
||||
|
||||
model HomeMediaBanner {
|
||||
id String @id @db.Uuid @default(uuid(7))
|
||||
media Media @relation(fields: [media_id], references: [id])
|
||||
created_by User @relation(fields: [created_by_id], references: [id])
|
||||
priority Int @db.SmallInt @unique
|
||||
start_show DateTime @db.Date
|
||||
end_show DateTime @db.Date
|
||||
created_at DateTime @default(now()) @db.Timestamptz()
|
||||
|
||||
media_id String @db.Uuid
|
||||
created_by_id String @db.Uuid
|
||||
@@map("home_media_banners")
|
||||
}
|
||||
Reference in New Issue
Block a user