forked from fritob/Camper-Monitor
33 lines
1.2 KiB
Swift
33 lines
1.2 KiB
Swift
import Foundation
|
||
|
||
/// Ein Fahrzeug. Jedes Profil hat seinen eigenen Satz Geräte; die App zeigt und
|
||
/// funkt immer nur für das gerade gewählte.
|
||
struct Profile: Identifiable, Codable, Hashable, Sendable {
|
||
var id: UUID
|
||
var name: String
|
||
/// SF-Symbol für die Auswahl im Dashboard.
|
||
var symbol: String
|
||
|
||
init(id: UUID = UUID(), name: String, symbol: String = "box.truck") {
|
||
self.id = id
|
||
self.name = name
|
||
self.symbol = symbol
|
||
}
|
||
|
||
/// Profil, dem Geräte aus der Zeit vor der Profilverwaltung zugeordnet
|
||
/// werden. Feste Kennung, damit die Zuordnung beim Update erhalten bleibt.
|
||
static let defaultID = UUID(uuidString: "00000000-0000-0000-0000-00000000C001")!
|
||
|
||
static var initial: Profile {
|
||
Profile(id: defaultID, name: "Mein Camper")
|
||
}
|
||
|
||
/// Auswahl für die Profilbearbeitung.
|
||
/// Alle Namen gegen NSImage(systemSymbolName:) geprüft – ein nicht
|
||
/// existierendes Symbol lässt SwiftUI stillschweigend auf Text zurückfallen.
|
||
static let symbols = [
|
||
"box.truck", "truck.pickup.side", "bus", "bus.doubledecker",
|
||
"car", "car.side", "tent", "sailboat", "house.lodge", "mountain.2",
|
||
]
|
||
}
|