generated from fahricansecer/boilerplate-be
@@ -35,6 +35,7 @@ model User {
|
||||
preferences UserPreference?
|
||||
youtubeAnalyses YoutubeAnalysis[]
|
||||
youtubeSeoAnalyses YoutubeSeoAnalysis[]
|
||||
tubeStrategistProjects TubeStrategistProject[]
|
||||
|
||||
// Multi-tenancy (optional)
|
||||
tenantId String?
|
||||
@@ -712,3 +713,83 @@ model YoutubeSeoAnalysis {
|
||||
@@index([userId])
|
||||
@@index([videoId])
|
||||
}
|
||||
|
||||
// Tube Strategist
|
||||
// ============================================
|
||||
|
||||
model TubeStrategistProject {
|
||||
id String @id @default(uuid())
|
||||
name String @db.VarChar(500)
|
||||
status String @default("DRAFT") // DRAFT, ANALYZING, COMPLETED
|
||||
|
||||
// Settings
|
||||
tone String?
|
||||
duration String?
|
||||
speakerName String?
|
||||
targetAudience String?
|
||||
topicFocus String?
|
||||
formatDescription String? @db.Text
|
||||
|
||||
masterAnalysis Json? // Bütün master analizi burada duracak
|
||||
|
||||
// Relations
|
||||
userId String
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
videos TubeStrategistVideo[]
|
||||
episodes TubeStrategistEpisode[]
|
||||
|
||||
// Timestamps
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@index([userId])
|
||||
}
|
||||
|
||||
model TubeStrategistVideo {
|
||||
id String @id @default(uuid())
|
||||
youtubeUrl String @db.VarChar(500)
|
||||
videoId String @db.VarChar(100)
|
||||
title String? @db.VarChar(500)
|
||||
thumbnail String? @db.VarChar(500)
|
||||
|
||||
transcript String? @db.Text
|
||||
transcriptDuration Int? // in seconds
|
||||
|
||||
totalComments Int @default(0)
|
||||
mainComments Int @default(0)
|
||||
replyComments Int @default(0)
|
||||
viewCount String? @db.VarChar(50)
|
||||
likeCount String? @db.VarChar(50)
|
||||
|
||||
commentsJson Json? // Storing top comments or buckets
|
||||
tier1Analysis Json? // Individual video analysis
|
||||
|
||||
// Relations
|
||||
projectId String
|
||||
project TubeStrategistProject @relation(fields: [projectId], references: [id], onDelete: Cascade)
|
||||
|
||||
// Timestamps
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@index([projectId])
|
||||
}
|
||||
|
||||
model TubeStrategistEpisode {
|
||||
id String @id @default(uuid())
|
||||
topic String @db.VarChar(500)
|
||||
targetAudience String? @db.VarChar(500)
|
||||
duration String? @db.VarChar(100)
|
||||
format String? @db.VarChar(100)
|
||||
|
||||
status String @default("DRAFT") // DRAFT, ANALYZING, COMPLETED
|
||||
masterAnalysis Json?
|
||||
|
||||
projectId String
|
||||
project TubeStrategistProject @relation(fields: [projectId], references: [id], onDelete: Cascade)
|
||||
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@index([projectId])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user