from __future__ import annotations import enum from sqlalchemy import Enum, String from sqlalchemy.orm import Mapped, mapped_column from app.db.base import Base, TimestampMixin, UUIDMixin class DocumentOwnerType(str, enum.Enum): customer = "customer" device = "device" validation = "validation" equipment = "equipment" class Document(Base, UUIDMixin, TimestampMixin): __tablename__ = "documents" owner_type: Mapped[DocumentOwnerType] = mapped_column(Enum(DocumentOwnerType), index=True) owner_id: Mapped[str] = mapped_column(String(80), index=True) filename: Mapped[str] = mapped_column(String(255)) content_type: Mapped[str] = mapped_column(String(120)) storage_path: Mapped[str] = mapped_column(String(500))