Files
ha_explore/backend/app/models.py
2026-02-21 16:55:10 +01:00

48 lines
1.3 KiB
Python

from datetime import datetime
from typing import Optional
from sqlmodel import Field, SQLModel
class EntityCache(SQLModel, table=True):
__tablename__ = "entities_cache"
entity_id: str = Field(primary_key=True)
domain: str = ""
friendly_name: str = ""
state: str = ""
attrs_json: str = "{}"
device_class: Optional[str] = None
unit_of_measurement: Optional[str] = None
area_id: Optional[str] = None
device_id: Optional[str] = None
integration: Optional[str] = None
is_disabled: bool = False
is_hidden: bool = False
is_available: bool = True
last_changed: Optional[datetime] = None
last_updated: Optional[datetime] = None
fetched_at: datetime = Field(default_factory=datetime.utcnow)
class EntityFlag(SQLModel, table=True):
__tablename__ = "entity_flags"
entity_id: str = Field(primary_key=True)
ignored_local: bool = False
favorite: bool = False
notes: str = ""
original_state: Optional[str] = None
disabled_at: Optional[datetime] = None
class AuditLog(SQLModel, table=True):
__tablename__ = "audit_log"
id: Optional[int] = Field(default=None, primary_key=True)
ts: datetime = Field(default_factory=datetime.utcnow)
action: str = ""
entity_ids_json: str = "[]"
result: str = ""
error: str = ""