Files
workoutsplus/WorkoutsPlus/Features/Exercise/Equipment.swift
T
2024-11-15 16:49:49 +01:00

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