SwiftData @Model の構造とリレーション
@Model
final class Workout {
var id: UUID = UUID()
var date: Date = Date()
var note: String?
var createdAt: Date = Date()
@Relationship(deleteRule: .cascade)
var exercises: [Exercise] = []
init(date: Date = .now) {
self.date = date
}
}
@Model
final class Exercise {
var id: UUID = UUID()
var name: String = ""
var category: String = ""
var order: Int = 0
@Relationship(deleteRule: .cascade)
var sets: [ExerciseSet] = []
var workout: Workout?
}
@Model
final class ExerciseSet {
var id: UUID = UUID()
var weight: Double = 0
var reps: Int = 0
var order: Int = 0
var exercise: Exercise?
}
@Modelは全プロパティにデフォルト値必須。新規プロパティ追加時は必ずデフォルト値を設定する。
| バージョン | 日付 | 変更内容 |
|---|---|---|
| 1.0 | 2026-05-09 | 初版作成 |