mirror of
https://github.com/enricoros/big-AGI.git
synced 2026-05-10 21:50:14 -07:00
64 lines
1.5 KiB
Plaintext
64 lines
1.5 KiB
Plaintext
// Prisma is the ORM for server-side (API) access to the database
|
|
//
|
|
// This file defines the schema for the database.
|
|
// - make sure to run 'prisma generate' after making changes to this file
|
|
// - make sure to run 'prisma db push' to sync the remote database with the schema
|
|
//
|
|
// Database is optional: when the environment variables are not set, the database is not used at all,
|
|
// and the storage of data in Big-AGI is limited to client-side (browser) storage.
|
|
//
|
|
// The database is used for:
|
|
// - the 'sharing' function, to let users share the chats with each other
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("POSTGRES_PRISMA_URL") // uses connection pooling
|
|
directUrl = env("POSTGRES_URL_NON_POOLING") // uses a direct connection
|
|
}
|
|
|
|
//
|
|
// Storage of Linked Data
|
|
//
|
|
model LinkStorage {
|
|
id String @id @default(uuid())
|
|
|
|
ownerId String
|
|
visibility LinkStorageVisibility
|
|
|
|
dataType LinkStorageDataType
|
|
dataTitle String?
|
|
dataSize Int
|
|
data Json
|
|
|
|
upVotes Int @default(0)
|
|
downVotes Int @default(0)
|
|
flagsCount Int @default(0)
|
|
readCount Int @default(0)
|
|
writeCount Int @default(1)
|
|
|
|
// time-based expiration
|
|
expiresAt DateTime?
|
|
|
|
// manual deletion
|
|
deletionKey String
|
|
isDeleted Boolean @default(false)
|
|
deletedAt DateTime?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
enum LinkStorageVisibility {
|
|
PUBLIC
|
|
UNLISTED
|
|
PRIVATE
|
|
}
|
|
|
|
enum LinkStorageDataType {
|
|
CHAT_V1
|
|
}
|