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 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 GroupCreateSchema(BaseModel): id: str name: str macs: List[str]