iOS/Sources/Shared/Database/DatabaseTables.swift
2026-01-28 12:58:37 +01:00

178 lines
4.2 KiB
Swift

import Foundation
public enum GRDBDatabaseTable: String {
case HAAppEntity = "hAAppEntity"
case watchConfig
case assistPipelines
case carPlayConfig
case appEntityRegistryListForDisplay
case entityRegistry
case deviceRegistry
case appPanel
case customWidget
case appArea
case homeViewConfiguration
case cameraListConfiguration
case assistConfiguration
// Dropped since 2025.2, now saved as json file
// Context: https://github.com/groue/GRDB.swift/issues/1626#issuecomment-2623927815
case clientEvent
}
public enum DatabaseTables {
public enum AppEntity: String, CaseIterable {
case id
case entityId
case serverId
case domain
case name
case icon
case rawDeviceClass
}
public enum WatchConfig: String, CaseIterable {
case id
case assist
case items
}
// Assist pipelines
public enum AssistPipelines: String, CaseIterable {
case serverId
case preferredPipeline
case pipelines
}
// CarPlay configuration
public enum CarPlayConfig: String, CaseIterable {
case id
case tabs
case quickAccessItems
}
// Table where it is store frontend related values such as
// precision for sensors
public enum AppEntityRegistryListForDisplay: String, CaseIterable {
case id
case serverId
case entityId
case registry
}
// Sidebar dashboard panels
public enum AppPanel: String, CaseIterable {
case id
case serverId
case icon
case title
case path
case component
case showInSidebar
}
public enum CustomWidget: String, CaseIterable {
case id
case name
case items
case itemsStates
}
// Areas from Home Assistant
public enum AppArea: String, CaseIterable {
case id
case serverId
case areaId
case name
case aliases
case picture
case icon
case entities
}
// Home View Configuration (per server)
public enum HomeViewConfiguration: String, CaseIterable {
case id
case sectionOrder
case visibleSectionIds
case allowMultipleSelection
case entityOrderByRoom
case hiddenEntityIds
case showUsagePredictionSection
case areasLayout
case showSummaries
}
// Camera List Configuration (per server)
public enum CameraListConfiguration: String, CaseIterable {
case serverId
case areaOrders
case sectionOrder
}
// Entity Registry (full entity registry data)
public enum EntityRegistry: String, CaseIterable {
case id // Auto generated by GRDB (serverId-uniqueId)
case serverId
case uniqueId
case entityId
case platform
case configEntryId
case deviceId
case areaId
case disabledBy
case hiddenBy
case entityCategory
case name
case originalName
case icon
case originalIcon
case aliases
case labels
case deviceClass
case originalDeviceClass
case capabilities
case supportedFeatures
case unitOfMeasurement
case options
case translationKey
case hasEntityName
}
// Device Registry (full device registry data)
public enum DeviceRegistry: String, CaseIterable {
case id // Auto generated by GRDB (serverId-deviceId)
case serverId
case deviceId
case areaId
case configurationURL
case configEntries
case configEntriesSubentries
case connections
case createdAt
case disabledBy
case entryType
case hwVersion
case identifiers
case labels
case manufacturer
case model
case modelID
case modifiedAt
case nameByUser
case name
case primaryConfigEntry
case serialNumber
case swVersion
case viaDeviceID
}
public enum AssistConfiguration: String, CaseIterable {
case id
case enableOnDeviceSTT
case enableModernUI
case theme
case muteTTS
}
}