💥 breaking: remove old prisma schema for new database structure
This commit is contained in:
@ -9,733 +9,3 @@ generator dbml {
|
|||||||
datasource db {
|
datasource db {
|
||||||
provider = "postgresql"
|
provider = "postgresql"
|
||||||
}
|
}
|
||||||
|
|
||||||
model Media {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
title String
|
|
||||||
titleAlternative Json
|
|
||||||
slug String @unique
|
|
||||||
malId Int? @unique
|
|
||||||
pictureMedium String
|
|
||||||
pictureLarge String
|
|
||||||
country Country @default(JP)
|
|
||||||
score Decimal @default(0.00) @db.Decimal(4, 2)
|
|
||||||
status String
|
|
||||||
startAiring DateTime?
|
|
||||||
endAiring DateTime?
|
|
||||||
synopsis String
|
|
||||||
ageRating String
|
|
||||||
mediaType MediaType
|
|
||||||
source String?
|
|
||||||
onDraft Boolean @default(true)
|
|
||||||
season Season?
|
|
||||||
yearReleased Int @db.SmallInt
|
|
||||||
uploadedBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
inCollections CollectionMedia[] @relation("CollectionMedia")
|
|
||||||
episodes Episode[] @relation("MediaEpisodes")
|
|
||||||
bannerPromotion HeroBanner[] @relation("MediaBannerPromotion")
|
|
||||||
logs MediaLog[] @relation("MediaLogs")
|
|
||||||
uploader User @relation("UserUploadedMedias", fields: [uploadedBy], references: [id])
|
|
||||||
reviews MediaReview[] @relation("MediaReviews")
|
|
||||||
characters Character[] @relation("MediaCharacters")
|
|
||||||
genres Genre[] @relation("MediaGenres")
|
|
||||||
studios Studio[] @relation("MediaStudios")
|
|
||||||
|
|
||||||
@@index([status, onDraft, deletedAt])
|
|
||||||
@@index([mediaType])
|
|
||||||
@@index([uploadedBy])
|
|
||||||
@@index([createdAt])
|
|
||||||
@@map("medias")
|
|
||||||
}
|
|
||||||
|
|
||||||
model MediaLog {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
status MediaOperation
|
|
||||||
approval Boolean @default(false)
|
|
||||||
proposedBy String @db.Uuid
|
|
||||||
approvedBy String @db.Uuid
|
|
||||||
mediaId String @db.Uuid
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
approver User @relation("UserApprovedMedias", fields: [approvedBy], references: [id])
|
|
||||||
media Media @relation("MediaLogs", fields: [mediaId], references: [id])
|
|
||||||
proposer User @relation("UserProposedMedias", fields: [proposedBy], references: [id])
|
|
||||||
|
|
||||||
@@map("media_logs")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Genre {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
name String @db.VarChar(255)
|
|
||||||
slug String @unique @db.VarChar(255)
|
|
||||||
malId Int @unique
|
|
||||||
malUrl String @db.VarChar(255)
|
|
||||||
createdBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
creator User @relation("UserCreatedGenres", fields: [createdBy], references: [id])
|
|
||||||
medias Media[] @relation("MediaGenres")
|
|
||||||
user_favourite_genres UserPreference[] @relation("UserFavoriteGenres")
|
|
||||||
|
|
||||||
@@map("genres")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Studio {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
name String @db.VarChar(255)
|
|
||||||
slug String @unique @db.VarChar(255)
|
|
||||||
linkAbout String
|
|
||||||
malId Int @unique
|
|
||||||
logoUrl String?
|
|
||||||
createdBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
creator User @relation("UserCreatedStudios", fields: [createdBy], references: [id])
|
|
||||||
medias Media[] @relation("MediaStudios")
|
|
||||||
|
|
||||||
@@map("studios")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Character {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
malId Int @unique
|
|
||||||
name String
|
|
||||||
role CharacterRole
|
|
||||||
favorites Int @default(0)
|
|
||||||
imageUrl String?
|
|
||||||
smallImageUrl String?
|
|
||||||
creatorId String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
createdBy User @relation("UserCreatedCharacters", fields: [creatorId], references: [id])
|
|
||||||
voice_actors LangVAChar[] @relation("CharVALanguage")
|
|
||||||
medias Media[] @relation("MediaCharacters")
|
|
||||||
|
|
||||||
@@map("characters")
|
|
||||||
}
|
|
||||||
|
|
||||||
model VoiceActor {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
malId Int @unique
|
|
||||||
name String
|
|
||||||
birthday DateTime?
|
|
||||||
description String?
|
|
||||||
aboutUrl String?
|
|
||||||
imageUrl String?
|
|
||||||
websiteUrl String?
|
|
||||||
creatorId String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
characters LangVAChar[] @relation("VACharLanguage")
|
|
||||||
createdBy User @relation("UserCreatedVoiceActors", fields: [creatorId], references: [id])
|
|
||||||
|
|
||||||
@@map("voice_actors")
|
|
||||||
}
|
|
||||||
|
|
||||||
model LangVAChar {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
language String
|
|
||||||
vaId String @db.Uuid
|
|
||||||
charId String @db.Uuid
|
|
||||||
creatorId String @db.Uuid
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
character Character @relation("CharVALanguage", fields: [charId], references: [id])
|
|
||||||
createdBy User @relation("UserCreatedLangVAChar", fields: [creatorId], references: [id])
|
|
||||||
voiceActor VoiceActor @relation("VACharLanguage", fields: [vaId], references: [id])
|
|
||||||
|
|
||||||
@@unique([language, vaId, charId])
|
|
||||||
@@map("lang_va_char")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Episode {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
mediaId String @db.Uuid
|
|
||||||
episode Int
|
|
||||||
name String @db.VarChar(255)
|
|
||||||
score Decimal @default(0.00) @db.Decimal(4, 2)
|
|
||||||
pictureThumbnail String?
|
|
||||||
viewed BigInt @default(0)
|
|
||||||
likes BigInt @default(0)
|
|
||||||
dislikes BigInt @default(0)
|
|
||||||
pendingUpload Boolean @default(true)
|
|
||||||
uploadedBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
comments Comment[] @relation("EpisodeComments")
|
|
||||||
user_likes EpisodeLike[] @relation("EpisodeLikes")
|
|
||||||
media Media @relation("MediaEpisodes", fields: [mediaId], references: [id])
|
|
||||||
uploader User @relation("UserEpisodes", fields: [uploadedBy], references: [id])
|
|
||||||
videos Video[] @relation("EpisodeVideos")
|
|
||||||
user_histories WatchHistory? @relation("EpisodeWatchHistories")
|
|
||||||
|
|
||||||
@@unique([mediaId, episode])
|
|
||||||
@@map("episodes")
|
|
||||||
}
|
|
||||||
|
|
||||||
model EpisodeLike {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
userId String @db.Uuid
|
|
||||||
sessionId String @db.Uuid
|
|
||||||
episodeId String @db.Uuid
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
episode Episode @relation("EpisodeLikes", fields: [episodeId], references: [id])
|
|
||||||
session UserSession @relation("SessionEpisodeLikes", fields: [sessionId], references: [id])
|
|
||||||
user User @relation("UserEpisodeLikes", fields: [userId], references: [id])
|
|
||||||
|
|
||||||
@@map("episode_likes")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Video {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
episodeId String @db.Uuid
|
|
||||||
serviceId String @db.Uuid
|
|
||||||
videoCode String @db.VarChar(255)
|
|
||||||
thumbnailCode String?
|
|
||||||
pendingUpload Boolean @default(true)
|
|
||||||
uploadedBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
episode Episode @relation("EpisodeVideos", fields: [episodeId], references: [id])
|
|
||||||
service VideoService @relation("VideoServices", fields: [serviceId], references: [id])
|
|
||||||
uploader User @relation("UserVideos", fields: [uploadedBy], references: [id])
|
|
||||||
|
|
||||||
@@unique([serviceId, videoCode])
|
|
||||||
@@map("videos")
|
|
||||||
}
|
|
||||||
|
|
||||||
model VideoService {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
name String @unique @db.VarChar(255)
|
|
||||||
domain String @db.VarChar(255)
|
|
||||||
logo String?
|
|
||||||
hexColor String @db.VarChar(10)
|
|
||||||
endpointVideo String
|
|
||||||
endpointThumbnail String?
|
|
||||||
endpointDownload String?
|
|
||||||
createdBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
user_preferences UserPreference[] @relation("UserServiceDefault")
|
|
||||||
creator User @relation("UserVideoServices", fields: [createdBy], references: [id])
|
|
||||||
videos Video[] @relation("VideoServices")
|
|
||||||
|
|
||||||
@@map("video_services")
|
|
||||||
}
|
|
||||||
|
|
||||||
model User {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
name String @db.VarChar(255)
|
|
||||||
username String @unique @db.VarChar(255)
|
|
||||||
email String @unique
|
|
||||||
password String
|
|
||||||
birthDate DateTime? @db.Date
|
|
||||||
gender UserGender?
|
|
||||||
phoneCC Int?
|
|
||||||
phoneNumber Int?
|
|
||||||
bioProfile String?
|
|
||||||
avatar String?
|
|
||||||
commentBackground String?
|
|
||||||
provider String? @db.VarChar(255)
|
|
||||||
providerId String? @unique @db.VarChar(255)
|
|
||||||
providerToken String?
|
|
||||||
providerPayload Json? @db.Json
|
|
||||||
verifiedAt DateTime?
|
|
||||||
disabledAt DateTime?
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
characters Character[] @relation("UserCreatedCharacters")
|
|
||||||
collections Collection[] @relation("UserCollections")
|
|
||||||
liked_comments CommentLike[] @relation("UserCommentLikes")
|
|
||||||
approved_comments CommentReport[] @relation("ApprovedReportComments")
|
|
||||||
reported_comments CommentReport[] @relation("UserReportComments")
|
|
||||||
comments Comment[] @relation("UserComments")
|
|
||||||
user_create_email EmailSystemAccount[] @relation("UserCreateSystemAccount")
|
|
||||||
user_emails EmailSystemHistory[] @relation("UserEmails")
|
|
||||||
episode_likes EpisodeLike[] @relation("UserEpisodeLikes")
|
|
||||||
episodes Episode[] @relation("UserEpisodes")
|
|
||||||
genres Genre[] @relation("UserCreatedGenres")
|
|
||||||
user_hero_banner HeroBanner[] @relation("UserHeroBanner")
|
|
||||||
lang_va_char LangVAChar[] @relation("UserCreatedLangVAChar")
|
|
||||||
create_languages Language[] @relation("UserCreateLanguages")
|
|
||||||
media_approveds MediaLog[] @relation("UserApprovedMedias")
|
|
||||||
media_proposeds MediaLog[] @relation("UserProposedMedias")
|
|
||||||
medias Media[] @relation("UserUploadedMedias")
|
|
||||||
media_reviews MediaReview[] @relation("UserMediaReviews")
|
|
||||||
studios Studio[] @relation("UserCreatedStudios")
|
|
||||||
sys_logs SystemLog[] @relation("UserSystemLogs")
|
|
||||||
sys_notifications SystemNotification[] @relation("UserCreatorSystemNotifications")
|
|
||||||
logs UserLog[] @relation("UserLogs")
|
|
||||||
notifications UserNotification[] @relation("UserNotifications")
|
|
||||||
preference UserPreference?
|
|
||||||
assignedRoles UserRoleAssignment[]
|
|
||||||
create_roles UserRole[] @relation("UserCreateRoles")
|
|
||||||
sessions UserSession[] @relation("UserSession")
|
|
||||||
video_services VideoService[] @relation("UserVideoServices")
|
|
||||||
videos Video[] @relation("UserVideos")
|
|
||||||
voice_actor VoiceActor[] @relation("UserCreatedVoiceActors")
|
|
||||||
watch_histories WatchHistory[] @relation("UserWatchHistories")
|
|
||||||
allowed_collections Collection[] @relation("UserSelectedSharingCollention")
|
|
||||||
|
|
||||||
@@map("users")
|
|
||||||
}
|
|
||||||
|
|
||||||
model UserPreference {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
userId String @unique @db.Uuid
|
|
||||||
langPreference String?
|
|
||||||
adultFiltering AdultFiltering @default(hide)
|
|
||||||
adultAlert AdultAlert @default(show)
|
|
||||||
videoQuality VideoQuality @default(Q1080)
|
|
||||||
serviceDefaultId String? @db.Uuid
|
|
||||||
hideContries Country[]
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
lang Language? @relation("UserPreferenceLang", fields: [langPreference], references: [code])
|
|
||||||
serviceDefault VideoService? @relation("UserServiceDefault", fields: [serviceDefaultId], references: [id])
|
|
||||||
user User @relation(fields: [userId], references: [id])
|
|
||||||
favoriteGenres Genre[] @relation("UserFavoriteGenres")
|
|
||||||
|
|
||||||
@@map("user_preferences")
|
|
||||||
}
|
|
||||||
|
|
||||||
model UserRole {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
name String @unique @db.VarChar(255)
|
|
||||||
description String?
|
|
||||||
primaryColor String? @db.VarChar(10)
|
|
||||||
secondaryColor String? @db.VarChar(10)
|
|
||||||
pictureImage String?
|
|
||||||
badgeImage String?
|
|
||||||
isSuperadmin Boolean @default(false)
|
|
||||||
canEditMedia Boolean @default(false)
|
|
||||||
canManageMedia Boolean @default(false)
|
|
||||||
canEditEpisodes Boolean @default(false)
|
|
||||||
canManageEpisodes Boolean @default(false)
|
|
||||||
canEditComment Boolean @default(false)
|
|
||||||
canManageComment Boolean @default(false)
|
|
||||||
canEditUser Boolean @default(false)
|
|
||||||
canManageUser Boolean @default(false)
|
|
||||||
canEditSystem Boolean @default(false)
|
|
||||||
canManageSystem Boolean @default(false)
|
|
||||||
createdBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
assignedUser UserRoleAssignment[]
|
|
||||||
creator User @relation("UserCreateRoles", fields: [createdBy], references: [id])
|
|
||||||
|
|
||||||
@@map("user_roles")
|
|
||||||
}
|
|
||||||
|
|
||||||
model UserRoleAssignment {
|
|
||||||
userId String @db.Uuid
|
|
||||||
roleId String @db.Uuid
|
|
||||||
assignmentAt DateTime @default(now())
|
|
||||||
role UserRole @relation(fields: [roleId], references: [id])
|
|
||||||
user User @relation(fields: [userId], references: [id])
|
|
||||||
|
|
||||||
@@id([userId, roleId])
|
|
||||||
@@map("user_role_assignments")
|
|
||||||
}
|
|
||||||
|
|
||||||
model UserNotification {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
title String @db.VarChar(255)
|
|
||||||
content String
|
|
||||||
picture String
|
|
||||||
state UserNotificationState
|
|
||||||
ctaLink String
|
|
||||||
userId String @db.Uuid
|
|
||||||
isReaded Boolean @default(false)
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
user User @relation("UserNotifications", fields: [userId], references: [id])
|
|
||||||
|
|
||||||
@@map("user_notifications")
|
|
||||||
}
|
|
||||||
|
|
||||||
model UserSession {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
isAuthenticated Boolean @default(false)
|
|
||||||
userId String @db.Uuid
|
|
||||||
deviceType String @db.VarChar(255)
|
|
||||||
deviceOs String @db.VarChar(255)
|
|
||||||
deviceIp String @db.VarChar(255)
|
|
||||||
browser String @db.VarChar(255)
|
|
||||||
isOnline Boolean @default(false)
|
|
||||||
lastOnline DateTime @default(now())
|
|
||||||
validUntil DateTime
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
episode_likes EpisodeLike[] @relation("SessionEpisodeLikes")
|
|
||||||
logs UserLog[] @relation("UserSessionLogs")
|
|
||||||
user User @relation("UserSession", fields: [userId], references: [id])
|
|
||||||
watch_histories WatchHistory[] @relation("SessionWatchHistories")
|
|
||||||
|
|
||||||
@@index([userId, isAuthenticated, deletedAt])
|
|
||||||
@@map("user_sessions")
|
|
||||||
}
|
|
||||||
|
|
||||||
model UserLog {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
title String @db.VarChar(255)
|
|
||||||
notes String
|
|
||||||
userId String @db.Uuid
|
|
||||||
sessionId String @db.Uuid
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
session UserSession @relation("UserSessionLogs", fields: [sessionId], references: [id])
|
|
||||||
user User @relation("UserLogs", fields: [userId], references: [id])
|
|
||||||
|
|
||||||
@@map("user_logs")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Collection {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
name String @db.VarChar(115)
|
|
||||||
ownerId String @db.Uuid
|
|
||||||
accessStatus AccessStatus @default(private)
|
|
||||||
password String? @db.VarChar(255)
|
|
||||||
accessScope AccessScope @default(viewer)
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
slug String @db.VarChar(115)
|
|
||||||
media_saved CollectionMedia[] @relation("CollectionMedia")
|
|
||||||
owner User @relation("UserCollections", fields: [ownerId], references: [id])
|
|
||||||
usersAllowed User[] @relation("UserSelectedSharingCollention")
|
|
||||||
|
|
||||||
@@unique([slug, ownerId])
|
|
||||||
@@map("collections")
|
|
||||||
}
|
|
||||||
|
|
||||||
model CollectionMedia {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
collectionId String @db.Uuid
|
|
||||||
mediaId String @db.Uuid
|
|
||||||
savedAt DateTime @default(now())
|
|
||||||
collection Collection @relation("CollectionMedia", fields: [collectionId], references: [id])
|
|
||||||
media Media @relation("CollectionMedia", fields: [mediaId], references: [id])
|
|
||||||
|
|
||||||
@@unique([collectionId, mediaId])
|
|
||||||
}
|
|
||||||
|
|
||||||
model WatchHistory {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
episodeId String @db.Uuid
|
|
||||||
userId String @db.Uuid
|
|
||||||
sessionId String @db.Uuid
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
episode Episode @relation("EpisodeWatchHistories", fields: [id], references: [id])
|
|
||||||
session UserSession @relation("SessionWatchHistories", fields: [sessionId], references: [id])
|
|
||||||
user User @relation("UserWatchHistories", fields: [userId], references: [id])
|
|
||||||
|
|
||||||
@@map("watch_histories")
|
|
||||||
}
|
|
||||||
|
|
||||||
model MediaReview {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
mediaId String @db.Uuid
|
|
||||||
rating Int
|
|
||||||
title String @db.VarChar(255)
|
|
||||||
text String
|
|
||||||
reaction MediaReviewReaction
|
|
||||||
createdBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
creator User @relation("UserMediaReviews", fields: [createdBy], references: [id])
|
|
||||||
media Media @relation("MediaReviews", fields: [mediaId], references: [id])
|
|
||||||
|
|
||||||
@@map("movie_reviews")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Comment {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
episodeId String @db.Uuid
|
|
||||||
text String
|
|
||||||
isParent Boolean @default(false)
|
|
||||||
parentId String? @db.Uuid
|
|
||||||
userId String @db.Uuid
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
likes CommentLike[] @relation("CommentLikes")
|
|
||||||
episode Episode @relation("EpisodeComments", fields: [episodeId], references: [id])
|
|
||||||
parent Comment? @relation("ParentReplyComments", fields: [parentId], references: [id])
|
|
||||||
replies Comment[] @relation("ParentReplyComments")
|
|
||||||
user User @relation("UserComments", fields: [userId], references: [id])
|
|
||||||
|
|
||||||
@@map("comments")
|
|
||||||
}
|
|
||||||
|
|
||||||
model CommentLike {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
commentId String @db.Uuid
|
|
||||||
userLiked String @db.Uuid
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
comment Comment @relation("CommentLikes", fields: [commentId], references: [id])
|
|
||||||
user User @relation("UserCommentLikes", fields: [userLiked], references: [id])
|
|
||||||
|
|
||||||
@@map("comment_likes")
|
|
||||||
}
|
|
||||||
|
|
||||||
model CommentReport {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
userReporter String @db.Uuid
|
|
||||||
commentReported String @db.Uuid
|
|
||||||
isSupervisorReport Boolean @default(false)
|
|
||||||
reason ReportReason
|
|
||||||
status ReportStatus
|
|
||||||
description String @db.VarChar(255)
|
|
||||||
approvedBy String? @db.Uuid
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
approver User? @relation("ApprovedReportComments", fields: [approvedBy], references: [id])
|
|
||||||
reporter User @relation("UserReportComments", fields: [userReporter], references: [id])
|
|
||||||
|
|
||||||
@@map("comment_reports")
|
|
||||||
}
|
|
||||||
|
|
||||||
model Language {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
name String @db.VarChar(255)
|
|
||||||
code String @unique @db.VarChar(5)
|
|
||||||
countryFlag String @db.VarChar(10)
|
|
||||||
fileLocation String
|
|
||||||
craetedBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
creator User @relation("UserCreateLanguages", fields: [craetedBy], references: [id])
|
|
||||||
user_used UserPreference[] @relation("UserPreferenceLang")
|
|
||||||
|
|
||||||
@@map("languages")
|
|
||||||
}
|
|
||||||
|
|
||||||
model EmailSystemAccount {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
name String @unique
|
|
||||||
host String @db.VarChar(255)
|
|
||||||
port Int
|
|
||||||
secure Boolean
|
|
||||||
email String @unique @db.VarChar(255)
|
|
||||||
username String @unique @db.VarChar(255)
|
|
||||||
password String @db.VarChar(255)
|
|
||||||
purpose EmailPorpose
|
|
||||||
createdBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
creator User @relation("UserCreateSystemAccount", fields: [createdBy], references: [id])
|
|
||||||
|
|
||||||
@@map("email_system_accounts")
|
|
||||||
}
|
|
||||||
|
|
||||||
model EmailSystemHistory {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
purpose EmailPorpose
|
|
||||||
fromEmail String
|
|
||||||
toEmail String
|
|
||||||
userRelated String @db.Uuid
|
|
||||||
title String @db.VarChar(255)
|
|
||||||
htmlContent String
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
user User @relation("UserEmails", fields: [userRelated], references: [id])
|
|
||||||
|
|
||||||
@@map("email_system_histories")
|
|
||||||
}
|
|
||||||
|
|
||||||
model HeroBanner {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
orderPriority Int? @unique
|
|
||||||
imageUrl String?
|
|
||||||
startDate DateTime
|
|
||||||
endDate DateTime
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
creatorId String @db.Uuid
|
|
||||||
mediaId String @db.Uuid
|
|
||||||
createdBy User @relation("UserHeroBanner", fields: [creatorId], references: [id])
|
|
||||||
media Media @relation("MediaBannerPromotion", fields: [mediaId], references: [id])
|
|
||||||
|
|
||||||
@@map("hero_banner")
|
|
||||||
}
|
|
||||||
|
|
||||||
model SystemPreference {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
key String @unique @db.VarChar(225)
|
|
||||||
value String @db.VarChar(225)
|
|
||||||
description String
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
|
|
||||||
@@map("system_preferences")
|
|
||||||
}
|
|
||||||
|
|
||||||
model SystemNotification {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
type TypeSystemNotification
|
|
||||||
componentName String? @db.VarChar(255)
|
|
||||||
popupImage String?
|
|
||||||
titleToast String? @db.VarChar(255)
|
|
||||||
contentToast String?
|
|
||||||
createdBy String @db.Uuid
|
|
||||||
deletedAt DateTime?
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
creator User @relation("UserCreatorSystemNotifications", fields: [createdBy], references: [id])
|
|
||||||
|
|
||||||
@@map("system_notifications")
|
|
||||||
}
|
|
||||||
|
|
||||||
model SystemLog {
|
|
||||||
id String @id @db.Uuid
|
|
||||||
title String @db.VarChar(255)
|
|
||||||
notes String
|
|
||||||
relatedUser String? @db.Uuid
|
|
||||||
createdAt DateTime @default(now())
|
|
||||||
updatedAt DateTime @default(now()) @updatedAt
|
|
||||||
user User? @relation("UserSystemLogs", fields: [relatedUser], references: [id])
|
|
||||||
|
|
||||||
@@map("system_logs")
|
|
||||||
}
|
|
||||||
|
|
||||||
enum MediaType {
|
|
||||||
TV
|
|
||||||
ONA
|
|
||||||
OVA
|
|
||||||
Movie
|
|
||||||
Special
|
|
||||||
Music
|
|
||||||
}
|
|
||||||
|
|
||||||
enum Country {
|
|
||||||
JP @map("Japanese")
|
|
||||||
EN @map("English")
|
|
||||||
ID @map("Indonesia")
|
|
||||||
KR @map("Korea")
|
|
||||||
}
|
|
||||||
|
|
||||||
enum Season {
|
|
||||||
winter
|
|
||||||
spring
|
|
||||||
summer
|
|
||||||
fall
|
|
||||||
}
|
|
||||||
|
|
||||||
enum CharacterRole {
|
|
||||||
Main
|
|
||||||
Supporting
|
|
||||||
}
|
|
||||||
|
|
||||||
enum MediaOperation {
|
|
||||||
create
|
|
||||||
update
|
|
||||||
delete
|
|
||||||
}
|
|
||||||
|
|
||||||
enum UserGender {
|
|
||||||
male
|
|
||||||
female
|
|
||||||
}
|
|
||||||
|
|
||||||
enum AdultFiltering {
|
|
||||||
hide
|
|
||||||
show
|
|
||||||
explicit
|
|
||||||
}
|
|
||||||
|
|
||||||
enum AdultAlert {
|
|
||||||
hide
|
|
||||||
show
|
|
||||||
}
|
|
||||||
|
|
||||||
enum VideoQuality {
|
|
||||||
Q2160
|
|
||||||
Q1440
|
|
||||||
Q1080
|
|
||||||
Q720
|
|
||||||
Q480
|
|
||||||
Q360
|
|
||||||
Q240
|
|
||||||
Q144
|
|
||||||
}
|
|
||||||
|
|
||||||
enum UserNotificationState {
|
|
||||||
info
|
|
||||||
warning
|
|
||||||
danger
|
|
||||||
}
|
|
||||||
|
|
||||||
enum ReportStatus {
|
|
||||||
pending
|
|
||||||
resolved
|
|
||||||
rejected
|
|
||||||
}
|
|
||||||
|
|
||||||
enum ReportReason {
|
|
||||||
sexualize
|
|
||||||
violent
|
|
||||||
explicit
|
|
||||||
hateful
|
|
||||||
political
|
|
||||||
racist
|
|
||||||
spam
|
|
||||||
other
|
|
||||||
}
|
|
||||||
|
|
||||||
enum AccessStatus {
|
|
||||||
private
|
|
||||||
selected
|
|
||||||
protected
|
|
||||||
public
|
|
||||||
}
|
|
||||||
|
|
||||||
enum AccessScope {
|
|
||||||
viewer
|
|
||||||
editor
|
|
||||||
}
|
|
||||||
|
|
||||||
enum MediaReviewReaction {
|
|
||||||
angry
|
|
||||||
sad
|
|
||||||
awesome
|
|
||||||
happy
|
|
||||||
sleepy
|
|
||||||
annoyed
|
|
||||||
disgusting
|
|
||||||
disappointed
|
|
||||||
}
|
|
||||||
|
|
||||||
enum EmailPorpose {
|
|
||||||
forgot_password
|
|
||||||
account_activation
|
|
||||||
account_notification
|
|
||||||
subscribtion
|
|
||||||
}
|
|
||||||
|
|
||||||
enum TypeSystemNotification {
|
|
||||||
component
|
|
||||||
popup
|
|
||||||
toast
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user