Files
voicediary/VoiceDiary/ViewModels/DiaryViewModel.swift
T
2026-02-15 23:01:21 +01:00

43 lines
1.0 KiB
Swift

import Foundation
import SwiftData
@Observable
@MainActor
final class DiaryViewModel {
var error: Error?
private let summarizationService = SummarizationService()
var isSummarizing: Bool {
summarizationService.isSummarizing
}
func generateSummary(for entry: DiaryEntry) async {
do {
let transcript = entry.combinedTranscript
let date = entry.date
let summary = try await summarizationService.generateSummary(transcript: transcript, date: date)
entry.summary = summary
entry.isSummaryGenerated = true
entry.updatedAt = .now
} catch {
self.error = error
}
}
func deleteEntry(_ entry: DiaryEntry, context: ModelContext) {
// Delete audio files
for memo in entry.memos {
try? FileManager.default.removeItem(at: memo.audioURL)
}
context.delete(entry)
}
func deleteMemo(_ memo: VoiceMemo, from entry: DiaryEntry, context: ModelContext) {
try? FileManager.default.removeItem(at: memo.audioURL)
entry.memos.removeAll { $0.persistentModelID == memo.persistentModelID }
context.delete(memo)
entry.updatedAt = .now
}
}