76 lines
3.0 KiB
Plaintext
76 lines
3.0 KiB
Plaintext
// This is your Prisma schema file,
|
|
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
|
|
|
// Get a free hosted Postgres database in seconds: `npx create-db`
|
|
|
|
generator client {
|
|
provider = "prisma-client"
|
|
output = "../app/generated/prisma"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "mysql"
|
|
}
|
|
|
|
enum ImageGenerationStatus {
|
|
QUEUED
|
|
RUNNING
|
|
SUCCEEDED
|
|
FAILED
|
|
}
|
|
|
|
model User {
|
|
id Int @id
|
|
username String @default("") @db.VarChar(191)
|
|
displayName String @default("") @map("display_name") @db.VarChar(191)
|
|
group String @default("") @db.VarChar(191)
|
|
role Int @default(0)
|
|
status Int @default(0)
|
|
createdAt DateTime @default(now()) @map("created_at")
|
|
updatedAt DateTime @updatedAt @map("updated_at")
|
|
imageGenerations ImageGeneration[]
|
|
|
|
@@map("users")
|
|
}
|
|
|
|
model ImageGeneration {
|
|
id BigInt @id @default(autoincrement()) @db.UnsignedBigInt
|
|
userId Int @map("user_id")
|
|
prompt String @db.Text
|
|
status ImageGenerationStatus @default(RUNNING)
|
|
model String @default("gpt-image-2") @db.VarChar(64)
|
|
startedAt DateTime @default(now()) @map("started_at")
|
|
endedAt DateTime? @map("ended_at")
|
|
durationMs Int? @map("duration_ms")
|
|
imageUrl String? @map("image_url") @db.VarChar(2048)
|
|
hostedImageUrl String? @map("hosted_image_url") @db.VarChar(2048)
|
|
imageMimeType String? @map("image_mime_type") @db.VarChar(191)
|
|
revisedPrompt String? @map("revised_prompt") @db.Text
|
|
upstreamResponse Json? @map("upstream_response")
|
|
hostedResponse Json? @map("hosted_response")
|
|
errorMessage String? @map("error_message") @db.Text
|
|
createdAt DateTime @default(now()) @map("created_at")
|
|
updatedAt DateTime @updatedAt @map("updated_at")
|
|
deletedAt DateTime? @map("deleted_at")
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
|
|
@@index([userId, createdAt])
|
|
@@index([status])
|
|
@@index([deletedAt])
|
|
@@map("image_generations")
|
|
}
|
|
|
|
model GenerationStats {
|
|
id String @id @db.VarChar(32)
|
|
totalRequests Int @default(0) @map("total_requests")
|
|
successRequests Int @default(0) @map("success_requests")
|
|
failedRequests Int @default(0) @map("failed_requests")
|
|
queuedRequests Int @default(0) @map("queued_requests")
|
|
runningRequests Int @default(0) @map("running_requests")
|
|
totalImages Int @default(0) @map("total_images")
|
|
createdAt DateTime @default(now()) @map("created_at")
|
|
updatedAt DateTime @updatedAt @map("updated_at")
|
|
|
|
@@map("generation_stats")
|
|
}
|