fulREST ready
This commit is contained in:
@@ -1,15 +1,44 @@
|
||||
from sqlalchemy import Column, String, JSON, ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from app.core.database import Base
|
||||
from pydantic import BaseModel
|
||||
from typing import List, Optional
|
||||
|
||||
|
||||
class Device(BaseModel):
|
||||
id: str # MAC-адрес или UUID
|
||||
# --- Таблицы в БД ---
|
||||
|
||||
|
||||
class DeviceModel(Base):
|
||||
__tablename__ = "devices"
|
||||
|
||||
id: Mapped[str] = mapped_column(String, primary_key=True) # MAC
|
||||
ip: Mapped[str] = mapped_column(String)
|
||||
name: Mapped[str] = mapped_column(String)
|
||||
room: Mapped[str] = mapped_column(String, default="Default")
|
||||
|
||||
|
||||
class GroupModel(Base):
|
||||
__tablename__ = "groups"
|
||||
|
||||
id: Mapped[str] = mapped_column(String, primary_key=True)
|
||||
name: Mapped[str] = mapped_column(String)
|
||||
device_ids: Mapped[list] = mapped_column(JSON) # Храним список MAC-адресов как JSON
|
||||
|
||||
|
||||
# --- Pydantic модели для API (оставляем для валидации) ---
|
||||
|
||||
|
||||
class DeviceSchema(BaseModel):
|
||||
id: str
|
||||
ip: str
|
||||
name: str
|
||||
room: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class Group(BaseModel):
|
||||
|
||||
class GroupCreateSchema(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
device_ids: List[str] # Список ID устройств, входящих в люстру
|
||||
macs: List[str]
|
||||
|
||||
Reference in New Issue
Block a user