vOOice/VoiceInk/Models/Transcription.swift
2025-09-28 20:54:05 +05:45

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
}
}