pstream-backend/prisma/schema.prisma
2025-07-22 11:02:00 -06:00

116 lines
3.6 KiB
Text

generator client {
provider = "prisma-client-js"
output = "../node_modules/.prisma/client"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model bookmarks {
tmdb_id String @db.VarChar(255)
user_id String @db.VarChar(255)
meta Json
updated_at DateTime @db.Timestamptz(0)
group String[]
@@id([tmdb_id, user_id])
@@unique([tmdb_id, user_id], map: "bookmarks_tmdb_id_user_id_unique")
}
model challenge_codes {
code String @id @db.Uuid
flow String
auth_type String @db.VarChar(255)
created_at DateTime @db.Timestamptz(0)
expires_at DateTime @db.Timestamptz(0)
}
model mikro_orm_migrations {
id Int @id @default(autoincrement())
name String? @db.VarChar(255)
executed_at DateTime? @default(now()) @db.Timestamptz(6)
}
model progress_items {
id String @id @db.Uuid
tmdb_id String @db.VarChar(255)
user_id String @db.VarChar(255)
season_id String? @db.VarChar(255)
episode_id String? @db.VarChar(255)
meta Json
updated_at DateTime @db.Timestamptz(0)
duration BigInt
watched BigInt
season_number Int?
episode_number Int?
@@unique([tmdb_id, user_id, season_id, episode_id], map: "progress_items_tmdb_id_user_id_season_id_episode_id_unique")
}
model sessions {
id String @id @db.Uuid
user String
created_at DateTime @db.Timestamptz(0)
accessed_at DateTime @db.Timestamptz(0)
expires_at DateTime @db.Timestamptz(0)
device String
user_agent String
}
model user_settings {
id String @id
application_theme String? @db.VarChar(255)
application_language String? @db.VarChar(255)
default_subtitle_language String? @db.VarChar(255)
proxy_urls String[]
trakt_key String? @db.VarChar(255)
febbox_key String? @db.VarChar(255)
enable_thumbnails Boolean @default(false)
enable_autoplay Boolean @default(true)
enable_skip_credits Boolean @default(true)
enable_discover Boolean @default(true)
enable_featured Boolean @default(false)
enable_details_modal Boolean @default(false)
enable_image_logos Boolean @default(true)
enable_carousel_view Boolean @default(false)
source_order String[] @default([])
enable_source_order Boolean @default(false)
proxy_tmdb Boolean @default(false)
}
model users {
id String @id
public_key String @unique(map: "users_public_key_unique")
namespace String @db.VarChar(255)
created_at DateTime @db.Timestamptz(0)
last_logged_in DateTime? @db.Timestamptz(0)
permissions String[]
profile Json
ratings Json @default("[]")
}
model lists {
id String @id @default(uuid()) @db.Uuid
user_id String @db.VarChar(255)
name String @db.VarChar(255)
description String? @db.VarChar(255)
created_at DateTime @default(now()) @db.Timestamptz(0)
updated_at DateTime @updatedAt @db.Timestamptz(0)
public Boolean @default(false)
list_items list_items[]
@@index([user_id], map: "lists_user_id_index")
}
model list_items {
id String @id @default(uuid()) @db.Uuid
list_id String @db.Uuid
tmdb_id String @db.VarChar(255)
added_at DateTime @default(now()) @db.Timestamptz(0)
type String? @db.VarChar(255)
list lists @relation(fields: [list_id], references: [id])
@@unique([list_id, tmdb_id], map: "list_items_list_id_tmdb_id_unique")
}