refactor-db #33
@ -91,6 +91,13 @@ enum privacy_level {
|
|||||||
private
|
private
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum collection_access_level {
|
||||||
|
owner
|
||||||
|
moderator
|
||||||
|
contributor
|
||||||
|
viewer
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -142,6 +149,9 @@ model User {
|
|||||||
comment_reports CommentReport[]
|
comment_reports CommentReport[]
|
||||||
home_media_banners HomeMediaBanner[]
|
home_media_banners HomeMediaBanner[]
|
||||||
watch_histories UserWatchHistory[]
|
watch_histories UserWatchHistory[]
|
||||||
|
saved_collections CollectionMember[] @relation("CollectionMemberUser")
|
||||||
|
invited_collections CollectionMember[] @relation("CollectionMemberInviter")
|
||||||
|
contributed_collections MediaCollection[] @relation("MediaCollectionAdder")
|
||||||
@@index([email])
|
@@index([email])
|
||||||
@@index([username])
|
@@index([username])
|
||||||
@@map("users")
|
@@map("users")
|
||||||
@ -281,9 +291,26 @@ model Collection {
|
|||||||
privacy privacy_level @default(private)
|
privacy privacy_level @default(private)
|
||||||
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()
|
||||||
|
|
||||||
|
saved_media MediaCollection[]
|
||||||
|
members CollectionMember[]
|
||||||
@@map("collections")
|
@@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")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -346,6 +373,7 @@ model Media {
|
|||||||
updated_by_id String? @db.Uuid
|
updated_by_id String? @db.Uuid
|
||||||
deleted_by_id String? @db.Uuid
|
deleted_by_id String? @db.Uuid
|
||||||
home_media_banners HomeMediaBanner[]
|
home_media_banners HomeMediaBanner[]
|
||||||
|
saved_to_collections MediaCollection[]
|
||||||
@@map("medias")
|
@@map("medias")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -365,6 +393,19 @@ model MediaSubmission {
|
|||||||
@@map("media_submissions")
|
@@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 {
|
model MediaTrailer {
|
||||||
media_id String @id @db.Uuid
|
media_id String @id @db.Uuid
|
||||||
url String? @db.VarChar(255)
|
url String? @db.VarChar(255)
|
||||||
|
|||||||
Reference in New Issue
Block a user