feat: Implement structured message parsing and display in MessageViewer component

- Added MessageViewer component to display parsed messages in a chat-like format.
- Introduced new Message table in the database to store individual messages with timestamps, roles, and content.
- Updated Session model to include a relation to parsed messages.
- Created transcript parsing logic to convert raw transcripts into structured messages.
- Enhanced processing scheduler to handle sessions with parsed messages.
- Updated API endpoints to return parsed messages alongside session details.
- Added manual trigger commands for session refresh, transcript parsing, and processing.
- Improved user experience with color-coded message roles and timestamps in the UI.
- Documented the new scheduler workflow and transcript parsing implementation.
This commit is contained in:
Max Kowalski
2025-06-25 17:45:08 +02:00
parent 3196dabdf2
commit a9e4145001
20 changed files with 1043 additions and 90 deletions

View File

@ -48,7 +48,6 @@ model Session {
escalated Boolean?
forwardedHr Boolean?
fullTranscriptUrl String?
transcriptContent String? // Added to store the fetched transcript
avgResponseTime Float?
tokens Int?
tokensEur Float?
@ -57,5 +56,19 @@ model Session {
processed Boolean? // Flag for post-processing status
questions String? // JSON array of questions asked by user
summary String? // Brief summary of the conversation
messages Message[] // Relation to parsed messages
createdAt DateTime @default(now())
}
model Message {
id String @id @default(uuid())
session Session @relation(fields: [sessionId], references: [id], onDelete: Cascade)
sessionId String
timestamp DateTime // When the message was sent
role String // "User", "Assistant", "System", etc.
content String // The message content
order Int // Order within the conversation (0, 1, 2, ...)
createdAt DateTime @default(now())
@@index([sessionId, order]) // Index for efficient ordering queries
}