61 lines
2.0 KiB
Swift
61 lines
2.0 KiB
Swift
import Foundation
|
|
import SwiftData
|
|
|
|
enum TranscriptionStatus: String, Codable {
|
|
case pending
|
|
case completed
|
|
case failed
|
|
}
|
|
|
|
@Model
|
|
final class Transcription {
|
|
var id: UUID
|
|
var text: String
|
|
var enhancedText: String?
|
|
var timestamp: Date
|
|
var duration: TimeInterval
|
|
var audioFileURL: String?
|
|
var transcriptionModelName: String?
|
|
var aiEnhancementModelName: String?
|
|
var promptName: String?
|
|
var transcriptionDuration: TimeInterval?
|
|
var enhancementDuration: TimeInterval?
|
|
var aiRequestSystemMessage: String?
|
|
var aiRequestUserMessage: String?
|
|
var powerModeName: String?
|
|
var powerModeEmoji: String?
|
|
var transcriptionStatus: String?
|
|
|
|
init(text: String,
|
|
duration: TimeInterval,
|
|
enhancedText: String? = nil,
|
|
audioFileURL: String? = nil,
|
|
transcriptionModelName: String? = nil,
|
|
aiEnhancementModelName: String? = nil,
|
|
promptName: String? = nil,
|
|
transcriptionDuration: TimeInterval? = nil,
|
|
enhancementDuration: TimeInterval? = nil,
|
|
aiRequestSystemMessage: String? = nil,
|
|
aiRequestUserMessage: String? = nil,
|
|
powerModeName: String? = nil,
|
|
powerModeEmoji: String? = nil,
|
|
transcriptionStatus: TranscriptionStatus = .pending) {
|
|
self.id = UUID()
|
|
self.text = text
|
|
self.enhancedText = enhancedText
|
|
self.timestamp = Date()
|
|
self.duration = duration
|
|
self.audioFileURL = audioFileURL
|
|
self.transcriptionModelName = transcriptionModelName
|
|
self.aiEnhancementModelName = aiEnhancementModelName
|
|
self.promptName = promptName
|
|
self.transcriptionDuration = transcriptionDuration
|
|
self.enhancementDuration = enhancementDuration
|
|
self.aiRequestSystemMessage = aiRequestSystemMessage
|
|
self.aiRequestUserMessage = aiRequestUserMessage
|
|
self.powerModeName = powerModeName
|
|
self.powerModeEmoji = powerModeEmoji
|
|
self.transcriptionStatus = transcriptionStatus.rawValue
|
|
}
|
|
}
|