05/02 Phase B

This commit is contained in:
Nguyen Ngo
2026-05-02 11:46:28 -04:00
parent ef0a6448cf
commit 8bdcbecd73
22 changed files with 3262 additions and 69 deletions
+47
View File
@@ -0,0 +1,47 @@
// 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"
}
}
}