// Models/LocalArea.swift // ---------------------- // SwiftData model for locally cached facility areas. import Foundation import SwiftData @Model final class LocalArea { @Attribute(.unique) var serverId: Int var facilityServerId: Int var name: String var areaType: String var lastSyncedAt: Date /// Back-reference to parent facility var facility: LocalFacility? init(from api: APIArea) { self.serverId = api.id self.facilityServerId = api.facilityId self.name = api.name self.areaType = api.areaType self.lastSyncedAt = Date() } func update(from api: APIArea) { self.name = api.name self.areaType = api.areaType self.lastSyncedAt = Date() } /// Human-readable type label var areaTypeLabel: String { switch areaType { case "restroom": return "Restroom" case "lobby": return "Lobby" case "hallway": return "Hallway" case "office": return "Office" case "kitchen": return "Kitchen" case "storage": return "Storage" case "floor": return "Floor" case "outdoor": return "Outdoor" default: return "Other" } } }