25 lines
1009 B
Python
25 lines
1009 B
Python
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", "scheduler", ...
|
|
action: Mapped[str] = mapped_column(String) # "toggle_on", "toggle_off"
|
|
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 строка параметров
|