107 lines
2.5 KiB
Plaintext
107 lines
2.5 KiB
Plaintext
// Adicionar ao schema.prisma existente (não substitui)
|
|
model SessaoNavegacao {
|
|
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
titulo String
|
|
descricao String?
|
|
status StatusSessao @default(INICIADA)
|
|
usuarioId String @db.Uuid
|
|
usuario Usuario @relation(fields: [usuarioId], references: [id])
|
|
|
|
// Dados da sessão
|
|
sessionKey String @unique
|
|
browserFingerprint Json
|
|
inicioSessao DateTime @default(now())
|
|
fimSessao DateTime?
|
|
duracaoSegundos Int?
|
|
|
|
// Arquivos gerados
|
|
videoPath String?
|
|
screenshotsPaths String[]
|
|
metadataPath String?
|
|
relatorioPdfPath String?
|
|
|
|
// Hashes e validação
|
|
checksumVideo String?
|
|
checksumMetadata String?
|
|
timestampProof String?
|
|
|
|
// Navegação registrada
|
|
acoes AcaoNavegacao[]
|
|
capturas CapturaNavegacao[]
|
|
|
|
criadoEm DateTime @default(now())
|
|
atualizadoEm DateTime @updatedAt
|
|
|
|
@@map("sessoes_navegacao")
|
|
}
|
|
|
|
model AcaoNavegacao {
|
|
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
sessaoId String @db.Uuid
|
|
sessao SessaoNavegacao @relation(fields: [sessaoId], references: [id], onDelete: Cascade)
|
|
|
|
timestamp DateTime
|
|
tipo TipoAcao
|
|
url String?
|
|
elemento String?
|
|
coordenadas Json?
|
|
valor String?
|
|
screenshot String?
|
|
|
|
metadados Json
|
|
|
|
criadoEm DateTime @default(now())
|
|
|
|
@@map("acoes_navegacao")
|
|
}
|
|
|
|
model CapturaNavegacao {
|
|
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
sessaoId String @db.Uuid
|
|
sessao SessaoNavegacao @relation(fields: [sessaoId], references: [id], onDelete: Cascade)
|
|
|
|
timestamp DateTime
|
|
url String
|
|
titulo String?
|
|
screenshotPath String
|
|
htmlContent String?
|
|
checksumHtml String?
|
|
checksumScreenshot String
|
|
|
|
// Metadados da página
|
|
networkRequests Json[]
|
|
cookies Json[]
|
|
localStorage Json?
|
|
sessionStorage Json?
|
|
|
|
criadoEm DateTime @default(now())
|
|
|
|
@@map("capturas_navegacao")
|
|
}
|
|
|
|
enum StatusSessao {
|
|
INICIADA
|
|
EM_ANDAMENTO
|
|
FINALIZANDO
|
|
CONCLUIDA
|
|
ERRO
|
|
CANCELADA
|
|
}
|
|
|
|
enum TipoAcao {
|
|
NAVEGACAO
|
|
CLIQUE
|
|
DIGITACAO
|
|
SCROLL
|
|
HOVER
|
|
DOWNLOAD
|
|
FORMULARIO
|
|
POPUP
|
|
REDIRECT
|
|
}
|
|
|
|
// Adicionar relação ao modelo Usuario existente
|
|
// Usuario {
|
|
// sessoesNavegacao SessaoNavegacao[]
|
|
// }
|