from __future__ import annotations from datetime import datetime from sqlalchemy import DateTime, ForeignKey, Integer, LargeBinary, String, func from sqlalchemy.orm import Mapped, mapped_column from ..core.db import Base class DeviceBackup(Base): __tablename__ = "device_backups" id: Mapped[int] = mapped_column(Integer, primary_key=True) device_id: Mapped[int] = mapped_column( Integer, ForeignKey("devices.id", ondelete="CASCADE"), index=True, nullable=False ) filename: Mapped[str] = mapped_column(String(255), nullable=False) # 'binary' (.backup) или 'text' (.rsc) fmt: Mapped[str] = mapped_column(String(16), nullable=False) size: Mapped[int] = mapped_column(Integer, nullable=False, default=0) content: Mapped[bytes] = mapped_column(LargeBinary, nullable=False) created_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now(), nullable=False )