39 lines
1.2 KiB
Plaintext
39 lines
1.2 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "sqlite"
|
|
url = "file:./dev.db"
|
|
}
|
|
|
|
model Episode {
|
|
id String @id @default(cuid())
|
|
title String
|
|
originalContent String
|
|
scriptContent String?
|
|
mode String @default("VERBATIM") // VERBATIM | FEYNMAN | DUAL_HOST
|
|
status String @default("PENDING") // PENDING | PROCESSING | READY | FAILED
|
|
errorMessage String?
|
|
durationSeconds Float?
|
|
audioUrl String?
|
|
timingsJson String? // Serialized array of cues / timestamps [{text, startTime, endTime, speaker}]
|
|
|
|
stages StageItem[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model StageItem {
|
|
id String @id @default(cuid())
|
|
episodeId String
|
|
timestampSeconds Float
|
|
type String // IMAGE | CODE | CALLOUT
|
|
title String?
|
|
content String // Image URL, Code snippet, or Callout text
|
|
caption String?
|
|
|
|
episode Episode @relation(fields: [episodeId], references: [id], onDelete: Cascade)
|
|
createdAt DateTime @default(now())
|
|
}
|