49 lines
963 B
Swift
49 lines
963 B
Swift
//
|
|
// Equipment.swift
|
|
// WorkoutsPlus
|
|
//
|
|
// Created by Felix Förtsch on 01.10.24.
|
|
//
|
|
|
|
import Foundation
|
|
import SwiftData
|
|
|
|
@Model
|
|
final class Equipment {
|
|
var id = UUID()
|
|
var creationDate: Date = Date.now
|
|
|
|
@Attribute(.unique)
|
|
var name: String
|
|
|
|
init(name: String = "") {
|
|
self.name = name
|
|
}
|
|
}
|
|
|
|
// This protocol is required to display the name if the equipment in the List.
|
|
extension Equipment: CustomStringConvertible {
|
|
var description: String {
|
|
name
|
|
}
|
|
}
|
|
|
|
extension Equipment: EditableModel {
|
|
static var editableProperties: [EditableProperty] {
|
|
[
|
|
EditableProperty(
|
|
displayName: "Name",
|
|
type: String.self,
|
|
get: { item in
|
|
guard let equipment = item as? Equipment else { return "" }
|
|
return equipment.name
|
|
},
|
|
set: { item, newValue in
|
|
guard let equipment = item as? Equipment else { return }
|
|
equipment.name = newValue
|
|
}
|
|
)
|
|
]
|
|
}
|
|
}
|