"""UploadedFile 实体。""" from __future__ import annotations from datetime import datetime from sqlalchemy import BigInteger, DateTime, String, func from sqlalchemy.orm import Mapped, mapped_column from ..database import Base class UploadedFile(Base): __tablename__ = "uploaded_file" id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True) # upload_dir 下的相对路径,例如 2026/06/.bin storage_path: Mapped[str] = mapped_column(String(512), nullable=False) original_filename: Mapped[str] = mapped_column(String(512), nullable=False) content_type: Mapped[str] = mapped_column(String(255), nullable=False, default="") size_bytes: Mapped[int] = mapped_column(BigInteger, nullable=False, default=0) sha256: Mapped[str] = mapped_column(String(64), nullable=False, default="") source: Mapped[str] = mapped_column(String(32), nullable=False, default="http") # http / sftp uploaded_by: Mapped[str] = mapped_column(String(128), nullable=False, default="") uploaded_at: Mapped[datetime] = mapped_column( DateTime, server_default=func.now(), nullable=False ) def __repr__(self) -> str: # pragma: no cover return f""