feat: Stats. Closes #6
This commit is contained in:
26
app/models/event_log.py
Normal file
26
app/models/event_log.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from datetime import datetime
|
||||
from sqlalchemy import String, Integer, DateTime, JSON
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from app.core.database import Base
|
||||
|
||||
|
||||
class EventLog(Base):
|
||||
"""Лог событий управления лампами."""
|
||||
|
||||
__tablename__ = "event_log"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
|
||||
timestamp: Mapped[str] = mapped_column(
|
||||
String, default=lambda: datetime.now().isoformat()
|
||||
)
|
||||
key_name: Mapped[str] = mapped_column(
|
||||
String, default="unknown"
|
||||
) # кто: "master", "vasya", ...
|
||||
action: Mapped[str] = mapped_column(
|
||||
String
|
||||
) # "control", "toggle_on", "toggle_off", "scene", ...
|
||||
target_type: Mapped[str] = mapped_column(
|
||||
String, default="group"
|
||||
) # "group" или "device"
|
||||
target_id: Mapped[str] = mapped_column(String) # id группы или устройства
|
||||
params: Mapped[str] = mapped_column(String, nullable=True) # JSON строка параметров
|
||||
Reference in New Issue
Block a user