Files
voicediary/VoiceDiary/Models/DiaryEntry.swift
Felix Förtsch dca03214b0 initial VoiceDiary iOS app setup
SwiftUI + SwiftData + iCloud, Apple Speech transcription (German),
audio recording, summarization service protocol (LLM-ready),
localization scaffolding (EN/DE/ES/FR), basic tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 22:57:41 +01:00

42 lines
820 B
Swift

import Foundation
import SwiftData
@Model
final class DiaryEntry {
var date: Date
var summary: String?
var isSummaryGenerated: Bool
@Relationship(deleteRule: .cascade, inverse: \VoiceMemo.entry)
var memos: [VoiceMemo]
var createdAt: Date
var updatedAt: Date
init(date: Date) {
self.date = Calendar.current.startOfDay(for: date)
self.summary = nil
self.isSummaryGenerated = false
self.memos = []
self.createdAt = .now
self.updatedAt = .now
}
var combinedTranscript: String {
memos
.sorted { $0.recordedAt < $1.recordedAt }
.compactMap(\.transcript)
.joined(separator: "\n\n")
}
var hasMemos: Bool {
!memos.isEmpty
}
var hasTranscripts: Bool {
memos.contains { $0.transcript != nil }
}
var formattedDate: String {
date.formatted(.dateTime.day().month(.wide).year())
}
}