Files
iOS/Sources/Shared/Database/DatabaseTables.swift
Bruno Pantaleão Gonçalves 3c62221a01 Drop usage of entity_registry in favor of list_for_display + drop friendly_name usage (#4734)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-06-11 17:31:32 +02:00

183 lines
4.7 KiB
Swift

import Foundation
public enum GRDBDatabaseTable: String {
case HAAppEntity = "hAAppEntity"
case watchConfig
case assistPipelines
case carPlayConfig
case appIconShortcutConfig
case serverInfoMirror
// Obsolete: replaced by `displayEntityRegistry`. Kept only so `deleteOldTables` can drop it.
case appEntityRegistryListForDisplay
// Entity registry sourced from `config/entity_registry/list_for_display` (the full
// `config/entity_registry/list` endpoint is no longer requested). Rows are
// `EntityRegistryListForDisplay.Entity`. Named for its source so it isn't mistaken for the
// dropped full-registry table (which was named `entityRegistry`).
case displayEntityRegistry
case deviceRegistry
case appPanel
case customWidget
case appArea
case homeViewConfiguration
case assistConfiguration
case kioskSettings
case allowedTags
// 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
case quickAccessLayout
}
public enum AppIconShortcutConfig: String, CaseIterable {
case id
case items
}
public enum ServerInfoMirror: String, CaseIterable {
case id
case serverInfoJSON
}
// 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 sortOrder
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
}
// Columns for the `displayEntityRegistry` table (sourced from
// config/entity_registry/list_for_display). Names must match
// EntityRegistryListForDisplay.Entity's stored properties.
public enum DisplayEntityRegistry: String, CaseIterable {
case serverId
case entityId
case platform
case labels
case deviceId
case name
case hasEntityName
case entityCategory
case translationKey
case decimalPlaces
case areaId
case hidden
case icon
}
// 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 onDeviceSTTLocaleIdentifier
case muteTTS
case enableOnDeviceTTS
case onDeviceTTSVoiceIdentifier
}
// Kiosk mode settings (stored as JSON blob)
public enum KioskSettings: String, CaseIterable {
case id
case settingsJSON
}
public enum AllowedTag: String, CaseIterable {
case tag
}
}