26 lines
759 B
Python
26 lines
759 B
Python
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))
|
|
|