Files
iOS/Sources/Shared/Database/DatabaseTables.swift
Bruno Pantaleão Gonçalves 3e82dd7aa7 Persist HA Areas in App database (#3942)
Introduces the AppArea model, its database table, and related query
utilities for managing Home Assistant areas and their entities. Updates
the database initialization and updater logic to support caching and
persisting areas per server, including migration and fetch helpers.

<!-- 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. -->

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-07 12:57:07 +01:00

88 lines
1.8 KiB
Swift

import Foundation
public enum GRDBDatabaseTable: String {
case HAAppEntity = "hAAppEntity"
case watchConfig
case assistPipelines
case carPlayConfig
case appEntityRegistryListForDisplay
case appPanel
case customWidget
case appArea
// 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 {
case id
case assist
case items
}
// Assist pipelines
public enum AssistPipelines: String {
case serverId
case preferredPipeline
case pipelines
}
// CarPlay configuration
public enum CarPlayConfig: String {
case id
case tabs
case quickAccessItems
}
// Table where it is store frontend related values such as
// precision for sensors
public enum AppEntityRegistryListForDisplay: String {
case id
case serverId
case entityId
case registry
}
// Sidebar dashboard panels
public enum AppPanel: String {
case id
case serverId
case icon
case title
case path
case component
case showInSidebar
}
public enum CustomWidget: String {
case id
case name
case items
case itemsStates
}
// Areas from Home Assistant
public enum AppArea: String {
case id
case serverId
case areaId
case name
case aliases
case picture
case icon
case entities
}
}